ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • @RequestBody, @ResponseBody์— ๋Œ€ํ•ด์„œ
    Back-end/Spring 2023. 12. 28. 14:16
    ๋ฐ˜์‘ํ˜•

    ๋“ค์–ด๊ฐ€๊ธฐ

     Spring์—์„œ ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ์œ„ํ•ด ์ฃผ๋กœ Controller์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ @RequestBody, @ResponseBody์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

     

    @RequestBody

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” JSON ํ˜•์‹์˜ HTTP Body๋ฅผ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

    @Getter
    @NoArgsConstructor
    @AllArgsConstructor
    public class AddArticleRequest {
    
        private String title;
        private String content;
    }
    @RestController
    @RequiredArgsConstructor
    public class BlogApiController {
    
        private final BlogService blogService;
    
        @PostMapping("/api/articles")
        public ResponseEntity<Article> addArticle(@RequestBody AddArticleRequest request) {
            Article savedArticle = blogService.save(request);
            return ResponseEntity.status(HttpStatus.CREATED).body(savedArticle);
        }
    }

     ์œ„ ์ฝ”๋“œ์—์„œ  Postman(ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์œ„ํ•ด ์‚ฌ์šฉ)์„ ์ด์šฉํ•ด์„œ ์œ„ ์บก์ฒ˜์™€ ๊ฐ™์ด ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด AddArticleRequest ํƒ€์ž…์˜ ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

     

    @ResponseBody

    ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด๋ ค๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ JSON ํ˜•์‹์˜ HTTP Body๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

    @RequiredArgsConstructor
    @RestController
    // @ResponseBody -> @RestController์— ํฌํ•จ๋˜์–ด ์žˆ์Œ.
    public class BlogApiController {
    
        private final BlogService blogService;
    
        @GetMapping("/api/articles")
        public ResponseEntity<List<ArticleResponse>> findAllArticles() {
            List<ArticleResponse> articles = blogService.findAll()
                    .stream()
                    .map(ArticleResponse::new)
                    .toList();
    
            return ResponseEntity.ok().body(articles);
        }
    }

     @RestController๋Š” @ResponseBody ์–ด๋…ธํ…Œ์ด์…˜์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋”ฐ๋กœ ์„ ์–ธํ•ด์ฃผ์ง€ ์•Š์•„๋„ ์œ„ ์บก์ฒ˜์™€ ๊ฐ™์ด ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ JSON ํ˜•์‹์˜ HTTP Body๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.