RESTful API

RESTful API是什么

REST -- REpresentational State Transfer 即表现层状态转移,主要是为了设计合理的路径来管理资源。REST API可以设计出更加简洁明了的接口,帮助实现系统之间的信息传递和调用关系。

RESTful API怎么用

REST简单说为了实现为了获取资源信息或对其实施动作的规范。从发出请求方式,到返回内容格式,以及动作完成后资源。接下来将以获取api的scope为例来总结所学内容。

RESTful API就是你看到这个url就知道它是用来干嘛的。其主要动作有增删改查,如下表所示。


REST:Resource Representational State Transfer。即“资源”在网络传输中以某种“表现形式”进行“状态转移”。所涉及的这三点重点是:

资源:真实的对象数据。比如我们的api,我们的app等等。

表现形式:资源的外在表现形式,如json,html, img等。

状态转移:资源的状态,可以通过增删改查引起资源状态的改变。

路径

路径表示的是API的具体网址。这个网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。

过滤信息

再进行过滤信息的时候要注意资源的层次,比如想要获取scope时,因为scope是在api层级下的,所以要先写apis/{apiName}/scopes(这个在第一次写时写成了/scopes/{apiName},当时只考虑了用复数形式,忽略了层级)。

状态码

服务向用户返回的状态码和信息一般有如下几种:(参考文档)

200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等(输入一样输出一定一样)的(Idempotent)。

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。

202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功。

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。

403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

你可能感兴趣的:(RESTful API)