前言
1.首先我们要知道go-kit的三层:Transport,Endpoint,Service
2.微服务通过Restful API来实现与其他服务的对接 比如像这样:
3.在RestfulAPI中一般有ip地址,以及参数传入
所以怎么go-kit的三层结构怎么添加注释来实现go-swagger自动生成API文档给前端或者其他合作者看是一个很重要的事情
Transport层
在Transport层主要是一个decodeHTTP函数,一般我们会把所有的handler入口写在handler层
这个入口我们定义整体的API结构
比如:
var serverOpt httptransport.ServerOption
// swagger:route POST /exp/get exp Request1
//
// Get exp.
//
// Responses:
// 200: Response1
http.ServeMux.Handle(endpoints.create, decodeHTTP,encodeHTTP,serverOpt)
这里有几个关键点
- Request1要对应后面的Request1的命名,这个要对应,不然swagger不会自动填充,这个后面可以看到
- Get exp后面要加
.
不然描述不会被转化 - Response1也要对应后面response的结构
Endpoint层
endpoint层主要对service进行调用,并定义request和response需要的参数结构,而这里的req和resp就对应transport层的
// swagger:parameters Request1
type Request1 struct{
}
// swagger:response Response1
typr Response1 struct{
}
这里的Request1和Response1就对应前面Transport层的两个数据结构
Service层
一般在service层就不会有swagger注释
上面是比较简单的swagger结构定义,当然在request和response结构中的字段的参数也有一定的讲究,后面学到了继续更新