美文网首页
基于HTTP状态码实现业务增删改查的RESTful API示例

基于HTTP状态码实现业务增删改查的RESTful API示例

作者: 莫失莫忘X3 | 来源:发表于2023-12-10 11:10 被阅读0次

基于HTTP状态码实现业务增删改查的RESTful API示例

@RestController
@RequestMapping("/users")
public class UserController {

@Autowired
private UserRepository userRepository;

// 创建用户
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
    User savedUser = userRepository.save(user);
    return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
}

// 查询
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
    User user = userRepository.findUserById(id);
    if (user != null) {
        return new ResponseEntity<>(user, HttpStatus.OK);
    } else {
        return new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }
}

//复杂查询
@PostMapping("/page")
public ResponseEntity<Page<User>> searchUsers(@RequestBody UserSearchCriteria criteria, Pageable pageable) {
    Page<User> users = userRepository.criteriaSearch(criteria, pageable);
    return ResponseEntity.ok(users);
}

// 更新
@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
    User existingUser = userRepository.findUserById(id);
    if (existingUser != null) {
        BeanUtils.copyProperties(user, existingUser);
        userRepository.save(existingUser);
        return new ResponseEntity<>(existingUser, HttpStatus.OK);
        } else {
            return new ResponseEntity<>(HttpStatus.NOT_FOUND);
        }
    }

// 删除
@DeleteMapping("/{id}")
 public ResponseEntity deleteUser(@PathVariable Long id) {
     userRepository.deleteById(id);
     return new ResponseEntity(HttpStatus.NO_CONTENT);
 }
}

相关文章

网友评论

      本文标题:基于HTTP状态码实现业务增删改查的RESTful API示例

      本文链接:https://www.haomeiwen.com/subject/hjzugdtx.html