【SpringBoot】Rest风格

首先来看看传统的风格资源描述形式

http://localhost/user/getById?id=2(获得id为2的User信息)http://localhost/user/saveUser(添加并保存一个User信息至数据库)


然后看看同样的功能REST是什么样的?

http://localhost/user/user/2(获得id为2的User信息)

http://localhost/user/user (添加并保存一个User信息至数据库)


可以发现REST风格的几个优点:

  1. 可以隐藏资源的访问行为,无法通过地址得知资源是什么操作

  2. 可以简化书写

肯定有人会问那怎么规定这个地址具体是什么操作呢?

那是因为按照REST风格访问资源时使用行为动作区分资源进行了什么操作。看下图

ok,现在来测试一下。

在Springboot中创建一个控制类,是用GET传递参数

  1. @RequestParam:常用于接收url地址url地址传参或表单传参
  2. @RequestBody:用于接收json数据
  3. @PathVariable:用于接收路径参数,使用{参数名称}描述路径参数
package com.example.controller;

import org.springframework.web.bind.annotation.*;

//Rest模式
@RestController

public class BookController {

    @RequestMapping(value = "/books/{id}", method = RequestMethod.GET)
    @ResponseBody
    public String getById(@PathVariable Integer id){
        System.out.println(id);
        return String.valueOf(id);
    }
}

启动引导类

使用postman测试

 使用GET方式,输入  http://localhost:8080/books/23http://localhost:8080/books/23

 

 

 测试成功。其他的方式大家可以自己尝试。

Spring Boot 是一个基于 Spring 框架的开发框架,它可以快速构建基于 RESTful 风格的 Web 应用程序。REST(Representational State Transfer)是一种基于 HTTP 协议的 Web 应用程序架构风格,它使用 HTTP 请求方法(GET、POST、PUT、DELETE 等)来访问和操作资源,通常使用 JSON 或 XML 格式来表示数据。 Spring Boot 提供了许多注解和工具,使得开发 RESTful Web 服务变得简单和快速。例如,使用 @RestController 注解来定义一个 RESTful Web 服务控制器类,使用 @RequestMapping 注解来映射 HTTP 请求到控制器方法,使用 @RequestBody 注解来接收 HTTP 请求中的 JSON 或 XML 数据,使用 ResponseEntity 类来构造 HTTP 响应等等。 下面是一个简单的 Spring Boot RESTful Web 服务示例代码: ```java @RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; @GetMapping("/users") public List<User> getUsers() { return userService.getAllUsers(); } @GetMapping("/users/{id}") public User getUser(@PathVariable Long id) { return userService.getUserById(id); } @PostMapping("/users") public User createUser(@RequestBody User user) { return userService.createUser(user); } @PutMapping("/users/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { return userService.updateUser(id, user); } @DeleteMapping("/users/{id}") public void deleteUser(@PathVariable Long id) { userService.deleteUser(id); } } ``` 在这个示例中,我们定义了一个 UserController 类来处理用户管理相关的 RESTful Web 服务请求。通过 @RestController 注解,我们将 UserController 类声明为一个 RESTful Web 服务控制器类。通过 @RequestMapping 注解,我们将所有的请求映射到“/api”路径下。然后我们定义了一些方法来处理 GET、POST、PUT、DELETE 请求,这些方法使用了 @GetMapping、@PostMapping、@PutMapping 和 @DeleteMapping 注解来标识请求类型和请求路径。在这些方法中,我们使用了 @RequestBody 注解来接收 HTTP 请求中的 JSON 数据,并使用 ResponseEntity 类来构造 HTTP 响应。同时,我们还注入了一个 UserService 类来处理用户相关的业务逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo&&Eva

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值