- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RESTful API 设计规范
该仓库整理了⽬前⽐较流⾏的 RESTful api 设计规范,为了⽅便讨论规范带来的问题及争议,现把该
⽂档托管于 Github ,欢迎⼤家补充!!
Table of Contents
RESTful API 设计规范
关于「能愿动词」的使⽤
Protocol
API Root URL
Versioning
在 URL 中嵌⼊版本编号
通过媒体类型来指定版本信息
Endpoints
HTTP 动词
Filtering
Authentication
Response
200 ok
201 Created
202 Accepted
204 No Content
3xx 重定向
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowd
406 Not Acceptable
408 Request Timeout
409 Gonfilct
410 Gone
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
429 Too Many Request
500 Internal Server Error
503 Service Unavailable
版权声明
建议参考
LICENSE
关于「能愿动词」的使⽤
为了避免歧义,⽂档⼤量使⽤了「能愿动词」,对应的解释如下:
必须 (MUST) :绝对,严格遵循,请照做,⽆条件遵守;
⼀定不可 (MUST NOT) :禁令,严令禁⽌;
应该 (SHOULD) :强烈建议这样做,但是不强求;
不该 (SHOULD NOT) :强烈不建议这样做,但是不强求;
可以 (MAY) 和 可选 (OPTIONAL) :选择性⾼⼀点,在这个⽂档内,此词语使⽤较少;
参⻅:RFC 2119
Protocol
客户端在通过 API 与后端服务通信的过程中,应该 使⽤ HTTPS 协议。
API Root URL
API 的根⼊⼝点应尽可能保持⾜够简单,这⾥有两个常⻅的 URL 根例⼦:
/*
/api/*
如果你的应⽤很庞⼤或者你预计它将会变的很庞⼤,那 应该 将 API 放到⼦域下
( )。这种做法可以保持某些规模化上的灵活性。
Versioning
所有的 API 必须保持向后兼容,你 必须 在引⼊新版本 API 的同时确保旧版本 API 仍然可⽤。所以
应该 为其提供版本⽀持。
⽬前⽐较常⻅的两种版本号形式:
在 URL 中嵌⼊版本编号
/v1/*
这种做法是版本号直观、易于调试;另⼀种做法是,将版本号放在 HTTP Header 头中:
通过媒体类型来指定版本信息
Accept: application/.v1+json
其中 vnd 表示 Standards Tree 标准树类型,有三个不同的树: x ,prs 和 vnd 。你使⽤的标准树需
要取决于你开发的项⽬
未注册的树(x )主要表示本地和私有环境
私有树(prs )主要表示没有商业发布的项⽬
供应商树(vnd )主要表示公开发布的项⽬
后⾯⼏个参数依次为应⽤名称(⼀般为应⽤域名)、版本号、期望的返回格式。
⾄于具体把版本号放在什么地⽅,这个问题⼀直存在很⼤的争议,但由于我们⼤多数时间都在使⽤
Laravel 开发,应该 使⽤dingo/api 来快速构建应⽤,它采⽤第⼆种⽅式来管理 API 版本,并且已
集成了标准的 HTTP Response 。
Endpoints
端点就是指向特定资源或资源集合的 URL 。在端点的设计中,你 必须 遵守下列约定:
URL 的命名 必须 全部⼩写
URL 中资源(r
您可能关注的文档
- GXJH 集成测试准备环境就绪检查表.xls
- GXJH 集成测试报告.doc
- 【DDI讲义分享】230310华东人才战略活动.pdf
- DDI-走出冲突培训.pptx
- 大学语文相信未来 -课件(PPT演示).pptx
- 生活用品采购合同模板.docx
- 桐柏事业单位笔试试题汇总2024.docx
- 20230519_包头铝业_铝块堆垛起重机技术方案v1.1.docx
- 短视频直播基础知识培训课件(18P).pptx
- 情商培训如何做情绪的主人培训课件(36P).pptx
- 专卖店促销员销售与成交技巧培训课件(34P).pptx
- 红色商务风新员工入职销售技巧知识培训课件(34P).pptx
- 专卖店商场销售员销售与成交技巧培训课件(34P).pptx
- 小区物业保安法律知识培训课件(28P).pptx
- 专卖店销售员轻松成交技巧培训(34P).pptx
- 轻松成交客户新员工入职通用销售技巧知识培训(34P).pptx
- 2024年初级《银行业法律法规与综合能力》考前必刷必练题库500题(含真题、必会题).docx
- 2024年“新安法知多少”知识竞赛题库及答案(最新版).docx
- 2024年30秒毕业生面试工作自我介绍.docx
- 2024年《医务人员礼仪培训》心得体会.docx
文档评论(0)