采用务实的 RESTful API 方法,url 定义为
http://<host>:<port>/<apiname>/api/v1.0/...
其中 v1.0 是 api 版本。现在所有客户端都将坚持这个 url 并开始使用这个 api。现推出新版api http://<host>:<port>/<apiname>/api/v2.0/...
具有一些额外的功能。此更改将破坏现有客户端,因为它们都在其网址中使用旧版本。如何在不破坏java和spring mvc中现有客户端的情况下更改REST api版本?
例如
假设我有一个 Web 应用程序,我使用 url 模式 .../api/v1.0
注册了 DispatcherServerlet 。现在 API 中还有一些功能,这些功能将作为另一个版本的一部分提供。我是否需要再制作一个包含 url 模式 ..,/api/v2.0
的 Web 应用程序。问题是代码重复并且需要维护两个网络应用程序。
一般描述即可。我不想在 header 中传递 api 版本。
最佳答案
维护 v1 的分支、v2 的分支,为 WAR 指定不同的名称,然后部署它们。或者用软件来实现——多个项目,每个项目都有一个 API,最好引用一个共享服务层。
顺便说一句,如果您打算如此频繁地发布新版本以至于需要多个数字,那么您可能会遇到麻烦。只需坚持 v1、v2。每次发布新版本时,都会增加重大的支持负担。
关于java - 如何通过 spring mvc 使用 REST API 中的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740608/