๐ Swagger๋?
์ฐ๋ฆฌ๊ฐ ๋ง๋ API๋ฅผ ๋ฌธ์ํํด์ค ์ ์๋ ์คํ ์์ค ํ๋ ์์ํฌ(?)์ด๋ค
์ด๋ ๊ฒ ์๊ฒผ๊ณ , ๊ฐ ๋ฉ์๋๋ง๋ค ์ฐ๋ฆฌ๊ฐ ๋ง๋ API๋ค์ ์ฌ๊ธฐ์ ํธ์ถํ ์ ์๋ค !
๋ง๋ค๊ณ ๋์ ์ค์จ๊ฑฐ๋ง ์ฐ๊ณ ํฌ์คํธ๋งจ์ ๊ฑฐ์ ์์ด ๊ฒ ๊ฐ์..
๐ Fastify์์ swagger ์ฌ์ฉํ๊ธฐ
fastify์์ swagger๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ๋ํด ๊ตฌ๊ธ๋ง์ ํ๋ฉด ์์ธํ ๋๋ ์ ์๋์จ๋ค...
๋ณธ์ธ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ๋ชจ๋์ ์ค์นํ๋ค.
npm install @fastify/swagger @fastify/swagger-ui
์ดํ plugins ๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ swagger.js๋ฅผ ์์ฑํด์ค๋ค.
swagger.js์์ ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋๋ค์ ๋ถ๋ฌ์์ค๋ค !
const fp = require('fastify-plugin');
const swagger = require('@fastify/swagger');
const swaggerUi = require('@fastify/swagger-ui');
์ดํ swagger ๋ฐ swagger-ui ์์ฑ
swagger
swagger ์์ฑ ์ title, description, version์ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์ด๋ฏธ์ง์
๋๋ค
swagger-ui
routePrefix : swagger๋ฅผ ๋ณผ ์ ์๋ ์๋ํฌ์ธํธ๋ฅผ ์๋ฏธํฉ๋๋ค !
uiConfig : swagger์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ตฌ์ฑ ์ต์
๋ฅผ ์ค์ ํ๋ ๋ถ๋ถ
swagger์ ๋ด๊ฐ ๋ง๋ API ์ถ๊ฐํ๊ธฐ
์์ ๊ฐ์ด ์ค์ ์ ํ๋ค๋ฉด swagger์ ์ด๋ฏธ ๋ด๊ฐ ๋ง๋ API๋ค์ด ์๋์ผ๋ก ์ถ๊ฐ๋์ด์์ง๋ง,
๊ทธ API์ ํ์ํ parameter๊ฐ๋ค์ ์ค์ ์ด ์๋์์ ๊ฒ์ด๋ค...
๊ทธ๋์ api์ router๋ถ๋ถ์ ์๋ํฌ์ธํธ ๋ค์ JSON schema๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค !
๐ swagger ์ฌ์ฉํ๋ฉฐ ๋๋ ์
๋ง๋ค๊ณ ๋ ํ ํฌ์คํธ๋งจ๋ณด๋ค ํจ์ฌ ํธํจ์ ๋๊ผ๋ค.
fastify์ ๊ฒฝ์ฐ, swagger๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ๋ํด ์๋ฃ๊ฐ ๋ง์ด ๋ถ์กฑํ ๊ฑฐ ๊ฐ๋ค... ๐ฅ
๋ค๋ฅธ ๊ฐ๋ฐ์์์ ์ํต์ด ํจ์ฌ ์ฝ๋ค !