RestFull风格

  1. 概念
  1. RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
  2. 其实就是一种非常优雅的规范.简单理解,使用名词而非使用动词,并根据请求的方式不同来得到响应的响应.
  1. 例如 分别实现用户的CRUD操作
  1. 查询: http://unrestful.com/queryUser?id=1 VS
  2. 新增 : http://unrestful.com/saveUser VS
  3. 删除 : http://unrestful.com/deleteUser?id=2 VS
  4. 修改 : http://unrestful.com/updateUser?id=3 VS
  1. 大家都遵循的基本原则
  1. 请求方式和处理资源的方式匹配
    GET (选择):从服务器上获取一个具体的资源或者一个资源列表。
    POST (创建): 在服务器上创建一个新的资源。
    PUT(更新):以整体的方式更新服务器上的一个资源。
    PATCH (更新):只更新服务器上一个资源的一个属性。
    DELETE(删除):删除服务器上的一个资源。
  2. 使用复数名词
/categorys 而不是 /category
/users 而不是 /user
/products 而不是 /product
  1. 为集合提供过滤 排序 选择和分页等功能
  1. 比如在数据过多, 需要对数据进行分页请求的时候, 我们应该统一 API 请求参数. 常见的有这些.
  1. limit=10 指定返回记录的数量
  2. offset=10 指定返回记录的开始位置。
  3. page=2&per_page=100 指定第几页,以及每页的记录数。
  4. sortby=dept&order=desc 指定返回结果按照哪个属性排序,以及排序顺序。
  1. 过滤 :使用唯一的查询参数进行过滤:
  1. GET /rooms?room_num=666 返回指定的room
  1. Sorting排序: 允许针对多个字段排序
  2. Field selection
  1. 移动端能够显示其中一些字段,它们其实不需要一个资源的所有字段,给API消费者一个选择字段的能力,这会降低网络流量,提高API可用性。
    GET /cars?fields=manufacturer,model,id,color
  1. json数据类型(json字符串和对象之间的转换请查看另一篇博文–JsonUtils工具转换
  1. Number:整数或浮点数
  2. String:字符串(使用较多)
  3. Boolean:true 或 false
  4. Array:数组包含在方括号[]中
  5. Object:对象包含在大括号{}中
  6. Null:空类型
  1. Http状态码处理错误

ResponseEntity 状态码 restful 状态码设计_restful