ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • @RequestBody vs @RequestParam
    스프링 2023. 2. 21. 01:54

    오랜만에 스프링을 통해 작업하려던중, 이 둘이 헷갈려서 정리하기로 하였다.

     

     

    form태그를 통하여 데이터를 전송하려 한다.

     

    @RequestParam은 HTTP 요청 파라미터를 받아온다.

    HTTP의 Body를 직접 조회하지 않는다.

    @ResponseBody
        @PostMapping("test/request-param")
        public TestData requestParam(@RequestParam String name,
                                     @RequestParam int age) {
            TestData testData = new TestData();
            testData.setName(name);
            testData.setAge(age);
            return testData;
        }

    즉, test/request-param?name="abc"&age=2 의 형태로 요청을 하게 된다.

    form이라고 헷갈리지 말자.

    form요청은 HttpBody에 쿼리 파라미터 형식으로 전달하기때문에 RequestParam또는 ModelAttribute를 통하여 값을 받아야 한다.

     

    (form이 Body로 전송되기때문에 requestBody를 사용해야 할줄알고 한참을 헤맸다ㅜㅜ)

     

     

     

    @RequestBody는 클라이언트가 JSON형태의 데이터를 HTTP Body내용을 Object로 변환시키는 역할을 해준다.

    @ResponseBody
        @PostMapping("/test/request-body")
        public TestData requestBody(@RequestBody TestData testData) {
            return testData;
        }

    뿐만아니라, HttpBody에 Text를 직접 찍어서 보낼때도 RequestBody를 이용하는것이 가능하다.

     

    728x90

    '스프링' 카테고리의 다른 글

    Swagger 404 오류  (0) 2023.03.31
    시큐리티의 CSRF 그리고 테스트  (0) 2023.03.05
    API 예외처리-5 (RestControllerAdvice)  (0) 2023.01.28
    API 예외처리-4 (ExceptionHandler)  (0) 2023.01.28
    API 예외처리-3  (0) 2023.01.27

    댓글

Designed by Tistory.