• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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;
}

정상적으로 작동은 하는데 실무에서도 저렇게 사용하는지 혹은  더 나은 방법이 없을까 해서요~

감사합니다~

답변 2

·

답변을 작성해보세요.

3

안녕하세요. setung님

MessageSourceAccessor로 검색해보시면 원하시는 답을 찾을 수 있을거에요.

감사합니다.

1

codesweaver님의 프로필

codesweaver

2021.09.13

안녕하세요, setung 님. 공식 서포터즈 codesweaver 입니다.
.
보통 API의 응답값은 응답코드를 포함한 메세지를 첨가하는 경우가 많습니다.

저같은 경우는 반환할 객체를 만든 후 이 안에 에러코드, 에러메시지 등을 저장한 후 객체 자체를 반환합니다. (RestController 일때)

.

메시지는 사용자가 자신이 무엇을 잘못 호출했는지 알 수 있는 단서가 되기에 반드시, 그리고 정확한 오류내용을 반환하는것이 좋습니다. 단.... 그렇게 되면 API를 만드는 측에서 조금 노가다 스러운 작업을 해야 합니다. :)

.
감사합니다.

setung님의 프로필

setung

질문자

2021.09.13

앗. 제 질문이 명확하지 않았나 보네요. ㅠㅠ

에러 응답값에 대해 질문한게 아니었습니다. ㅠㅠ

 

MessageSource의 getMessage() 메서드를 사용하려면  Locale이 필요한데, Locale은 LocaleResolver를 통해 값을 가져올 수 있죠. 예제처럼 파라미터에 Locale을 넣어서요~

 

제 질문은 코드에서 국제화 메시지를 사용하기 위해 MessageSource를 주입 받고, 

매번 매서드의 파라미터에 Locale을 넣어서 사용하는게 맞는건지 여쭤본것이었습니다.

개인적으로 좀 지저분하고 번거로운 작업인거 같아서요.