-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
Controller에서 단순히 문자열을 반환하고 싶은 경우
21.09.13 14:17 작성 조회수 154
1
안녕하세요~ 강의를 듣다가 궁금한게 생겼습니다.
예를 들어 RestController로 단순 문자열을 반환해야 할 때 국제화를 한다면 아래와 같이 사용하면 되는지 궁금합니다.
@GetMapping("/locale")
public String reponseError(Locale locale) {
String errorCode = ms.getMessage("errorCode", null, locale);
return errorCode;
}
정상적으로 작동은 하는데 실무에서도 저렇게 사용하는지 혹은 더 나은 방법이 없을까 해서요~
감사합니다~
답변을 작성해보세요.
3
1
codesweaver
2021.09.13
안녕하세요, setung 님. 공식 서포터즈 codesweaver 입니다.
.
보통 API의 응답값은 응답코드를 포함한 메세지를 첨가하는 경우가 많습니다.
저같은 경우는 반환할 객체를 만든 후 이 안에 에러코드, 에러메시지 등을 저장한 후 객체 자체를 반환합니다. (RestController 일때)
.
메시지는 사용자가 자신이 무엇을 잘못 호출했는지 알 수 있는 단서가 되기에 반드시, 그리고 정확한 오류내용을 반환하는것이 좋습니다. 단.... 그렇게 되면 API를 만드는 측에서 조금 노가다 스러운 작업을 해야 합니다. :)
.
감사합니다.
setung
질문자2021.09.13
앗. 제 질문이 명확하지 않았나 보네요. ㅠㅠ
에러 응답값에 대해 질문한게 아니었습니다. ㅠㅠ
MessageSource의 getMessage() 메서드를 사용하려면 Locale이 필요한데, Locale은 LocaleResolver를 통해 값을 가져올 수 있죠. 예제처럼 파라미터에 Locale을 넣어서요~
제 질문은 코드에서 국제화 메시지를 사용하기 위해 MessageSource를 주입 받고,
매번 매서드의 파라미터에 Locale을 넣어서 사용하는게 맞는건지 여쭤본것이었습니다.
개인적으로 좀 지저분하고 번거로운 작업인거 같아서요.
답변 2