引言:
RESTful介绍:
RESTful是一种软件架构风格!
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源,
POST用来新建资源(也可以用于更新资源),
PUT用来更新资源,
DELETE用来删除资源,
这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作
1、RESTful接口设计
在此我们以用户数据的基本操作来进行接口设计
HTTP协议请求方法 |
SpringBoot注解 |
URL |
功能说明 |
POST |
@PostMapping |
/users |
创建一个用户 |
GET |
@GetMapping |
/users |
查询用户列表 |
GET |
@GetMapping |
/users/id |
根据id查询一个用户 |
PUT |
@PutMapping |
/users/id |
根据id更新一个用户 |
DELETE |
@DeleteMapping |
/users/id |
根据id删除一个用户 |
用户实体bean创建
package com.xhn.springbootdemo.po; import org.springframework.boot.context.properties.ConfigurationProperties; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor @ConfigurationProperties(prefix = "userbody") public class UserBody { private long id; private String name; private String mobile; private String address; private Integer age; }
创建Controller UseBodyController
package com.xhn.springbootdemo.controller; import com.xhn.springbootdemo.po.UserBody; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; @RestController @RequestMapping("/userbody") public class UserBodyController { private List<UserBody> listUser= Collections.synchronizedList(new ArrayList<UserBody>()); //实现查询所有用户 @GetMapping("/") public List<UserBody> getUserList(){ return listUser; } //实现添加操作 @PostMapping("/") public String createUser(UserBody userBody){ listUser.add(userBody); return "success"; } //实现删除功能 @DeleteMapping("/{id}") public String deleteUser(@PathVariable("id") Long id){ listUser.remove(id); return "success"; } //修改需要先查询出对应的一条数据 @GetMapping("/{id}") public UserBody getUserById(@PathVariable("id") Long id){ //获取指定id的数据 for (UserBody userBody : listUser) { if (userBody.getId() == id){ return userBody; } } return null; } //更新指定id用户信息 @PutMapping("/{id}") public String updateUserBody(@PathVariable("id") Long id,UserBody userBody){ for (UserBody body : listUser) { if (body.getId()==id){ //就进行修改操作 body.setMobile(userBody.getMobile()); body.setAddress(userBody.getAddress()); body.setAge(userBody.getAge()); body.setName(userBody.getName()); } } return "success"; } }
RESTful与传统风格的区别:
RESTful更不容易被外界的人所了解他操作代码的意图,隐蔽性很强,提倡使用