美文网首页
基于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