-
@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๋ก ๋ณํํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ฐ์ํ