一:什么是Restful架构风格
Restful是一种软件架构风格,指的是一组架构约束和原则。满足这些约束条件和原则就是采用Restful风格
核心:将应用程序设计成一组资源的集合,每个资源都有一个唯一的标识符(URL),且可以进行各种操作(GET、POST、PUT、DELETE等)
二:特点
1:资源的统一标识符(URL):每个资源都有一个唯一的URL,用于标识该资源
2:统一的接口(HTTP方法):定义了一组标准的HTTP方法(GET、POST、PUT、DELETE等)
3:无状态的通信:服务器不保存客户端的任何状态信息,每个请求都是独立的
4:支持缓存:客户端可以缓存服务器返回的资源状态,以提高性能
三:使用spring boot实现Restful API
以下将演示如何使用spring boot框架实现一个简单的Restful API,并使用工具测试API接口的功能
1:创建spring boot工程
创建一个spring boot工程,选择Web依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2:定义领域模型(实体类)
首先定义一个领域模型User类,包含id和name两个属性。
public class User {
private long id;
private String name;
// 省略getter/setter
}
3:创建Controller
创建一个UserController类来定义Restful API的接口
@RestController
@RequestMapping("/users")
public class UserController {
private static Map<Long, User> users = new HashMap<>();
@GetMapping("/{id}")
public User getUser(@PathVariable long id) {
return users.get(id);
}
@PostMapping("/tj")
public String createUser(@RequestBody User user) {
users.put(user.getId(), user);
return "success";
}
@PutMapping("gx")
public String updateUser(@RequestBody User user) {
users.put(user.getId(), user);
return "success";
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable long id) {
users.remove(id);
return "success";
}
}
4:测试API接口
启动Spring Boot应用,使用Postman工具测试以上API接口。测试示例如下:
-
GET /users/{id}:访问http://localhost:8080/users/1,将会返回用户id为1的信息。
-
POST /users/tj:提交JSON格式的用户数据,如{"id":1,"name":"Tom"},将会创建一个新的用户。
-
PUT /users/gx:提交JSON格式的用户数据,如{"id":1,"name":"Jerry"},将会更新id为1的用户的姓名为Jerry。
-
DELETE /users/{id}:访问http://localhost:8080/users/1,将会删除id为1的用户。
常用注解
1:@RestController注解表示这个类是一个Restful API的控制器,可以处理HTTP请求并返回相应的数据
2:@RequestMapping
:标识一个方法可以处理哪些路由请求。通过该注解来定义资源的访问路径、请求方法、参数传递方式、响应类型等信息。
3:@PathVariable
:用来获取URL路径中的变量值,通常与@RequestMapping
注解配合使用。
4:@RequestParam
:用来获取客户端传递的请求参数,通常配合@RequestMapping
一起使用。
5:@RequestBody
:将HTTP请求体转换为一个Java对象,可以自动地将JSON/XML等格式的数据反序列化为Java对象。
总结
本文介绍了Restful架构风格的核心概念和优点,并演示了如何使用spring boot框架实现一个简单的Restful,并使用Postman工具测试API接口的功能。
Restful架构风格有助于提高Web应用程序的可伸缩性,使得系统更加灵活、易于维护和扩展