php - 大家的restful 的地址是怎么带有版本号的
天蓬老师
天蓬老师 2017-04-11 10:19:49
[PHP讨论组]

请教一个问题,(大概意思就是:怎么让带有不同版本号的url地址访问不同的目录文件

大家写接口的路由怎么配置的,一直想不明白 restful 模式的版本号到底是配置在路由里面,还是怎么配置,目前我的是这样的,用的 tp5

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
高洛峰
  1. 制定版本并在版本之间平缓过渡对于设计和维护一套API是个巨大的挑战。所以,最好在设计之初就使用一些方法来预防可能会遇到的问题。
    为了避免API的变动导致用户使用中产生意外结果或调用失败,最好强制要求所有访问都需要指定版本号。请避免提供默认版本号,一旦提供,日后想要修改它会相当困难。

  2. 最适合放置版本号的位置URL中,或者是头信息(HTTP Headers)中在 Accept 段中使用自定义类型(content type)与其他元数据(metadata)一起提交。

https://api.example.com/v1/
或
Accept: application/vnd.heroku+json; version=3

详细的Restful API设计方案,可以参考我的文章:微服务指南走北(三):Restful API 设计简述

ringa_lee

一个很不错的问题。

直接在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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号