如何检查对现有公共 api 的更改

Posted

技术标签:

【中文标题】如何检查对现有公共 api 的更改【英文标题】:How can I check changes to existing public api 【发布时间】:2022-01-03 10:54:22 【问题描述】:

我有一个其他人正在使用的 web api,我们的一位开发人员更改了操作方法或方法参数的名称。现在客户有问题。有没有解决方案,在部署到生产服务器之前,检查现有公共api是否有变化(不添加新api)?

【问题讨论】:

您可以使用 git 或任何版本控制系统来跟踪更改 写测试???? 应用太大,开发者也太大,难以追踪。 你能告诉我们更多关于测试的信息吗?现在有一个使用招摇的想法,或者更确切地说是它生成并保存在某处的文件。并通过测试与当前文件进行比较 您可以使用您的 api 描述创建一个 swagger 文件。这个 swagger.json 可以很容易地进行比较(甚至可以作为发布管道中的一项任务)和/或您可以从 swagger 中为您可以提供给客户的各种语言生成一个 rest 客户端 api。 【参考方案1】:

如果您要与其他团队共享您的 API,我强烈建议您为您的 API 创建一个Swagger OpenAPI Specification。 Swagger 定义是一种规范,描述了您的 API 在操作、预期输入、输出等方面的外观。您可以将这样的规范用作 API 的生产者和所有消费者之间的合同

然后,您可以使用Swagger CodeGen 之类的工具来生成客户端和服务器实现,以保证实现符合合同。在您的情况下,这将阻止开发人员破坏 API(除非他们也更改合同)。

如果您想协作,我建议将您的 Swagger 定义(副本)放在单独的 GIT 存储库(例如 my-awesome-contracts)中,让所有团队访问此存储库并通过拉取请求进行任何更改。这有两个目的:

它让您的 API 的所有使用者及早通知任何更改 你打算做。 它允许任何消费者实际就提议的更改提供反馈。

【讨论】:

以上是关于如何检查对现有公共 api 的更改的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息传递 - 检查现有或可用主题

如何对除 api 网关之外的所有人隐藏我的公共微服务?

GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?

如何更改现有 Firebase 项目的区域?

Facebook时间线封面照片iphone

如何更改表以在现有列上添加约束