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处理
get post put delete的更多相关文章
- 如何区别数据库删除语句drop与delete与truncate?
1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...
- 数据库设计中的Soft Delete模式
最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...
- 关于JavaScript中的delete操作
关于JavaScript中的delete操作 看到一道题,是这样的: (function(x){ delete x; return x; })(1); 1 null undefined Error 我 ...
- Git异常:Cannot delete the branch 'test1' which you are currently on
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- HTTP Method详细解读(`GET` `HEAD` `POST` `OPTIONS` `PUT` `DELETE` `TRACE` `CONNECT`)
前言 HTTP Method的历史: HTTP 0.9 这个版本只有GET方法 HTTP 1.0 这个版本有GET HEAD POST这三个方法 HTTP 1.1 这个版本是当前版本,包含GET HE ...
- IIS7.5上的REST服务的Put,Delete操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝.移动.删除等.在I ...
- ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...
- new/delete重载
在c++中,有时我们需要在运行阶段为一个变量分配未命名的内存,并使用指针来访问它,这里就可以用到new关键字.另外需要指出的是,new分配的内存块通常与常规变量分配的内存块不同,常规变量的值都储存在被 ...
- EC笔记:第三部分:16成对使用new和delete
我们都知道,申请的资源,使用完毕后要释放.但是这个释放动作,一定要注意. 举个例子,很多人动态分配的资源,在使用之后,往往直接调用了delete,而不管申请资源的时候用的是new还是new[]. 如下 ...
- Spring boot: Request method 'DELETE' not supported, Request method 'PUT' not supported, Request method 'POST' not supported
GET,POST,PUT,DELETE, Spring都支持,不要怀疑Spring, 一定是前端发送的rest 请求和后端的响应不匹配, 查找原因以及解决办法, 很简单 用chrome打开F12控制台 ...
随机推荐
- 关于Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.的问题
远程连接数据库的问题 connectionString="Data Source =IP; Initial Catalog=movies;User ID=sa;Password=1qaz2w ...
- [HAOI2012]音量调节 BZOJ2748 dp
题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少. ...
- Windows Server上用命令来起停IIS站点
平时,在Server上管理IIS,都是在界面上进行一些配置,然后再做一些start和stop操作... 对于配置的人来说,会做一些重复步骤,所以适当的使用命令,能大大提高效率. 下面命令是自己之前使用 ...
- VC对话框的菜单设置变灰, 打勾 等
一般可以用UPDATE_COMMAND_UI消息,并加入以下代码:pCmdUI->Enable(FALSE); 就实现,弹对话框的菜单需要增加对WM_INITMENUPOPUP消息的处理以后,才 ...
- react 中文文档案例七 (温度计)
const scaleNames = { c: 'Celsius', f: 'Fahrenheit' }; function toCelsius(fahrenheit) { ) * / ; } fun ...
- mysql不支持emoji表情的问题的解决方法
最近财神圈项目集成微信登录功能的过程中,当保存用户有昵称含有表情符号时后台服务抛出异常,原来是数据库默认字符集不支持emoji表情字符.找到问题的原因后,因为之前也没有遇到过这样的问题,也没思路,迅速 ...
- ubuntu下中文乱码解决
这个方法只对该用户有效. 方法二:修改/etc/environment,增加以下内容: LANGUAGE=”zh_CN:zh:en_US:en” LANG=zh_CN.GBK
- Mybatis学习笔记(四) —— SqlMapConfig.xml配置文件
一.properties(属性) SqlMapConfig.xml可以引用java属性文件中的配置信息 在config下定义db.properties文件,如下所示: db.properties配置文 ...
- FlowLayout(流式布局)用法
https://blog.csdn.net/liujun13579/article/details/7771191
- 以Tkinter模块来学习Python实现GUI(图形用户界面)编程
tk是什么:它是一个图形库,支持多个操作系统,使用tcl语言开发的.tkinter是Python内置的模块, 与tk类似的第三方图形库(GUI库)还有很多,比如:Qt,GTK,wxWidget,wxP ...