zoukankan      html  css  js  c++  java
  • 对RESTful的理解

    一、RESTful是个啥?

      RESTful是一种软件架构风格、设计风格,只是提供了一组设计原则和约束条件。

    二、对比传统方式

      RESTful风格和传统方式主要体现在URI和请求方法上。

      传统方式 RESTful风格
    查询 GET    /user/query?name=zhangsan GET    /user?name=zhangsan
    详情 GET    /user/getInfo?id=1 GET    /user/1
    创建 POST    /user/create POST    /user
    修改 POST    /user/update PUT    /user/1
    删除 GET    /user/delete?id=1 DELETE    /user/1

      

      1、用URI描述资源。

      2、使用HTTP方法描述行为。使用HTTP状态码来表示不同的结果。

      3、使用json作为数据交互格式。

      

    GET,DELETE,PUT和POST的典型用法:

    GET

    • 安全且幂等
    • 获取表示
    • 变更时获取表示(缓存)
    • 200(OK) - 表示已在响应中发出
    • 204(无内容) - 资源有空表示
    • 301(Moved Permanently) - 资源的URI已被更新
    • 303(See Other) - 其他(如,负载均衡)
    • 304(not modified)- 资源未更改(缓存)
    • 400 (bad request)- 指代坏请求(如,参数错误)
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务端当前无法处理请求

    POST

    • 不安全且不幂等
    • 使用服务端管理的(自动产生)的实例号创建资源
    • 创建子资源
    • 部分更新资源
    • 如果没有被修改,则不过更新资源(乐观锁)
    • 200(OK)- 如果现有资源已被更改
    • 201(created)- 如果新资源被创建
    • 202(accepted)- 已接受处理请求但尚未完成(异步处理)
    • 301(Moved Permanently)- 资源的URI被更新
    • 303(See Other)- 其他(如,负载均衡)
    • 400(bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 409 (conflict)- 通用冲突
    • 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
    • 415 (unsupported media type)- 接受到的表示不受支持
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务当前无法处理请求

    PUT

    • 不安全但幂等
    • 用客户端管理的实例号创建一个资源
    • 通过替换的方式更新资源
    • 如果未被修改,则更新资源(乐观锁)
    • 200 (OK)- 如果已存在资源被更改
    • 201 (created)- 如果新资源被创建
    • 301(Moved Permanently)- 资源的URI已更改
    • 303 (See Other)- 其他(如,负载均衡)
    • 400 (bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 409 (conflict)- 通用冲突
    • 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
    • 415 (unsupported media type)- 接受到的表示不受支持
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务当前无法处理请求

    DELETE

    • 不安全但幂等
    • 删除资源
    • 200 (OK)- 资源已被删除
    • 301 (Moved Permanently)- 资源的URI已更改
    • 303 (See Other)- 其他,如负载均衡
    • 400 (bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 409 (conflict)- 通用冲突
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务端当前无法处理请求

    三、REST成熟度模型

      原文https://martinfowler.com/articles/richardsonMaturityModel.html

        

      将REST成熟度从低到高分为4级(level0-level3):

      1、Level 0:使用http作为传输方式。

      2、Level 1:引入资源概念,每个资源都有对应的URI。

      3、使用HTTP方法进行不同的操作,使用HTTP状态码来表示不同的结果。

      4、使用超媒体。在资源的表达中包含了连接信息。

    一般情况下,达成Level2就可以了。

  • 相关阅读:
    LVS是什么及作用?
    什么是cdn?
    生产者消费者模型应用场景及优势?
    提交代码报错 error: failed to push some refs to
    Appscan的使用方法
    APP性能测试指标
    系统测试方案模板
    Jmeter测试数据库
    Jmeter测试接口文档
    web系统的测试点
  • 原文地址:https://www.cnblogs.com/caofanqi/p/10813681.html
Copyright © 2011-2022 走看看