zoukankan      html  css  js  c++  java
  • get post put delete

    get:获取资源 幂等

    post:执行不安全和非幂等操作(幂等:多次请求于一次请求的效果一样)

    put:更新资源  幂等

    delete:删除资源  幂等

    如何理解幂等:

    public book
    {
        private Price price;
        public setprice(Price price)
    {
      this.price = price  
    }
    }

     举例说明:

    “用户”作为资源

    get:获取用户信息

    post:创建新用户

    put:修改用户信息

    delete:删除用户

    对于需要计算或者处理函数的情况,可以将计算过程或者处理函数本身作为资源,使用get方法来处理

    比如:验证用户名,密码是否有效,把验证函数本身作为资源

    get  /validuser/5195   http 1.1

    content-type application/json

    {"result":true}

    这个过程本身是安全和幂等的,也是get最擅长的

    以此类推,判断手机号,判断用户名是否被占用,等等。。。

    restful web  的地址uri 好像和我目前设计的不一样

    每个uri都体现了他的基本功能

    比如 getuserinfo  都知道是获取用户信息

    比如 /user/getuserinfo/5195   获取5195的用户信息(我目前的做法)

    而restful web 的uri 也要体现这一点

    比如:

    post

    /user/5195/updatename    //修改5195的姓名

    不建议同一uri,使用不同的参数区分不同的操作

    比如:

    post /user/5195

    type=add

    post /user/5195

    type=update

    restful web 对错误的处理

    无论是客户端提交请求导致的错误还是服务端的运行错误,都应该返回一个对错误的描述,包含错误状态码和对错误信息的描述。

    常见的错误用法一般是返回200,和一堆错误描述信息。

    这样可能导致对于客户端需要缓存数据的情况,如果返回200,客户端会正常缓存数据,但最终缓存的数据是错误的,导致脏数据的产生。

    而对于需要分析数据的情况来说,客户端可能会向服务端提交错误报告,就可以把状态码提交过去,而服务端也会根据状态码对出错代码快速定位。

    由客户端原因导致的错误,状态码在400——417

    由服务器端原因导致的错误,状态码在500——505

     如果返回的状态码是不常见的,比如499,599,就直接按400,500处理

  • 相关阅读:
    解决电脑启动桌面图标变乱
    多表查询
    windows安装rabbitmq踩坑实录
    springboot单元测试
    联想锁屏壁纸所在路径
    ArrayList数组扩容方式(基于jdk1.8)
    SpringCloud + Consul服务注册中心 + gateway网关
    springboot 文件上传及java使用post请求模拟文件上传
    kotlin + springboot启用elasticsearch搜索
    kotlin + springboot整合mybatis操作mysql数据库及单元测试
  • 原文地址:https://www.cnblogs.com/fuyujian/p/4657142.html
Copyright © 2011-2022 走看看