๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“• Spring Framework/Spring Project

2022.05.12 ใ€ŒResponseEntity body & BuilderPattern & Joinใ€

by GroovyArea 2022. 5. 12.
Restful ํ•œ api๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ฐธ ๊นŒ๋‹ค๋กœ์šด ๊ฒƒ ๊ฐ™๋‹ค. ํ•™์›์—์„œ ์™„์ „ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ๋งŒ ๋ฐฐ์šด ๊ฒƒ๋„ ์žˆ์—ˆ๊ณ  ๊ทธ ๋ถ€๋ถ„๋งŒ ๋จธ๋ฆฟ์†์— ๊นŠ์ด ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ๋œ rest ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๊ฒƒ์ž„์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค.
ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ๋งŒ ํ•˜๋”๋ผ๋„ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒ ๋ณ„๊ฒŒ ์•„๋‹ํ…Œ์ง€๋งŒ ์–ด๋–ค ์‹์œผ๋กœ ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ์„ค๊ณ„๋ฅผ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์–ด์ œ ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.
ํŠนํžˆ restfulํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ์ฒ˜์Œ ํ•ด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚ฏ์„ค๊ณ  ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๋˜์—ˆ๋‹ค.
๋ณดํ†ต Return Type์ธ ResponseEntity๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋Œ๋ ค์ฃผ๋Š”๋ฐ ํ—ค๋”์™€ ๋ฐ”๋””์— ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฑธ ๊ณ ๋ฅด๋Š” ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. 
์˜ค๋Š˜๋„ ์•„์นจ๋ถ€ํ„ฐ ์ง€๊ธˆ ์˜คํ›„ 3์‹œ๊นŒ์ง€ Rest๋ฅผ ๊ณ„์† ๊ณต๋ถ€ํ•˜๋‹ค ๊ฒจ์šฐ ํšŒ์›๊ฐ€์ž… ํ•˜๋‚˜ ์™„์„ฑํ–ˆ๋‹ค.. ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.

 Header์™€ Body

Http ํ—ค๋”๋Š” Body ๋ฐ ์š”์ฒญ/์‘๋‹ต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

๋ณธ๋ฌธ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋ณธ๋ฌธ ์ฝ˜ํ…์ธ ์™€ ์—ฐ๊ด€์ด ์žˆ๋‹ค.

 

์ด๋ฆ„ : ๊ฐ’ ํ˜•์‹

 

Http ๋ฐ”๋””๋Š” ๊ฐ€์ ธ์˜ฌ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ฝ˜ํ…์ธ /๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์ด๋‹ค. 

์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค์— ๋”ฐ๋ผ HTML, File, Css, JavaScript, Json ๋“ฑ๋“ฑ ํฌํ•จ ๊ฐ€๋Šฅ

 

๋‚˜๋Š” ์–ด๋–ป๊ฒŒ ํ–ˆ๋А๋ƒ?

ํ—ค๋”์— contenttype์„ json์œผ๋กœ ๋„˜๊ฒจ์คฌ๋‹ค

๋ฐ”๋””์— Message ๊ฐ์ฒด๋ฅผ ๋‹ด์•„ ์คฌ๋‹ค 

Message ๊ฐ์ฒด => Builder Pattern ์ด์šฉ

๋ฉ”์‹œ์ง€ ํด๋ž˜์Šค ๊ฐ์ฒด : ์‘๋‹ต ๋ฐ์ดํ„ฐ์™€ ์‘๋‹ต ๋ฉ”์‹œ์ง€

์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” enum์„ ์ด์šฉํ–ˆ๋‹ค.

 

ํ—ค๋” ์ •๋ณด๋„ Application/Json์„ ๋„ฃ๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๊ณ„์† ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค..

no converter found for return value of type

=> ์ด๊ฒŒ ๋œจ๋Š”๋ฐ ์ด๊ฑด body๋กœ ๋„˜๊ธธ data getter๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ๋“ค์–ด์ฃผ๋‹ˆ ํ•ด๊ฒฐ!

์ƒํƒœ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ json ํ˜•์‹์œผ๋กœ ์ž˜ ๋„˜์–ด์˜ค๋Š” ๊ฑธ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ฒฐ๋ก 

restful ํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ๊ฒƒ๋„ ํž˜๋“  ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ์ด๋ผ ๊ทธ๋Ÿฐ๊ฐ€?

๊ทธ๋ž˜๋„ ๋นจ๋ฆฌ ์ต์ˆ™ํ•ด์ง€๊ณ  ํ€„๋ฆฌํ‹ฐ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋กœ ๊ฑฐ๋“ญ๋‚˜๊ฒŒ ํ•  ๊ฒƒ์ด๋‹ค!!

์ด์ œ ๋กœ๊ทธ์ธ ๋งŒ๋“ค์–ด์•ผ์ง€..ใ…Žใ…Ž

๋‹ค์Œ ๊ณ ๋ฏผ์‚ฌํ•ญ : ์„ธ์…˜์ด๋ƒ ํ† ํฐ์ด๋ƒ?

๋ฐ˜์‘ํ˜•