- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RESTful API设计原则与规范要点
RESTful API设计原则与规范 TOC \t 小标题, 1,小标题 2, 1 一、背景与基础概念 PAGEREF _Toc \h 2 二、RESTful API应遵循的原则 PAGEREF _Toc1 \h 3 1、协议(Protocol) PAGEREF _Toc2 \h 3 2、域名(ROOT URL) PAGEREF _Toc3 \h 3 3、版本(Versioning) PAGEREF _Toc4 \h 3 4、路径(Endpoints) PAGEREF _Toc5 \h 3 5、HTTP动词(HTTP Verbs) PAGEREF _Toc6 \h 4 6、过滤信息(Filtering) PAGEREF _Toc7 \h 5 7、状态码(Status Codes) PAGEREF _Toc8 \h 5 8、错误处理(Error handling) PAGEREF _Toc9 \h 6 9、返回结果(Response) PAGEREF _Toc10 \h 6 10、使用HATEOAS的Hypermedia API PAGEREF _Toc11 \h 6 11、认证(Authentication) PAGEREF _Toc12 \h 7 三、Swagger API标准 PAGEREF _Toc13 \h 7 REST,即Representational State Transfer的缩写。RESTful架构,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制,所以正得到越来越多网站的采用。如果一个架构符合REST原则,就称它为RESTful架构。 本文即将描述的,即是创建RESTful架构的API所要遵循的原则与规范。 一、背景与基础概念 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 资源(resource):网络上的一个实体或者说是一个具体信息,可以是一段文本、一张图片、一首歌曲、一种服务。 统一资源定位符(URI,Universal Resource Identifier):一个资源的识别符或者说是一个地址,通过URI你可以定位到特定的资源。要获取这个资源,需要访问它的URI,因此,URI就成了每一个资源的地址或独一无二的识别符。 状态转换(State Transfer): 所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。客户端与服务器互动的过程,通常涉及到服务器端数据和状态的变化过程,比如文件被修改,访问数量增加等。使用的是标准的 HTTP 方法,Http标准中定义的最主要四个动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作: GET: 用来获取资源 POST: 用来新建资源 PUT: 用来更新资源 DELETE: 用来删除资源 Hypermedia?是应用程序状态的引擎,资源表示通过超链接互联。 二、RESTful API应遵循的原则 1、协议(Protocol) API与用户的通信协议,尽量使用HTTPs协议。HTTPs协议的所有信息都是加密传播,第三方无法窃听,具有校验机制,一旦被篡改,通信双方会立刻发现,配备身份证书,防止身份被冒充。 2、域名(ROOT URL) 应该尽量将API部署在专用域名之下。 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 /api/ 3、版本(Versioning) 应该将API的版本号放入URL。 /v1/ 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。 注:需要注意版本规划,以便以后API的升级和维护。使得API版本变得强制性,不要发布无版本的API,使用简单数字,避免小数点如2.5。 4、路径(Endpoints) 路径表示API的具体网址URL。在RESTful架构中,每个URL代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与代表的对象名称对应。一般来说,某一同种记录的”集合”(collection),所以API中的名词也应该使用复数。 具体细则: 1、使用名词而不是动词。举例来说,某个URL是/cards/show/1,其中show是动词,这个URL就设计错了,正确的写法应该是/cards/1,然后用GET方法表示show。如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户
文档评论(0)