Open Danny5487401 opened 1 year ago
好像是goinstall 没有拉取最新的代码,用以下方式试试?
git clone https://github.com/zeromicro/goctl-swagger
cd goctl-swagger
go install
(⎈ |prod-ctx:ticket-system)➜ api git:(master) goctl api plugin -plugin goctl-swagger="swagger -filename rome.json" -api rome.api -dir .
goctl-swagger: /Users/python/Desktop/gllue_pkg/rome-be/api/"v1/v1.api" line 1:0 the nested api does not support import
(⎈ |prod-ctx:ticket-system)➜ api git:(master) goctl-swagger --version
goctl-swagger version 20220621 darwin/arm64
@MaxToby 刚升级了,还是不行
import的api文件里面还有import其他的api,是这样吗?
import的api文件里面还有import其他的api,是这样吗?
是的,上面有图
我也遇到这个问题了,主要原因是各个小模块的.api文件,有公共的结构体,于是想抽出来单独放一个公共的(分开放可以,但是不能重名,要不然gen code的时候会报错结构体多次定义)。希望能支持一下2层嵌套
import的api文件里面还有import其他的api,是这样吗?
是的,上面有图
我测试了,只要你把嵌套的嵌套的api,全放入第一层api文件,即在第一层import那些,就可以正常生成了(第二层文件的import全去掉,有红线提示忽略就好)
同样的问题,希望尽快修复
import的api文件里面还有import其他的api,是这样吗?
是的,上面有图
我测试了,只要你把嵌套的嵌套的api,全放入第一层api文件,即在第一层import那些,就可以正常生成了(第二层文件的import全去掉,有红线提示忽略就好)
就是不想修改原有结构,因为现有目录结构带v1,v2,比较清晰 @Arrowarcher
import的api文件里面还有import其他的api,是这样吗?
是的,上面有图
我测试了,只要你把嵌套的嵌套的api,全放入第一层api文件,即在第一层import那些,就可以正常生成了(第二层文件的import全去掉,有红线提示忽略就好)
就是不想修改原有结构,因为现有目录结构带v1,v2,比较清晰 @Arrowarcher
1层嵌套是支持的,平级引用公共模块在goctl api plugin这里就报错了。
The same problem, more than two levels of nesting will cause this. Hope this problem fixed soon.
@kevwan 哪时候可以解决下
希望能尽快解决
import的api文件里面还有import其他的api,是这样吗?
是的,上面有图
我测试了,只要你把嵌套的嵌套的api,全放入第一层api文件,即在第一层import那些,就可以正常生成了(第二层文件的import全去掉,有红线提示忽略就好)
我把userInfo摘到第一层api后,虽然可以生成swagger。但是在有红线的提示下,goctl format该文件进行格式排版的时候,会找不到这个结构体而报错。 Error: xxx.api line 14:13 can not find declaration 'UserInfo' in context
写给遇到相同问题的朋友,可以通过升级 goctl 解决该问题:
git clone https://github.com/zeromicro/goctl-swagger
cd goctl-swagger
go get github.com/zeromicro/go-zero/tools/goctl@v1.5.6
go install
但是有个问题啊,api 文件里不能含有 json/form/path/header 之外的 tag,否则生成的 swagger 文件会有问题。
写给遇到相同问题的朋友,可以通过升级 goctl 解决该问题:
git clone https://github.com/zeromicro/goctl-swagger cd goctl-swagger go get github.com/zeromicro/go-zero/tools/goctl@v1.5.6 go install
但是有个问题啊,api 文件里不能含有 json/form/path/header 之外的 tag,否则生成的 swagger 文件会有问题。
已经完全修复了这个问题 #88 ,在维护者合并之前,可以通过以下方式使用:
git clone https://github.com/jayvynl/goctl-swagger.git
cd goctl-swagger
go install
由于 PR 没有被合并, 新开了仓库解决 ISSUES 提到的大部分问题, 并支持 openapi 3 生成, https://github.com/jayvynl/goctl-openapi
由于 PR 没有被合并, 新开了仓库解决 ISSUES 提到的大部分问题, 并支持 openapi 3 生成, https://github.com/jayvynl/goctl-openapi
@jayvynl 为啥没合并 why unmerged?
由于 PR 没有被合并, 新开了仓库解决 ISSUES 提到的大部分问题, 并支持 openapi 3 生成, https://github.com/jayvynl/goctl-openapi
@jayvynl 为啥没合并 why unmerged?
不确定,可能是什么地方不符合维护者的想法,但是也没有 review 。
代码: