SpringMVC REST 风格深入详细讲解
什么是 RESTful API?
RESTful 是以表述性状态转移(Representational State Transfer,缩写 REST)为核心的架构风格,所有的设计都以此为中心。在 RESTful 风格的 API 设计中,使用标准的 HTTP 方法(GET, POST, PUT, DELETE)来表示资源的操作,并且使用 URI 来标识资源。
如何在 SpringMVC 中实现 RESTful API?
1. 基本配置
首先在 SpringMVC 中开启 RESTful API 的支持,可以在 Spring 配置文件中添加:
<mvc:annotation-driven>
<mvc:message-converters>
<!-- 支持 json 格式 -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 支持 xml 格式 -->
<bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/xml;charset=UTF-8</value>
<value>text/xml;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
2. 定义控制器
接下来,我们需要定义控制器来处理 RESTful API 的请求。在 SpringMVC 中,可以使用 @RestController
注解来定义 RESTful API 的控制器,例如:
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public String sayHello() {
return "Hello World";
}
@GetMapping("/users/{id}")
public User getUserById(@PathVariable("id") Long id) {
User user = userService.getUserById(id);
return user;
}
@PostMapping("/users")
public User addUser(@RequestBody User user) {
userService.addUser(user);
return user;
}
@PutMapping("/users/{id}")
public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
user.setId(id);
userService.updateUser(user);
return user;
}
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable("id") Long id) {
userService.deleteUser(id);
}
}
上面的例子中,我们使用了不同的 HTTP 方法(GET、POST、PUT、DELETE)来处理不同的资源操作,并且使用了不同的 URI 来标识不同的资源。
3. 说明示例
-
查询用户信息
我们可以通过 GET 方法来获取用户信息,例如:
shell
GET http://localhost:8080/api/users/1返回的结果如下:
json
{
"id": 1,
"name": "Tom",
"age": 20
} -
新增用户信息
我们可以通过 POST 方法来新增用户信息,例如:
```shell
POST http://localhost:8080/api/users{
"name": "Lucy",
"age": 18
}
```返回的结果如下:
json
{
"id": 2,
"name": "Lucy",
"age": 18
}
以上就是 SpringMVC REST 风格的详细讲解,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC REST风格深入详细讲解 - Python技术站