3、RestFull风格【URL】

RestFull设计风格

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

URL定义

资源:互联网所有的事物都可以被抽象为资源 
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。 
分别对应 添加、 删除、修改、查询。 

传统方式操作资源 

http://127.0.0.1/item/queryUser.action?id=1   查询,GET 
http://127.0.0.1/item/saveUser.action             新增,POST 
http://127.0.0.1/item/updateUser.action          更新,POST 
http://127.0.0.1/item/deleteUser.action?id=1  删除,GET或POST

请求方式

可以通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。

其中,GET 用于查询资源,POST 用于创建资源,PUT 用于更新服务端的资源的全部信息,PATCH 用于更新服务端的资源的部分信息,DELETE 用于删除服务端的资源。

这里使用“用户”的案例进行回顾通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。

使用RestFull操作资源 

【GET】 /users # 查询用户信息列表

【GET】 /users/1001 # 查看某个用户信息

【POST】 /users # 新建用户信息

【PUT】 /users/1001 # 更新用户信息(全部字段)

【PATCH】 /users/1001 # 更新用户信息(部分字段)

【DELETE】 /users/1001 # 删除用户信息

普通方式跟RestFull方式URL传参举例:

获取两个数相加的之和,对于普通的URL请求与RestFull请求的区别:

普通URL请求传参方式:

1     @RequestMapping("/rest")
2     public String RestFull(int a, int b, Model model) {
3         int sum = a + b;
4         model.addAttribute("msg", "结果为:" + sum);
5         return "hello";
6     }

 

 RestFull传参方式:

@PathVarable:表示路径变量

1     @RequestMapping("/rest/{a}/{b}")
2     public String RestFull(@PathVariable int a, @PathVariable int b, Model model) {
3         int sum = a + b;
4         model.addAttribute("msg", "结果为:" + sum);
5         return "hello";
6     }

通过指定的提交方式去实现:

指定提交方式:(掌握)

  @RequestMapping(value = "/rest/{a}/{b}",method = RequestMethod.GET)

等于上面的:

  @RequestMapping("/rest/{a}/{b}")

或者也可以直接写成:

  @GetMapping("/rest/{a}/{b}")

上面的三个注解的功能是一样的!

 

跟GetMapper一样的还有其他类似注解:

    @GetMapping("/rest/{a}/{b}")
    @PostMapping("/rest/{a}/{b}")
    @DeleteMapping("/rest/{a}/{b}")
    @PutMapping("/rest/{a}/{b}")
    // ……


posted @ 2021-01-13 22:57  Java小白的搬砖路  阅读(323)  评论(0编辑  收藏  举报