如何解决多个 api 版本的单个客户端
我正在使用 openapi-generator 使用类似于下面的命令从 swagger json 生成 api 客户端
openapi-generator generate -i http://localhost:5001/swagger/v1/swagger.json -g csharp-netcore -c config.json
是否可以使用开放的 api 生成器为多个版本的 Api 生成单个客户端。
http://localhost:5001/swagger/v1/swagger.json
http://localhost:5001/swagger/v2/swagger.json
我查看了文档,但找不到任何相同的参考。有关相同或其他替代方案的任何帮助。我正在使用 .net 核心框架创建我的 api - 对于生成客户端并不重要,但如果它有任何帮助,则作为信息。
解决方法
好吧,是和不是。您基本上在两个不同的文件中有两个 API 定义。此外,这些文件包含相似但不完全相同的 API 定义:一些参数是新的,一些旧实体有新成员(或者更糟的是,失去了一些成员)。有些方法可能不存在。您可能会在这里遇到兼容性问题,因此两个不同版本的相同代码库甚至可能是不可能的。 根据 API 和您的要求,您可以自动执行一些操作:
- 您可以编写一个批处理文件,从 API 生成代码并将生成的数据复制到您的项目中,例如进入 V1 和 V2 文件夹,您可以从中访问生成的代码。
- 根据您的 API,您可能已经对生成的代码的外观有所了解。您可以访问 Swagger Codegen 项目中的 mustache 模板文件并对其进行修改。因此生成的代码将完全满足您的需求。这对于一个需要很长时间的大型项目来说是有意义的,而这项工作会带来回报。
编辑:另外,为什么您需要一个客户端用于多个版本?我可以想象一个支持多个版本的服务器,但是客户端呢?使用最新版本不是更好吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。