Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

HTTP response - HTTP API, 메시지 바디에 직접 입력 본문

인프런/[인프런] 스프링 MVC 1

HTTP response - HTTP API, 메시지 바디에 직접 입력

Seung__ 2021. 9. 15. 22:36

 

1. HttpServletResponse 사용


  • writer를 가져와서 data를 message body에 넣음.
    @GetMapping("/response-body-string-v1")
    public void responseBodyV1(HttpServletResponse response) throws IOException {
        response.getWriter().write("ok");
    }

 

 

 

2. ResponseEntity<String> 사용


  • ResponseEntity<String>를 사용하면 String을  MessageBody에 넣어줌.
 

HTTP 요청 메시지 - JSON

1. JSON 형식 data 받기 v1 ObjectMapper : JSON Object @Slf4j @Controller public class RequestBodyJsonController { private ObjectMapper objectMapper = new ObjectMapper(); @PostMapping("/request-body-j..

bsh-developer.tistory.com

    @GetMapping("/response-body-string-v2")
    public  ResponseEntity<String> responseBodyV2() throws IOException {
       return new ResponseEntity<>("ok", HttpStatus.OK);
    }

 

 

 

3. @ReponseBody, String 반환


  • @ResponseBody적용 후 String을 반환하면 .
  • @ReponseBody를 사용하기 때문에 String을 반환해도 메시지 컨버터가 돌아가서
  • 해당 String이 MessageBody에 들어감.
  • view 사용 안함.
    @ResponseBody
    @GetMapping("/response-body-string-v3")
    public String responseBodyV3(){
        return "ok";
    }

 

 

 

4. ResponseEntity<Object> 사용


  • ResponseEntity<Object>(object, HttpStatus)를 사용하면
  • object를 JSON형식으로 변환하여 MessageBody에 넣어줌.
    @GetMapping("/response-body-json-v1")
    public ResponseEntity<HelloData> responseBodyJsonV1(){
        HelloData helloData = new HelloData();
        helloData.setUsername("userA");
        helloData.setAge(20);

        return new ResponseEntity<HelloData>(helloData, HttpStatus.OK);
    }

 

 

 

 

5. @ReponseBody, 객체 반환


  • @ResponseBody를 사용하면 객체 반환이 가능.
    • @ResponseBody의 역할은 ResponseEntity<>를 생성하여 데이터 넣어주는 역할임 + 부가기능.
  • 반환된 객체는 JSON형식으로 변경되어 MessageBody에 들어감.
  • @ReponseSatus 지정 가능.
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    @GetMapping("/response-body-json-v2")
    public HelloData responseBodyJsonV2(){
        HelloData helloData = new HelloData();
        helloData.setUsername("userA");
        helloData.setAge(20);

        return helloData;
    }

 

 

6. @RestController


  • @Controller 대신에 @RestController 애노테이션을 사용하면,
  • 해당 컨트롤러에 모두 @ResponseBody 가 적용되는 효과가 있다. 
  • 따라서 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다. 
  • 이름 그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다.
  • 참고로 @ResponseBody 는 클래스 레벨에 두면 전체에 메서드에 적용되는데, 
  • @RestController 에노테이션 안에 @ResponseBody 가 적용되어 있다.

 

 

7. GitHub : 210915 Response, String, Object


 

GitHub - bsh6463/MVC2

Contribute to bsh6463/MVC2 development by creating an account on GitHub.

github.com

 

Comments