使用版本控制在项目之间共享 Json Schema 文件

sep*_*oad 5 schema json sharing multiple-projects microservices

问题

我们有一些独立的项目(微服务),在他们生命中的某个时刻会引用一些 JSON 模式文件,不用说每个项目都有自己的编程堆栈(尽管主要是 Nodejs 和 Golang)。

在保持版本控制的同时在不同项目之间共享此类数据的最佳实践是什么。

波纹管我描述了我自己的解决方案,但是我也想得到您的反馈。

我的解决方案

  1. 我已经建立了一个 github 项目并将 json 模式文件放在那里
  2. 对于架构的每次更改,我都会更新 repo 并用新版本标记它
  3. 我使用jsdelivr像这样访问它:https : //cdn.jsdelivr.net/gh/[GITHUB-ID]/[GITHUB-PROJECT]@[TAG]/schema.js
  4. 当我想克隆需要架构文件的随机微服务的代码时,作为构建过程的一部分,我从jsdelivr下载架构文件并将其保存到我的本地存储库,但是下载的架构文件被 git 忽略.

你怎么看,有没有更好更顺畅的方法来处理这个案子?

小智 1

从我的角度来看,最好的方法是将 JSON 模式放入一个单独的文件中(在您的项目中或在 Github 中的公共存储库中等),然后从用于描述 API 的文档中引用它。例如,如果您使用 Swagger,则可以包含对外部 URL(或文件路径)的引用。例1例2

版本控制无论如何都取决于您,只需将您的 JSON 文件命名为some-entity-response-v2.json,您的 API 可能会有相同的版本。保持每个版本向后兼容,你就会没事的。