티스토리 뷰

// 필요한 import문 생략

@RestController
@RequestMapping("/api")
public class ApiController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/users/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userService.getUserById(id);
        if (user != null) {
            return ResponseEntity.ok(user);
        } else {
            return ResponseEntity.notFound().build();
        }
    }

    @PostMapping("/users")
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User createdUser = userService.createUser(user);
        return ResponseEntity.created(URI.create("/api/users/" + createdUser.getId())).body(createdUser);
    }

    @PutMapping("/users/{id}")
    public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
        User updatedUser = userService.updateUser(id, user);
        if (updatedUser != null) {
            return ResponseEntity.ok(updatedUser);
        } else {
            return ResponseEntity.notFound().build();
        }
    }

    @DeleteMapping("/users/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        boolean deleted = userService.deleteUser(id);
        if (deleted) {
            return ResponseEntity.noContent().build();
        } else {
            return ResponseEntity.notFound().build();
        }
    }
}

 

위의 코드는 /api/users 엔드포인트를 통해 사용자 관련 작업을 수행하는 REST API를 정의한 예시입니다. UserController 클래스는 @RestController 어노테이션으로 선언되었으며, /api 경로를 기준으로 엔드포인트들이 정의되어 있습니다.

GET 메서드를 사용하여 모든 사용자 정보를 가져오거나, 특정 사용자의 정보를 가져오는 엔드포인트를 정의하였습니다. POST 메서드를 사용하여 새로운 사용자를 생성하거나, PUT 메서드를 사용하여 기존 사용자 정보를 업데이트하며, DELETE 메서드를 사용하여 사용자를 삭제하는 엔드포인트를 정의하였습니다.

이 코드는 예시일 뿐이며, 실제로는 해당 엔드포인트에 맞게 비즈니스 로직을 구현해야 합니다. 또한, UserService 클래스가 필요하므로 해당 클래스도 정의되어 있어야 합니다.

댓글