如何在戈朗导入生成的 SDK?

我使用openapi生成器分别生成多个SDK并将其放在同一个父目录中:


sdks

--- bar-api

------ go.mod

--- foo-api

------ go.mod

我希望能够导入我的客户端代码。最初,酒吧-api的生成方式如下:bar-apigo.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

并手动编辑条形图::go.mod


module github.com/coolrepo/bar-api


require (

    ...

)


replace github.com/coolrepo => ./..


go 1.15

有没有更好的方法来解决这个问题?这个似乎可以工作,但看起来有点笨拙。


至尊宝的传说
浏览 92回答 1
1回答

蝴蝶刀刀

“修复它的更好方法”是将所有生成的Go包放在单个模块中,而不是将存储库拆分为多个模块。rm bar-api/go.modgo mod tidy如果你需要能够独立于同一存储库中的另一组包来标记一组包的发布,则只需将存储库拆分为单独的模块。对于生成的服务 API,这可能不值得为多个模块处理版本而花费开发开销。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go