Skip to content

Latest commit

 

History

History
28 lines (24 loc) · 1.5 KB

controller.md

File metadata and controls

28 lines (24 loc) · 1.5 KB

Controller 규약

@ResponseStatus(HttpStatus.OK)                                      // 정상적 응답에 대한 HTTP status 작성
@GetMapping("/${URI}")                                              // API 접근 URI 명시
@Operation(summary = "${SUMMARY}", description = "${DESCRIPTION}")  // Swagger 내 문서화를 위한 설명 작성
// Controller의 모든 응답에 ApiResponseDto class 사용
// Generic을 통해 응답의 data type 명시
public ApiResponseDto<T> methodName(
        HttpServletRequest request,                                 // 직접적인 요청 정보가 필요할 때 사용
        @RequestParam String param1,                                // 쿼리 스트링 또는 폼 데이터의 요청 파라미터
        @PathVariable Long param2,                                  // URL 경로의 변수 매핑
        @RequestBody Dto param3,                                    // 요청 본문(JSON 등)을 객체로 받음
        HttpServletResponse response                                // 직접적인 응답 설정이 필요할 때 사용
) {
    // Request header 사용 예시
    String authHeader = request.getHeader("Authorization");

    // 결과를 위한 business logic 실행
    T data = domainService.businessLogic();

    // Response header 추가 예시
    response.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);

    // 정상적인 응답 시 사용할 HTTP status 및 응답 data
    return ApiResponseDto.success(HttpStatus.OK.value(), data);
}