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 ...
随机推荐
- SQL 多表查询的几种连接方式
--创建数据库 create database GoodsSystem go --使用数据库 use GoodsSystem go --创建商品类型表 create table GoodsType ( ...
- 北风设计模式课程---单一职责原则(Single Responsibility Principle)
北风设计模式课程---单一职责原则(Single Responsibility Principle) 一.总结 一句话总结: 一个类应该有且只有一个变化的原因:单一职责原则(SRP:Single Re ...
- loadrunner常用函数整理
1.int web_reg_save_param("参数名","LB=左边界","RB=右边界",LAST); //注册函数,在参数值出 ...
- TreeSet 源码分析
TreeSet 1)底层由 TreeMap 支持的 Set 接口实现,Set 中的元素按照自然顺序或指定的比较器排序. 创建实例 /** * 支持此 Set 的底层的 TreeMap 对象 */ pr ...
- drop_duplicates()函数
1dataframe删除某一列的重复元素,默认只留下第一次出现的 inplace参数设置为true时直接在原数据上修改,为False时,生成副本. 注意所有函数中inplace一旦设置为True,此时 ...
- Java课堂笔记(二):面向对象
几乎每一本介绍Java语言的书中都会提到“面向对象”的这个概念,然而博主初学Java时看到这方面的内容一般都是草草地看一看,甚至是直接略过.原因很简单:考试基本不考,而且初学阶段写代码也很少用上.但事 ...
- StringBuffer 和Stringbuilder源码分析
首先看一下他们的继承关系 这个两个对象都继承了AbstractStringBuilder抽象类. 1.他们的实现方式都一样的,唯一区别的StringBuffer在多线程的时候是保证了数据安全, ...
- Linux下杀进程
$ ps -ef | grep firefox smx : ? :: /usr/lib/firefox-/firefox-bin smx : pts/ :: grep --color=auto fir ...
- 2 python: Unicode 和list 列表
1 unicode 2 list 列表及其内置函数等 3 不一样的for语句 Python 的 for 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代 >>> ...
- Python学习-第二天-字符串和常用数据结构
Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...