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

基于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);
 }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容