goctl-swagger 生成json接口文件

参考: 

GitHub - dyntrait/goctl-swagger: 通过 api 文件生成 swagger 文档

GitHub - Bluettipower/goctl-swagger

CLI 工具 - goctl api - 《go-zero v1.5 教程》 - 书栈网 · BookStack

go-zero学习 第二章 进阶之API_go-zero syntax是用来干什么的-CSDN博客

一:编译

执行go install 前一般需要设置环境,不然资源经常会下载不下载

go env -w GOPROXY=https://goproxy.cn,direct

 执行完 go install,一般生成的exe会在gopath下面,通过

go env

 可以知道go相关的执行环境,包括gopath

或是参考其他编译命令

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

编译好的资源:

https://download.csdn.net/download/hongkid/88955799

 二:执行生成命令

1.生成swagger文件

goctl api plugin -plugin goctl-swagger="swagger -filename api.json" -api xxx.api -dir .

2.生成ts文件

goctl api ts -api ./xxx.api -dir ts输出目录 -webapi ../utils/ajax/index

其中-webapi是个自定义的对象,定义后在生成的ts接口文件里面会包含

import webapi from "../utils/ajax/index"

这样的代码

三:其他补充

goctl在其高版本(1.5,1.6)中在生成ts代码存在不少问题:

1.命令行丢失了-webapi参数

2.一些像middleware : 这样的写法也兼容性不好,报错,需要把空格去掉改成middleware:才行

3.像service xx-go这样有-符号的也报错不给过

4.import在下面这个场景有问题,例如:根目录下面的a.api里面import了B目录下面的b.api,b.api文件里面又import了B目录下面的c.api,则编译会出错

5.无法支持map[string]*Xxx 的数据结构,不过这个也可以理解,会提示暂不支持map类型,但不影响生成json,只是这个define的数据类型找不到

经过多个版本测试,目前比较结果就是全部基于1.4.2版本编译出来的最为靠谱,可以下载上面的资源 

自己编译也可以下载上面git的goctl-swagger,然后修改mod里面gozero相关编译版本,删除sum文件,执行

go mod tidy

 重新生成sum文件,再进行编译

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值