RESTful API接口设计风格

2018-05-04  本文已影响0人  Mr无愧于心

REST API(表现层状态转化)

说明

(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

规范的问题
  1. 接口命名规范
    域名:

    //将api部署在专用域名下:
    http://api.example.com
    / /或者将api放在主域名下:
    http://www.example.com/api/
    

    版本:

    将API的版本号放在url中。
    http://www.example.com/app/1.0/
    http://www.example.com/app/1.2/
    

    路径:

    路径表示API的具体网址。每个网址代表一种资源。 
    资源作为网址,网址中不能有动词只能有名词,一般名词要与数据库的表名对应。
    一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
    http://www.example.com/app/1.0/lists
    http://www.example.com/app/1.0/names
    
  2. 使用标准的HTTP方法

    使用标准的HTTP方法:对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有四个。

    GET     :从服务器取出资源(一项或多项)
    POST    :在服务器新建资源。
    PUT     :在服务器更新资源。
    DELETE  :从服务器删除资源。
    

    过滤信息

    如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。
    eg:
    ?limit=10:指定返回记录的数量
    ?page=2&per_page=100:指定第几页,以及每页的记录数。
    ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
    ...
    
示例:
//CRUD(增删改查) 操作学生用户的接口 /rest/1.0/userinfo

//增加一个id为1的用户    
post           /rest/1.0/userinfo           data: {id:1,name:'张三'}
//删除id为1的用户           
delete         /rest/1.0/userinfo?id=1
//修改id为1的用户           
put            /rest/1.0/userinfo?id=1      data:{id:1,name:'李四'}
//查询所有用户           
get            /rest/1.0/userinfo
//查询id为1的用户信息 
get            /rest/1.0/userinfo?id=1
上一篇下一篇

猜你喜欢

热点阅读