golang API
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的更多相关文章
- golang API 例子实现
golang API 例子实现 http://files.cnblogs.com/files/rojas/astaxie.zip
- golang API 请求队列
概要 实现思路 使用方法 启动队列服务 使用队列服务 概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP ...
- golang gin框架 使用swagger生成api文档
github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- 基于consul构建golang系统分布式服务发现机制
原文地址-石匠的Blog: http://www.bugclosed.com/post/5 在分布式架构中,服务治理是一个重要的问题.在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进 ...
- Go gin框架 使用swagger生成API文档
swaggos 是一个golang版本的swagger文档生成器,提供了native code包装器,并且支持主流的web框架包裹器 github 地址:https://github.com/swag ...
- 一款不错的 Go Server/API boilerplate,使用 K8S+DDD+CQRS+ES+gRPC 最佳实践构建
Golang API Starter Kit 该项目的主要目的是使用最佳实践.DDD.CQRS.ES.gRPC 提供样板项目设置. 为开发和生产环境提供 kubernetes 配置.允许与反映生产的 ...
- HTML5 直播协议之 WebSocket 和 MSE
当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...
- WebSocket+MSE——HTML5 直播技术解析
作者 | 刘博(又拍云多媒体开发工程师) 当前为了满足比较火热的移动 Web 端直播需求,一系列的 HTML5 直播技术迅速的发展起来. 常见的可用于 HTML5 的直播技术有 HLS.WebSock ...
随机推荐
- docker-dnsmasq使用
docker-dnsmasq支持通过web页面配置域名映射,镜像地址:https://hub.docker.com/r/jpillora/dnsmasq 使用步骤如下: 1.在Docker宿主上创建 ...
- Hbase——HA搭建
架构 master1,2 免秘钥登录 配置环境变量export HBASE_HOME=/root/hbase-0.99.2export PATH=$PATH:$HBASE_HOME/bin 修改配置文 ...
- MySQL-default设置
Both statements insert a value into the phone column, but the first inserts a NULL value and the sec ...
- Openstack_SQLAlchemy_一对多关系表的多表插入实现
目录 目录 Openstack 与 SQLAlchemy 一个多表插入的 Demo 小结 Openstack 与 SQLAlchemy SQLAlchemy 是 Python 语言下的一款开源软件,它 ...
- python库文件文档的查看
python库文件文档的查看 第一步:cmd窗口输入:python -m pydoc -p 4567,后台运行 第二步:浏览器中打开http://localhost:4567/
- 自动化测试中,元素无法点击定位等问题的解决:js的使用方法
在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产 ...
- oracle--增删改、表备份、集合运算
truncate 插入数据学习及数据的备份 单表查询语句(select) 1.插入数据(insert) 1.语法规范 insert into 表名(字段1,字段2,字段3,....)values('值 ...
- [Web 前端] 010 css 常用的边框设置
css 常用边框属性 概览 参数 释义 border u设置边框属性(可以多个) border-color 边框颜色 border-style 边框样式solid 实线,dotted 点状线,dash ...
- Jenkins安装配置 远程发布SpringBoot项目
环境要求: Java : 1.8.0_161. Maven :http://maven.apache.org/download.cgi 3.6.1 下载完解压,配置环境变量:vim /etc/prof ...
- Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表: Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述