• 第六篇 常用请求协议之post put patch 总结


    [转]https://blog.csdn.net/sshfl_csdn     感谢愿意总结分享的人,thanks

    idempotent 幂等的

    如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的;
    idempotent的意思是如果相同的操作再执行第二遍第三遍,产生结果还是一样的。

    POST 方法

    用来创建一个子资源,如 /api/users,会在users下面创建一个user,如users/1;
    POST方法不是幂等的,多次执行,将导致多条相同的用户被创建(users/1,users/2 ...
    而这些用户除了自增长id外有着相同的数据,除非你的系统实现了额外的数据唯一性检查)

    PUT 方法

    PUT比较正确的定义是 Replace (Create or Update),
    例如 PUT /items/1 的意思是替换 /items/1 ,如果已经存在就替换,沒有就新增;
    因此,PUT方法一般会用来更新一个已知资源,除非在创建前,你完全知道自己要创建的对象的URI

    Post 与 Put 区别

    在HTTP中,PUT被定义为idempotent的方法;
    POST则不是,这是一个很重要的区别
    
    举例说明:
    POST /api/articles
    PUT /gists/id/stars
    如果产生两个“资源”,就说明这个服务不是idempotent(幂等的),因为多次使用产生了副作用---应该使用POST方法;
    如果后一个请求把第一个请求**覆盖**掉了,那这个服务就是idempotent的 ---应该使用PUT方法。

    PATCH 方法

    PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行"局部更新"

    需要注意的地方

    "语义" 而非 风格;是语义的问题,换句话说:
    也就是这取决于这个REST服务的行为是否是idempotent(幂等的)
    
    // 但是这个只是在语义上,同时不要太苛求语义
    DELETE: 刪除,无论如何 资源 最后都将不复存在
    PUT:    替换(新增或完整更新)
    PATCH:  部分更新
  • 相关阅读:
    【译】第33节---种子数据
    python文件的读写
    python-----实现数据库安装和连接操作
    学习进度(第三周)
    解 idea(.IntelliJIdea2019.3)双击打不开的原因
    python爬虫------处理cookie的相关请求
    安装retrying模块出现 (Retry(total=4, connect=None, read=None, redirect=None, status=None))
    java----统计疫情可视化展示--echarts(三)
    java----统计疫情可视化展示--echarts(二)
    java----统计疫情可视化展示--echarts
  • 原文地址:https://www.cnblogs.com/victorm/p/9199161.html
Copyright © 2020-2023  润新知