RESTful规范

作者: 墨颜丶 | 来源:发表于2018-07-31 19:56 被阅读0次

RESTful规范

一. 什么是RESTful

一切皆资源
RESTful : 面向资源架构(ROA:Resource Oriented Architecture)

  • REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为表征状态转移
  • REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态
  • REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为表征状态转移
  • 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性
  • 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资源架构(ROA:Resource Oriented Architecture)

二. RESTful API设计

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 - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  • 错误处理,状态码是4xx时,应返回错误信息,error当做key。
{
    error: "Invalid API key" 
}
  • 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范。

GET /collection:返回资源对象的列表(数组)

GET /collection/resource:返回单个资源对象

POST /collection:返回新生成的资源对象

PUT /collection/resource:返回完整的资源对象

PATCH /collection/resource:返回完整的资源对象

DELETE /collection/resource:返回一个空文档
  • Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

{"link": { 
"rel":   "collection https://www.example.com/zoos", 
"href":  "https://api.example.com/zoos", 
"title": "List of zoos", 
"type":  "application/vnd.yourformat+json" 
}}

摘自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html

相关文章

  • RESTFul API规范,看这篇就够了

    初尝RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RES...

  • Requests05.请求类型&请求参数

    一、请求类型 requests支持restful规范的常用请求方式 restful规范的常用请求方式:GET:读取...

  • 8.1 Restful API规范

    Restful API规范 restful api是用于在前端与后台进行通信的一套规范。使用这个规范可以让前后端开...

  • 利用 Django REST framework 编写 REST

    利用 Django REST framework 编写 RESTful API 自动生成符合 RESTful 规范...

  • Swagger规范 之 出错点

    Swagger规范是描述RESTful API的强大的定义格式。Swagger规范创建了一个RESTful接口,通...

  • RESTful规范

    RESTful规范 一. 什么是RESTful 一切皆资源RESTful : 面向资源架构(ROA:Resourc...

  • 越来越多的web服务开始采用RESTful风格设计和实现

    文章概要: 什么是RESTful? RESTful的规范是什么? 实际开发中RESTful是怎么使用的? REST...

  • RESTful 规范

    REST 全称是: representational state transfer,可以是一种建筑风格(archi...

  • RESTful 规范

    个人感觉写的不错,简单明了,看了一大堆理论之后,看这个比较舒服,所以无耻的转载了,原文链接:http://www....

  • RESTful规范

    协议 API与用户通信协议使用HTTPS 域名 尽量将API放入专有域名下 版本号 将版本号放入URL中 路径 在...

网友评论

    本文标题:RESTful规范

    本文链接:https://www.haomeiwen.com/subject/vgtkvftx.html