RestFull风格及响应状态码

RestFull风格

  1. 概念

    1. RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
    2. 其实就是一种非常优雅的规范.简单理解,使用名词而非使用动词,并根据请求的方式不同来得到响应的响应.
      1. 例如 分别实现用户的CRUD操作
        1. 查询: http://unrestful.com/queryUser?id=1 VS GET方式 http://restful.com/user/1

        2. 新增 : http://unrestful.com/saveUser VS POST方式 http://restful.com/user

        3. 删除 : http://unrestful.com/deleteUser?id=2 VS DELETE方式 http://restful.com/user/2

        4. 修改 : http://unrestful.com/updateUser?id=3 VS PUT方式 http://restful.com/user/3

  2. 大家都遵循的基本原则

    1. 请求方式和处理资源的方式匹配
      GET (选择):从服务器上获取一个具体的资源或者一个资源列表。
      POST (创建): 在服务器上创建一个新的资源。
      PUT(更新):以整体的方式更新服务器上的一个资源。
      PATCH (更新):只更新服务器上一个资源的一个属性。
      DELETE(删除):删除服务器上的一个资源。
    2. 使用复数名词
      /categorys 而不是 /category
      /users 而不是 /user
      /products 而不是 /product
      
    3. 为集合提供过滤 排序 选择和分页等功能
      1. 比如在数据过多, 需要对数据进行分页请求的时候, 我们应该统一 API 请求参数. 常见的有这些.
        1. limit=10 指定返回记录的数量
        2. offset=10 指定返回记录的开始位置。
        3. page=2&per_page=100 指定第几页,以及每页的记录数。
        4. sortby=dept&order=desc 指定返回结果按照哪个属性排序,以及排序顺序。
      2. 过滤 :使用唯一的查询参数进行过滤:
        1. GET /rooms?room_num=666 返回指定的room
      3. Sorting排序: 允许针对多个字段排序
      4. Field selection
        1. 移动端能够显示其中一些字段,它们其实不需要一个资源的所有字段,给API消费者一个选择字段的能力,这会降低网络流量,提高API可用性。

          GET /cars?fields=manufacturer,model,id,color

    4. json数据类型(json字符串和对象之间的转换请查看另一篇博文–JsonUtils工具转换)
      1. Number:整数或浮点数
      2. String:字符串(使用较多)
      3. Boolean:true 或 false
      4. Array:数组包含在方括号[]中
      5. Object:对象包含在大括号{}中
      6. Null:空类型
    5. Http状态码处理错误
      RestFull风格及响应状态码_第1张图片

你可能感兴趣的:(JavaWeb)