使用经典 REST api,最好将版本添加到 api url。这个版本可以是fi。嵌入路径 ( api.myservice.com/v1/dataset
) 或作为参数 ( api.myservice.com/dataset?v=1
)。当部署新版本的 api 时,只要需要,它就可以与旧版本并存。旧版本的 API 可以标记为已弃用,最终可以删除。
这为前端提供了适应新版本 API 的宽限期,因此在后端更新、前端开发人员对此进行调整和前端用户进行更新之间没有停机时间。
当我们使用 Firestore 或任何类似的实时数据库时,前端可以直接访问数据库。数据库的结构可以更改,列或表可以重命名、移动或删除。没有 API 可以为前端抽象出这种底层结构。那么,使用实时数据库向前端 - 后端通信添加某种版本控制的最佳方式是什么?
可能的解决方案:
无论如何都要使用 REST api 作为包含版本的额外层。缺点:使用这种方法,您将失去实时数据库的优势,例如实时更新和用户管理。
将抽象层移至前端并公开所需的最低版本。如果前端不满足此版本,则强制更新前端。缺点:相信前端会做正确的事,而不是强制执行。
将版本添加到项目名称或表名称中。这将导致大量额外的冗余,其中数据必须不断保持同步。这可能会导致额外的成本并且容易出错。
任何其他?
这些选项对我来说似乎都不是好主意。如果前端可以直接访问数据,最好的解决方案是什么?我知道这个问题很快就会被标记为“太宽泛”。如果是,请告诉我如何集中我的问题。