- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题不是关于REST API URI 设计的最佳实践。
我自己决定,我将使用以下方法:
我更好奇如何提前设计实际的源代码,以便轻松扩展更多版本的 API。
假设我们为您最喜欢的编程语言使用了经典的 MVC 框架。
我们的 API 工作正常,但我们想要添加和更改不向后兼容的功能。我们确实考虑过一个漂亮的 URI 设计,但没有考虑我们的代码应该如何设计才能与不同的 API 版本很好地配合。糟糕..现在怎么办?
命名空间:命名空间 App\Http\Controllers\v1\Users;
文件夹:{root_folder}\app\Http\Controllers\v1\Users\UserLoginController.php
将https://theserver.com/api/v1/whatsoever
指向项目1
和 https://theserver.com/api/v2/whatsoever
到项目 2
最佳答案
这是我的逻辑: - 首先我们需要回答“为什么我们需要版本控制?”的问题。 - 如果我们能够以向后兼容的方式扩展我们的 API,那么我们就不需要版本控制(所有应用程序和服务都将使用相同的 API,不需要进行任何更改)。 - 如果我们不能提供向后兼容的 API,在这种情况下我们需要引入下一个版本的 API。这将使所有应用程序和服务能够在旧版本正常运行的同时顺利迁移到新版本。一段时间(一年)后,第一个版本可能会被废弃并停止。
因此,根据上面的答案,我会将 API 版本保留在存储库中的单独分支中。一个代码库,每个版本有多个分支。第一个分支对应于 v1,它是稳定的并且仅接收修复。这里没有积极的开发。第二个分支对应于 v2,它具有所有新功能。
关于web-services - 最佳实践 - REST API 版本控制 : Where and How to physically store source code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523590/
我是一名优秀的程序员,十分优秀!