本文档由小幺鸡编辑

Representational State Transfer(REST)是一种架构原则,其中将web服务视为资源,可以由其URL唯一标识。RESTful Web服务的关键点是明确使用HTTP方法来表示不同的操作的调用。

REST服务的主要优势在于:它们是跨平台(Java、.net、PHP等)高度可重用的,因为它们都依赖基本HTTP协议。它们使用基本的XML/JSON,而不是复杂的SOAP XML,使用非常方便。

状态码

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词):

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

检索条件

检索条件有四部分构成:列名、连接符(or或者and)、条件名、条件值,e.g. column1_and_gte=100,即要求检索column1大于等于100的数据,且该条件为且条件。 


 条件名称条件意义  条件名样例 
 等于(不等于) =(!=)_eq (_neq) ?condition1_and_eq=1&condition2_and_neq='2'
 小于等于 <= _lte ?condition1_or_lte=1
 大于等于 >= _gte ?condition1_or_gte=1
 小于 < _lt ?condition1_and_lt=1
 大于 > _gt ?condition1_and_gt=1
 在某个范围内 [a, b] _range ?condition1_or_range='[a, b]'
 包含 (1,2,3,4,...) _in ?condition1_and_in=(1,2,3,4,5)