【发布时间】:2021-07-07 16:43:18
【问题描述】:
我用openapi-generator分别生成多个SDK,放在同一个父目录下:
sdks
--- bar-api
------ go.mod
--- foo-api
------ go.mod
我希望能够在我的客户端代码中导入bar-api。最初有 bar-api 的go.mod 生成为:
module github.com/coolrepo/bar-api
go 1.13
但我无法修复客户端代码中的导入:
bar "github.com/cool-repo/bar-api"
所以我做的是:
sdks
--- bar-api
------ go.mod
---go.mod
即创建sdks/go.mod:
module github.com/coolrepo
go 1.13
并手动将 bar-api 的 go.mod 编辑为:
module github.com/coolrepo/bar-api
require (
...
)
replace github.com/coolrepo => ./..
go 1.15
有没有更好的方法来解决它?这个似乎工作,但这个替换看起来有点hacky。
【问题讨论】:
-
这些真的需要单独的模块吗?关于您的用例的信息不多,但是当人们真正需要的是同一模块中的一个包时,创建子模块似乎很常见。
-
好吧,这个 openapi-generator 接受 API 的 yaml 并输出一个模块(带有生成的
go.mod),如果有意义的话,我真的不想将所有 API 的 yaml 合并成一个组合的 yaml。
标签: go openapi-generator goimports