1.server端程序

package main

//简单的JSON Restful API演示(服务端)
//author: Xiong Chuan Liang
//date: 2015-2-28 import (
"encoding/json"
"fmt"
"net/http"
"time"
) type Item struct {
Seq int
Result map[string]int
} type Message struct {
Dept string
Subject string
Time int64
Detail []Item
} func getJson() ([]byte, error) {
pass := make(map[string]int)
pass["x"] = 50
pass["c"] = 60
item1 := Item{100, pass} reject := make(map[string]int)
reject["l"] = 11
reject["d"] = 20
item2 := Item{200, reject} detail := []Item{item1, item2}
m := Message{"IT", "KPI", time.Now().Unix(), detail}
return json.MarshalIndent(m, "", "")
} func handler(w http.ResponseWriter, r *http.Request) {
resp, err := getJson()
if err != nil {
panic(err)
}
fmt.Fprintf(w, string(resp))
} func main() {
http.HandleFunc("/", handler)
http.ListenAndServe("localhost:8085", nil)
}

  2.client端程序

package main

//简单的JSON Restful API演示(调用端)
//author: Xiong Chuan Liang
//date: 2015-2-28 import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"time"
) type Item struct {
Seq int
Result map[string]int
} type Message struct {
Dept string
Subject string
Time int64
Detail []Item
} func main() {
url := "http://localhost:8085"
ret, err := http.Get(url) if err != nil {
panic(err)
}
defer ret.Body.Close() body, err := ioutil.ReadAll(ret.Body)
if err != nil {
panic(err)
} var msg Message
err = json.Unmarshal(body, &msg)
if err != nil {
panic(err)
} strTime := time.Unix(msg.Time, 0).Format("2006-01-02 15:04:05")
fmt.Println("Dept:", msg.Dept)
fmt.Println("Subject:", msg.Subject)
fmt.Println("Time:", strTime, "\n", msg.Detail)
} /*
//运行结果: Dept: IT
Subject: KPI
Time: 2015-02-28 16:43:11
[{100 map[c:60 x:50]} {200 map[d:20 l:11]}] */

  

golang API的更多相关文章

  1. golang API 例子实现

    golang API 例子实现 http://files.cnblogs.com/files/rojas/astaxie.zip

  2. golang API 请求队列

    概要 实现思路 使用方法 启动队列服务 使用队列服务 概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP ...

  3. golang gin框架 使用swagger生成api文档

    github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...

  4. Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目

    Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...

  5. 基于consul构建golang系统分布式服务发现机制

    原文地址-石匠的Blog: http://www.bugclosed.com/post/5 在分布式架构中,服务治理是一个重要的问题.在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进 ...

  6. Go gin框架 使用swagger生成API文档

    swaggos 是一个golang版本的swagger文档生成器,提供了native code包装器,并且支持主流的web框架包裹器 github 地址:https://github.com/swag ...

  7. 一款不错的 Go Server/API boilerplate,使用 K8S+DDD+CQRS+ES+gRPC 最佳实践构建

    Golang API Starter Kit 该项目的主要目的是使用最佳实践.DDD.CQRS.ES.gRPC 提供样板项目设置. 为开发和生产环境提供 kubernetes 配置.允许与反映生产的 ...

  8. HTML5 直播协议之 WebSocket 和 MSE

    当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...

  9. WebSocket+MSE——HTML5 直播技术解析

    作者 | 刘博(又拍云多媒体开发工程师) 当前为了满足比较火热的移动 Web 端直播需求,一系列的 HTML5 直播技术迅速的发展起来. 常见的可用于 HTML5 的直播技术有 HLS.WebSock ...

随机推荐

  1. Solr集群环境搭建

    一.准备工作 首先保证已经安装JDK工具包: [root@localhost opt]# java -version java version "1.8.0_144" Java(T ...

  2. andriod\iphone视频禁止全屏播放

    x-webkit-airplay="true" x5-playsinline="true" webkit-playsinline="true" ...

  3. Ajax,学习教程!

    一.什么是Ajax? 2005 年Jesse James Garrett 发表了一篇文章,标题为:“Ajax:A new Approach to Web Applications”.他在这篇文章里介绍 ...

  4. 如何把一些字符串用dict组织成json格式?(小算法)

    说明: 1. 数据库中的一条记录取出来是这样的(直接复制):'value1','value2' ,'value3' 2. 我希望使用的数据格式是:{key1:'value1',key2:'value2 ...

  5. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_15-ArrayList集合存储基本数据

    泛型必须是引用类型,不能是基本类型 里面的泛型用int就会报错 集合里面保存的都是地址值.基本类型的数据没有地址值,所以你想要往里面存int是不可以的 基本类型可以往ArrayList里面放,但是必须 ...

  6. astype()函数

    1astype()函数可用于转化dateframe某一列的数据类型 如下将dateframe某列的str类型转为int,注意astype()没有replace=True的用法,想要在原数据上修改,要写 ...

  7. android window(三)lWindow添加流程

    http://androidxref.com/6.0.1_r10/xref/frameworks/base/services/core/java/com/android/server/wm/Windo ...

  8. 修改属性item1(1变化)

    给imgList1,7,12,16添加数据 数据层data:{imgList1:[],imgList7:[],imgList12:[],imgList16:[],} 处理层let _this=this ...

  9. js 正则整理

    //严格验证身份证格式方法function idCardNo(value){ //验证身份证号方法 var area = { 11: "北京", 12: "天津" ...

  10. git比较重要但是又容易忘记的操作

    git rebase head~1   把多次commit合并成一次 git reset head  撤销已缓存的内容 git checkout . git stash      去除改动未提交的代码