其他分享
首页 > 其他分享> > REST API概述与设计规范

REST API概述与设计规范

作者:互联网

一、REST API

REST、RESTful、REST API

API: 是应用程序编程接口,是预先定义好的函数,可以供应用程序或开发人员访问调用
REST(Representational State Transfer,表述化状态转移):指的是一组架构约束条件和原则。
RESTful:满足REST约束条件和原则的设计规范或者架构风格
REST API:是北向接口的主流设计方式,遵循RESTful设计的API

为什么需要RESTful

RESTful并不是专门为SDN提出的,而是专门针对Web应用中HTTP使用中出现的一些问题提出的,由于HTTP协议的使用很不规范、随意、混乱
URL的设计缺乏规范性
HTTP的动词使用不当
HTTP的返回状态码使用不规范等
Restful正是针对HTTP中上述问题而提出的

image
image

REST中的几个重要概念

image
资源(resource)

比如在普通的博客应用中,资源可能是包括了用户、博文或者评论等
在SDN中,资源可能是链路、交换机、流表等

资源标识符(resource identifiers)

URI是统一资源标示符,URL是统一资源定位符。URL是URI的子集,或者说是一种具体实现
对于REST API来说一个资源对应唯一的一个URI,REST通过URI来暴露资源,URI的设计的合理性和规范性十分重要

REST的约束条件与原则

REST API的设计

REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成,HTTP动词描述操作;URI是标识资源。

HTTP动词

image

资源的原型

URI命名规范

URI中有些字段可以是变量,在实际使用中可以按需替换,例如:
http://api.soccer.restapi.org/leagues/{leagueId}/teams/{teamId}/players/{playerId} 
其中:leagueId,teamId,playerId 是变量(数字,字符串等类型都可以)
作为查询的参数补充,以标示一个唯一的资源
作为过滤条件使用,例如:GET /users?role=admin 
作为资源列表分页标示使用,例如:GET /users?pageSize=25&pageStartIndex=50

HTTP响应状态

REST API相关的响应状态码

2xx:操作成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误

常用状态码

200 (“OK”) :一般性的成功返回,不可用于请求错误返回;
201 (“Created”) :资源被创建;
202 (“Accepted”) :Controller控制类资源异步处理的返回,仅表示请求已经收到;
204 (“No Content”) :可能会出现在PUT、POST、DELETE的请求中;
303 (“See Other”) :返回一个资源地址URI的引用,但不强制要求客户端获取该地址的状态;
400 (“Bad Request”) :客户端一般性错误返回, 其它4xx的错误,也可以使用400,具体错误信息可以放在body中;
401 (“Unauthorized”) :认证错误;
404 (“Not Found”) :找不到URI对应的资源;
500 Internal Server Error:服务器处理请求时发生了意外;
503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。

元数据设计

HTTP Headers
Content-Type :body的数据格式,如Content-type: application/json,表示主类型是application,数据格式是json
Content-Length :body 数据体的大小
Last-Modified :资源最后被修改的时间戳
ETag :服务器端资源版本的标示
Location :在响应header中使用
Cache-Control, Expires, Date : 通过缓存机制提升接口响应性能

标签:HTTP,URI,REST,API,设计规范,资源,客户端
来源: https://www.cnblogs.com/lht333/p/16701682.html