goctl-swagger的使用方法

goctl-swagge的使用方法

官网对goctl-swagger的使用介绍是这样的,但是很不完善,很不清楚,我第一次用搞了两小时才ok

官网描述

下面我对自己使用过程中的问题和步骤都详细讲解

一、下载goctl-swagger插件

直接敲下面的两个命令就可以下载了

GOPROXY=https://goproxy.cn/,direct 
go install github.com/zeromicro/goctl-swagger@latest

二、配置环境

1.将$GOPATH/bin中的goctl-swagger添加到环境变量
打开你的 $GOPATH/bin 目录,看到的是:(里面有goctl-swagger.exe文件)
在这里插入图片描述
2.然后配置环境变量,就是将这个文件的路径添加到系统的path中:
在这里插入图片描述

三、创建api文件

这里就是业务的api文件,示例如下:

info(
 title: "type title here"
 desc: "type desc here"
 author: "type author here"
 email: "type email here"
 version: "type version here"
)


type (
 RegisterReq {
  Username string `json:"username"`
  Password string `json:"password"`
  Mobile string `json:"mobile"`
 }
 
 LoginReq {
  Username string `json:"username"`
  Password string `json:"password"`
 }
 
 UserInfoReq {
  Id string `path:"id"`
 }
 
 UserInfoReply {
  Name string `json:"name"`
  Age int `json:"age"`
  Birthday string `json:"birthday"`
  Description string `json:"description"`
  Tag []string `json:"tag"`
 }
 
 UserSearchReq {
  KeyWord string `form:"keyWord"`
 }
)

service user-api {
 @doc(
  summary: "注册"
 )
 @handler register
 post /api/user/register (RegisterReq)
 
 @doc(
  summary: "登录"
 )
 @handler login
 post /api/user/login (LoginReq)
 
 @doc(
  summary: "获取用户信息"
 )
 @handler getUserInfo
 get /api/user/:id (UserInfoReq) returns (UserInfoReply)
 
 @doc(
  summary: "用户搜索"
 )
 @handler searchUser
 get /api/user/search (UserSearchReq) returns (UserInfoReply)
}

四、生成swagger.json文件

goctl api plugin -plugin goctl-swagger="swagger -filename ./api/edgeinstance/manage.json -host localhost:8888" -api ./api/edgeinstance/manage.api -dir .

-filename 后面的参数是你要生成的swagger文件的地址和名称;
-host 后面的参数是你要调用接口的地址和端口;
-basepath是基路径,没啥用,一般不写;
-api 后面的参数是你定义的api文件的地址;
-dir 是生成的目录,一般都是.

五、swagger ui 查看生成的文档

docker run -p 8087:8080 -e SWAGGER_JSON=/edgemanage/manage.json -v C:\Users\wangzhirong\GolandProjects\src\ut-iot\api-server\api\edgeinstance:/edgemanage swaggerapi/swagger-ui

以前一直失败,是因为命令没敲对,8087表示的是暴露的端口。/edgemanage/manage.json是你的swagger json文件的位置。-v后面的参数一定是你的swagger json 文件的绝对目录。:后面的是swagger json 文件的相对目录

最后就可以通过浏览器进入swagger-ui查看api文档了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值