ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RESTful风格

2022-09-14 17:03:41  阅读:274  来源: 互联网

标签:http PathVariable int 风格 rslt model RESTful RequestMapping


Restful就是一个资源定位、资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

资源:互联网所有的事物都可以被抽象为资源
资源操作:分为POST、DELETE、PUT、GET四种方法,使用不同方法对资源进行操作(增、删、改、查

 

 

1. 传统方式操作资源
通过不同的参数来实现不同的效果!方法单一!

http://127.0.0.1/item/queryItem.action?id=1 (查询,GET)
http://127.0.0.1/item/saveItem.action (新增,POST)
http://127.0.0.1/item/updateItem.action (更新,POST)
http://127.0.0.1/item/deleteItem.action?id=1 (删除,GET或POST)

2. RestFul方式操作资源
可以通过不同的请求方式来实现不同的效果!
如下:请求地址一样,但是功能可以不同!

http://127.0.0.1/item/1 (查询,GET)
http://127.0.0.1/item (新增,POST)
http://127.0.0.1/item (更新,PUT)
http://127.0.0.1/item/1 (删除,DELETE)
3.代码展示

1、RESTful风格url

@PathVariable 用于修饰方法传入参数,表示该参数值从请求路径中获取

@RequestMapping("h2/{a}/{b}") /{a}/{b}:表示要传入的参数值,在请求url中用斜线/分隔多个参数。

@Controller
public class RESTfulController {

    //传统方式:http://localhost:8080/h1?a=1&b=11
    @RequestMapping("h1")
    public String test1(int a, int b , Model model){
        int rslt=a+b;
        model.addAttribute("msg", "结果为:"+rslt);
        return "hello";
    }

    //RESTful:http://localhost:8080/h2/1/11
    @RequestMapping("h2/{a}/{b}")
    public String test2(@PathVariable int a, @PathVariable int b , Model model){
        int rslt=a+b;
        model.addAttribute("msg", "结果为:"+rslt);
        return "hello";
    }
}

url不变,使用method属性区分

@RequestMapping的请求路径用value或path属性表示

@RequestMapping的method属性表示请求方式,例如:POST、GET等。

@RequestMapping(value = "h3/{a}/{b}",method = RequestMethod.GET)
public String test3(@PathVariable int a, @PathVariable int b , Model model){
    int rslt=a+b;
    model.addAttribute("msg", "get结果为:"+rslt);
    return "hello";
}

@RequestMapping(value = "h3/{a}/{b}",method = RequestMethod.POST)
public String test4(@PathVariable int a, @PathVariable int b , Model model){
    int rslt=a+b;
    model.addAttribute("msg", "post结果为:"+rslt);
    return "hello";
}

3、使用@GetMapping、@PostMapping

@GetMapping:@RequestMapping(method = RequestMethod.GET)的快捷方式

@PostMapping:@RequestMapping(method = RequestMethod.POST)的快捷方式

@GetMapping("h3/{a}/{b}")
public String test5(@PathVariable int a, @PathVariable int b , Model model){
    int rslt=a+b;
    model.addAttribute("msg", "get结果为:"+rslt);
    return "hello";
}

@PostMapping( "h3/{a}/{b}")
public String test6(@PathVariable int a, @PathVariable int b , Model model){
    int rslt=a+b;
    model.addAttribute("msg", "post结果为:"+rslt);
    return "hello";
}

值得注意的是浏览器地址栏进行访问默认是Get请求

标签:http,PathVariable,int,风格,rslt,model,RESTful,RequestMapping
来源: https://www.cnblogs.com/ForeverLoveByMe/p/16693661.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有