本篇文章为你整理了Restful风格(restful风格接口)的详细内容,包含有restful风格用的多吗 restful风格接口 rest风格和restful风格 springmvc restful风格 Restful风格,希望能帮助你了解 Restful风格。
2.1.什么是无状态性
使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前的请求,不需了解请求的历史。可以更容易的释放资源,让服务器利用Pool(连接池)技术来提高稳定性和性能。
3.Restful操作
RESTful是一种常见的REST应用,是遵循REST风格的web服务,REST式的web服务是一种ROA(面向资源的架构)。更加安全!!
注:幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。
安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。
3.1接口示例
传统URL请求格式:
http:/127.0.0.1/test/query/2 http:/127.0.0.1/test/query?id=1 GET 根据用户id查询用户数据
http:/127.0.0.1/test/save POST 新增用户
http:/127.0.0.1/test/update POST 修改用户信息
http:/127.0.0.1/test/delete GET/POST 删除用户信息
RESTful请求格式:
http:/127.0.0.1/test/1 GET 根据用户id查询用户数据
http:/127.0.0.1/test POST 新增用户
http:/127.0.0.1/test PUT 修改用户信息
http:/127.0.0.1/test/1 DELETE 删除用户信息
4.Http状态码
4.1一般情况:
200:请求响应成功 200
3xx:请求重定向 重定向:你重新到我给你新位置去;
4xx:找不到资源 404 资源不存在;
5xx:服务器代码错误 500 502:网关错误
4.2具体情况:
HttpStatus = {
//Informational 1xx 信息
100 : Continue, //继续
101 : Switching Protocols, //交换协议
//Successful 2xx 成功
200 : OK, //OK
201 : Created, //创建
202 : Accepted, //已接受
203 : Non-Authoritative Information, //非权威信息
204 : No Content, //成功,但没有内容
205 : Reset Content, //重置内容
206 : Partial Content, //部分内容
//Redirection 3xx 重定向
300 : Multiple Choices, //多种选择
301 : Moved Permanently, //永久移动
302 : Found, //找到
303 : See Other, //参见其他
304 : Not Modified, //未修改
305 : Use Proxy, //使用代理
306 : Unused, //未使用
307 : Temporary Redirect, //暂时重定向
//Client Error 4xx 客户端错误
400 : Bad Request, //错误的请求
401 : Unauthorized, //未经授权
402 : Payment Required, //付费请求
403 : Forbidden, //禁止
404 : Not Found, //没有找到
405 : Method Not Allowed, //方法不允许
406 : Not Acceptable, //不可接受
407 : Proxy Authentication Required, //需要代理身份验证
408 : Request Timeout, //请求超时
409 : Conflict, //指令冲突
410 : Gone, //文档永久地离开了指定的位置
411 : Length Required, //需要Content-Length头请求
412 : Precondition Failed, //前提条件失败
413 : Request Entity Too Large, //请求实体太大
414 : Request-URI Too Long, //请求URI太长
415 : Unsupported Media Type, //不支持的媒体类型
416 : Requested Range Not Satisfiable, //请求的范围不可满足
417 : Expectation Failed, //期望失败
//Server Error 5xx 服务器错误
500 : Internal Server Error, //内部服务器错误
501 : Not Implemented, //未实现
502 : Bad Gateway, //错误的网关
503 : Service Unavailable, //服务不可用
504 : Gateway Timeout, //网关超时
505 : HTTP Version Not Supported //HTTP版本不支持
@Controller
public class RestFulController {
//映射访问路径
@RequestMapping("/commit/{p1}/{p2}")
//在SpringMVC中可以使用 @PathVariable,让方法参数的值对应绑定到一个URI变量上
public ModelAndView index(@PathVariable int p1, @PathVariable int p2, ModelAndView mv){
int result = p1 + p2;
//实例化一个ModelAndView对象用于向视图中传值
mv.addObject("msg","结果:" + result);
//返回视图
mv.setViewName("test");
return mv;
也可以使用method属性指定类型
@RequestMapping(value = "/hello",method = {RequestMethod.POST})
public String index2(Model model){
model.addAttribute("msg", "hello!");
return "test";
但浏览器地址栏进行访问是通过GET方式进行的 ,我们定义的是POST方法-所以报错不匹配
改为GET
@RequestMapping(value = "/hello",method = {RequestMethod.GET})
//我们一般采用这种方式:@GetMapping("/hello")
public String index2(Model model){
model.addAttribute("msg", "hello!");
return "test";
我们可以看到Method 方式太长,不方便,我们可以用延伸的方法
@GetMapping:扮演的是@RequestMapping(method =RequestMethod.GET) 的快捷方式。
@PostMapping (method =RequestMethod.GET)
@PutMapping (method =RequestMethod.POST)
@DeleteMapping (method =RequestMethod.DELETE)
@PatchMapping (method =RequestMethod.PATCH)
如:
如果是地址栏输入(GET)可以调用 index方法:
@GetMapping("/commit/{p1}/{p2}")
//在SpringMVC中可以使用 @PathVariable,让方法参数的值对应绑定到一个URI变量上
public ModelAndView index(@PathVariable int p1, @PathVariable int p2, ModelAndView mv){
int result = p1 + p2;
//实例化一个ModelAndView对象用于向视图中传值
mv.addObject("msg","结果1:" + result);
//返回视图
mv.setViewName("test");
return mv;
如果前端页面form表单 method为POST,则调用index2方法
@PostMapping("/commit/{p1}/{p2}")
//在SpringMVC中可以使用 @PathVariable,让方法参数的值对应绑定到一个URI变量上
public ModelAndView index2(@PathVariable int p1, @PathVariable int p2, ModelAndView mv){
int result = p1 + p2;
//实例化一个ModelAndView对象用于向视图中传值
mv.addObject("msg","结果2:" + result);
//返回视图
mv.setViewName("test");
return mv;
以上就是Restful风格(restful风格接口)的详细内容,想要了解更多 Restful风格的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。