์๋ ํ์ญ๋๊น,
์ค๋ ๋ฐฐ๊ด๊ณต์ผ๋ก ์์ํ๋๋ฐ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค. JSON์ด ํ๋ซ์ธ ๊ฒฝ์ฐ ์์๋๋ก ์ ํํ๊ฒ ์๋ํฉ๋๋ค.
Plumber๋ ์ค์ฒฉ๋๊ณ ๋ค์ธตํ๋ JSON์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น? ์ด๋ป๊ฒ ์ด๋ฐ ์์ผ๋ก ํจ์๋ฅผ ๋ง๋ค ์ ์์ต๋๊น?
๋ณด๋ด๊ธฐ ์ ์ ๊ตฌ์กฐ๋ฅผ ํํํ๊ฒ ํด์ผ ํ๋ค๋ ๊ฒ์ ์ดํดํด์ผ ํฉ๋๊น?
๊ฐ์ฌ ํด์
๋ฌด์จ ๋ง์์ด์ ์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค. ์ ์๊ฐ์๋ __flat JSON__๊ณผ __multi-layered JSON__ ์ฌ์ด์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋๋ ๊ฐ์ ์ง๋ฌธ์ ํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์(๋ด ์๊ฐ์) ์ฌ๊ธฐ์ ๋๊ธ์ ๋ฌ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ ๊ฒฝ์ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์
์์ fromJSON
ํธ์ถ์ flatten
ํ๋๊ทธ๊ฐ TRUE
์ค์ ๋์ด ์์ด์ผ ํฉ๋๋ค. Plumber
๋ฅผ ์ฌ์ฉํ๋ฉด ๊ตฌ๋ฌธ ๋ถ์๋ ์ธ์๋ฅผ ์ง์ ํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ์์ฒด ๊ตฌ๋ฌธ ๋ถ์๊ณผ ํจ๊ป req$postBody
์ฌ์ฉํฉ๋๋ค.
์ฝ๋๋ฅผ ํ์ธํ๋๋ฐ ๊ตฌ์ฑํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. safeFromJSON
ํจ์๋ args
jsonlite::fromJSON
ํธ์ถ์ ์ ๋ฌ๋ parseBody
ํจ์๋ ์ด๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ํํฐ์ ๋ํ ์ฌ์ฉ์ ์ง์ ์ค์ ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ ์ ์์ต๋๊น?
๋นํ๋์ผ๋ก ์ธํ ํด๊ด
์ฐธ๊ณ ๋ก plumber
๋ ๋ชจ๋ ์ ํจํ JSON ๊ตฌ์กฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ผ๋ฉฐ ๋งค์ฐ ๋ณต์กํ JSON ๊ตฌ์กฐ๋ฅผ ๋ฐํํ ์๋ ์์ต๋๋ค.