RESTful-表述性状态转移风格

技术文档网 2021-04-16

REST英文全拼:Representational State Transfer

  • 面向资源编程

  • 资源指的就是一类数据

  • 产品表->就是产品资源

  • 最重要的是如何表示一个资源

  • 地址即资源

    http://api.demo.com/users   ->  所有的用户数据
    http://api.demo.com/products   ->  所有的产品数据
    http://api.demo.com/products/iphone   ->  特指iPhone这个商品
    http://api.demo.com/users/1/articles   ->
    
  • 对于资源我们的代码可能的操作只有增删改查

  • 在HTTP协议中对每一个请求URL都会有不同的谓词GET/POST/PUT/PATCH/DELETE

  • http动词

    POST(CREATE): 在服务器新建一个资源。
    DELETE(DELETE): 在服务器删除资源。
    PUT(UPDATE): 在服务器更新一个资源。
    GET(SELECT): 在服务器取出一项或多项资源。
    
  • 过滤信息

    ?limit=10: 指定返回记录的数量。
    ?offset=10: 指定返回记录的开始位置。
    ?page=2&per_page=100: 指定第几页,以及每页的记录数。
    ?sortby=name&order=asc: 指定返回结果按照哪个属性排序,以及排序顺序。
    ?animal_type_id=1: 指定筛选条件
    
  • 状态码

    200 OK -[GET]: 服务器成功返回用户请求的数据。
    201 CREATED -[POST]: 用户新建或修改数据成功。
    202 ACCEPTED -[*]: 表示一个请求已经进入后台排队(异步任务)。
    204 NO CONTENT -[DELETE]: 用户删除数据成功。
    400 INVALID REQUEST -[*]: 请求错误。
    401 Unauthorized -[*]: 表示用户没有权限(令牌、用户名、密码错误)。
    403 Forbidden -[*]: 表示用户得到授权,但是访问禁止。
    
  • 错误处理

    error作为键名,返回即可
    {
      error: "Invalid API key"
    }
    
  • 返回结果

    GET /collection: 返回资源对象的列表
    GET /collection/resource: 返回单个资源对象
    POST /collection: 返回新生成的资源对象
    PUT /collection/resource: 返回完整的资源对象
    PATCH /collection/resource: 返回完整的资源对象
    DELETE /collection/resource: 返回一个空文档
    

    http相关

  • Content-Type

    application/x-www-urlencoded   可以$POST[]接受数据
    multipart/form-data   文件上传
    application/json   接收json数据
    text/xml   接收xml数据
    

相关文章

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod

随机推荐

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod