Table of Contents

Spring Boot 가이드: Controller

Table of Contents

이번 포스트에서는 Spring Boot에서 Controller의 사용법에 대해 알아보겠습니다.

Github에서 샘플 프로젝트의 전체 코드를 확인할 수 있습니다.

GitHub - xvzc/spring-test: spring test repo


요청

Path variable에 포함되지 않는 나머지 Json 데이터는 RequestBody로 받을 수 있습니다.

1
2
3
4
5
6
7
8
9
@AllArgsConstructor
@RestController
@RequestMapping("/users")
public class UserController {
    @PutMapping("/{id}")
    public SingleResponse updateUser(@RequestBody final UserDto.UpdateRequest dto, @PathVariable final Long id) {
			...
    }
}

전체 코드

컨트롤러는 특별한 경우가 아니라면 한 두줄 이내로 작성하는 것이 좋습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@AllArgsConstructor
@RestController
@RequestMapping("/users")
public class UserController {
    UserService userService;

    @GetMapping("{id}")
    public UnitResponse<UserDto.Response> getUser(@PathVariable final Long id) {
        return UnitResponse.of(userService.getUser(id));
    }

    @GetMapping("")
    public ListResponse<UserDto.Response> getUserList() {
        return ListResponse.of(userService.getUserList());
    }

    @PostMapping("")
    public UnitResponse<UserDto.Response> addUser(@RequestBody final UserDto.AddRequest dto) {
        return UnitResponse.of(userService.addUser(dto));
    }

    @PutMapping("/{id}")
    public UnitResponse<UserDto.Response> updateUser(
            @RequestBody final UserDto.UpdateRequest dto,
            @PathVariable final Long id
    ) {
        return UnitResponse.of(userService.updateUser(dto, id));
    }
}