Plumber: ์ค‘์ฒฉ JSON

์— ๋งŒ๋“  2019๋…„ 01์›” 15์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rstudio/plumber

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,

์˜ค๋Š˜ ๋ฐฐ๊ด€๊ณต์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. JSON์ด ํ”Œ๋žซ์ธ ๊ฒฝ์šฐ ์˜ˆ์ƒ๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Plumber๋Š” ์ค‘์ฒฉ๋˜๊ณ  ๋‹ค์ธตํ™”๋œ JSON์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ณด๋‚ด๊ธฐ ์ „์— ๊ตฌ์กฐ๋ฅผ ํ‰ํ‰ํ•˜๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”

need info question

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ฌด์Šจ ๋ง์”€์ด์‹ ์ง€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” __flat JSON__๊ณผ __multi-layered JSON__ ์‚ฌ์ด์—๋Š” ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ•˜๋ ค๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—(๋‚ด ์ƒ๊ฐ์—) ์—ฌ๊ธฐ์— ๋Œ“๊ธ€์„ ๋‹ฌ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ fromJSON ํ˜ธ์ถœ์— flatten ํ”Œ๋ž˜๊ทธ๊ฐ€ TRUE ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Plumber ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ๋ฌธ ๋ถ„์„๋œ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ž์ฒด ๊ตฌ๋ฌธ ๋ถ„์„๊ณผ ํ•จ๊ป˜ req$postBody ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ ๊ตฌ์„ฑํ•  ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. safeFromJSON ํ•จ์ˆ˜๋Š” args jsonlite::fromJSON ํ˜ธ์ถœ์— ์ „๋‹ฌ๋œ parseBody ํ•จ์ˆ˜๋Š” ์ด๋ฅผ ํ™œ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ•„ํ„ฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์„ค์ •์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋น„ํ™œ๋™์œผ๋กœ ์ธํ•œ ํœด๊ด€

์ฐธ๊ณ ๋กœ plumber ๋Š” ๋ชจ๋“  ์œ ํšจํ•œ JSON ๊ตฌ์กฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งค์šฐ ๋ณต์žกํ•œ JSON ๊ตฌ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰