请教一个问题,(大概意思就是:怎么让带有不同版本号的url地址访问不同的目录文件
)
大家写接口的路由怎么配置的,一直想不明白 restful 模式的版本号到底是配置在路由里面,还是怎么配置,目前我的是这样的,用的 tp5
请教一个问题,(大概意思就是:怎么让带有不同版本号的url地址访问不同的目录文件
)
大家写接口的路由怎么配置的,一直想不明白 restful 模式的版本号到底是配置在路由里面,还是怎么配置,目前我的是这样的,用的 tp5
一个很不错的问题。
直接在URL资源中控制版本号,不是很好的方案。因为对于客户而言一个URL应该是一个永久性,否则你的一次版本升级都会影响到客户的使用。其次,当一个API接口版本过多的时候,客户的升级又比较滞后的情况下,有可能会因为你对旧版本的删除而影响客户的使用。
所以,斯以为,如果需要版本号控制,可以在 headers
中体现。
https://domain.com/api/get/1
application/json; version=1.0
或,让URL始终有最新的永久性,而同时保持版本间的永久性。
假如你当前的版本号是 v2,那么对于最新版本有两个永久性链接:
-- 最新V2
https://domain.com/api/get/1
-- 最新V2
https://domain.com/api/**v2**/get/1
-- 旧版本V1
https://domain.com/api/**v1**/get/1
2 回答3.1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.2k 阅读
制定版本并在版本之间平缓过渡对于设计和维护一套API是个巨大的挑战。所以,最好在设计之初就使用一些方法来预防可能会遇到的问题。
为了避免API的变动导致用户使用中产生意外结果或调用失败,最好强制要求所有访问都需要指定版本号。请避免提供默认版本号,一旦提供,日后想要修改它会相当困难。
最适合放置版本号的位置URL中,或者是头信息(HTTP Headers)中在 Accept 段中使用自定义类型(content type)与其他元数据(metadata)一起提交。
详细的Restful API设计方案,可以参考我的文章:微服务指南走北(三):Restful API 设计简述