Swagger๋ก ๊ฐ๋จํ REST API ๋ช ์ธ
Swagger
์ค์จ๊ฑฐ(Swagger)๋ ๊ฐ๋ฐ์๊ฐ REST ์น์๋น์ค๋ฅผ ์ค๊ณ, ๋น๋, ๋ฌธ์ํ, ์๋นํ๋ ์ผ์ ๋์์ฃผ๋ ๋ํ ๋๊ตฌ ์ํ๊ณ์ ์ง์์ ๋ฐ๋ ์คํ์์ค ์ํํธ์จ์ด ํ๋ ์์ํฌ์ด๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ค์ ์ค์จ๊ฑฐ UI ๋๊ตฌ๋ฅผ ํตํด ์ค์จ๊ฑฐ๋ฅผ ์๋ณํ๋ฉฐ ์ค์จ๊ฑฐ ํด์ ์๋ ์๋ํ๋ ๋ฌธ์ํ, ์ฝ๋ ์์ฑ, ํ ์คํธ ์ผ์ด์ค ์์ฑ ์ง์์ด ํฌํจ๋๋ค.
- ์ํค -
์ฆ, ์ค์จ๊ฑฐ๋ ๋ํ์ ์ธ API ๊ด๋ฆฌ ๋๊ตฌ๋ก ๊ฐ๋ฐํ RESP API ๋๊ตฌ๋ฅผ ํธ๋ฆฌํ๊ฒ ๋ฌธ์ํํด์ฃผ๋ฉฐ ํธ๋ฆฌํ๊ฒ API๋ฅผ ํธ์ถํ๊ณ ํ ์คํธ ํ ์ ์๋ ๋๊ตฌ์ ๋๋ค.
• OpenAPI๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋๊ตฌ
• API๋ค์ด ๊ฐ๊ณ ์๋ ๋ช ์ธ์ ์ ์ํ ์ ์๋ Tool
• API ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ฃผ๋ ๋ฌธ์
๊ณต์ ์ฌ์ดํธ : https://swagger.io/
Swagger ๊ธฐ๋ฅ
1) API Design (API ์ค๊ณ)
: Swagger-editor๋ฅผ ํตํด api๋ฅผ ๋ฌธ์ํํ๊ณ ๋น ๋ฅด๊ฒ ๋ช ์ธ ๊ฐ๋ฅ
2) API Development
: Swagger-codepen์ ํตํด ์์ฑ๋ ๋ฌธ์๋ฅผ ํตํด SDK๋ฅผ ์์ฑํ์ฌ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์๋๋ก ๋์์ค๋ค.
3) API Documentation
: Swagger-UI๋ฅผ ํตํด ์์ฑ๋ API๋ฅผ ์๊ฐํ์์ผ์ค๋ค.
4) API Testing
: Swagger-Inspector๋ฅผ ํตํด API๋ฅผ ์๊ฐํํ๊ณ ๋น ๋ฅธ ํ ์คํ ์ ์งํํ ์ ์๋ค.
5) Standardize
: Swagger-hub๋ฅผ ํตํด ๊ฐ์ธ, ํ์๋ค์ด API ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ Hub
Swagger Hub
• ๋ค์ํ ํ๋ก์ ํธ์ API ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ง์ํด์ฃผ๋ ์ค์จ๊ฑฐ ์๋น์ค์ ๋๋ค.
• API Document ์ญํ ๋ก API๋ฅผ ๋ฑ๋กํ๋ฉด ํด๋น API์ ๋ํ ์๋ ํ ์คํธ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
• ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ์ค์จ๊ฑฐ ํ๋ธ์ ๊ฐ์ ํ์ฌ ํ๋์ ํ๋ก์ ํธ์ ๋ํ API๋ฅผ ์์ฑํ๊ณ , ํ ์คํธ ํด ๋ณผ ์ ์์ต๋๋ค.
์ค์ต
๊ตฌ๊ธ ๊ฒ์์ด ์๋์์ฑ API๋ฅผ ํ ์คํธ ํด๋ด ์๋ค. https://www.google.com
Build, Collaborate & Integrate APIs | SwaggerHub
app.swaggerhub.com
์ swagger hub๋ก ์ ์ํด ๋ก๊ทธ์ธ ํ ์ค์ต์ ์งํํฉ๋๋ค.
1 ) API ์์ฑ ( Create New → Create New API )
1-1 ) API ์ ๋ณด ์ ๋ ฅ
2 ) Code Editor์ API ์ ๋ณด ์ ๋ ฅ
1-1)์ ์๋ฃํ ํ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋ API ์ ๋ณด์ ๋๋ค. ๊ทธ ์๋๋ถํฐ ํ ์คํธ ํ๊ณ ์ํ๋ API ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
3 ) API ์ ๋ณด ์ ๋ ฅ ํ SAVE ๋ฒํผ์ ๋๋ฌ ์ ์ฅํฉ๋๋ค.
4 ) ์ดํ API ๋ฌธ์๋ฅผ ์๋ก๊ณ ์นจํ๋ฉด ํ ์คํธ ๊ฐ๋ฅํ API๊ฐ ์์ฑ๋ฉ๋๋ค.
5 ) Try it out์ ๋๋ฅธ ํ query์ client์ ๊ฐ์ ๋ฃ๊ณ Excute๋ฒํผ์ ๋๋ฆ ๋๋ค.
+ ์ด ๋ Client๋ ์ผ๋ฐ์ ์ธ ๋ธ๋ผ์ฐ์ ์ ์ ์ ์ ํด์ง ๊ฐ์ ๋ฃ์ด์ฃผ์ด์ผํ๊ธฐ ๋๋ฌธ์ psy-ab๋ฅผ ์ ๋ ฅํฉ๋๋ค.
6 ) ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ผ ํํ๋ก ๊ฐ์ด ๋ฐํ๋จ์ ์ ์ ์์ต๋๋ค.
7 ) ํ ๋ฒ ๋ค์ด๋ก๋ ํด๋ณด๋ฉด ABC ์ ๋ ฅ๊ฐ์ ๋ํ ์๋์์ฑ ๊ฒ์์ด๊ฐ ์ ๋์ฝ๋ ํํ๋ก ์ฃผ์ด์ง์ ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
์ด์ ๊ฐ๋จํ REST API๋ช ์ธ์๋ฅผ ์์ฑํด๋ณด์์ต๋๋ค.
๋ณธ ๊ฒ์๋ฌผ์ '๋๋น๋ Swagger๋ฅผ ํ์ฉํ API ๋ช ์ธ์ ๊ฐ๋ฐ ํ์ ' YouTube ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๊ฒ์๋ฌผ์ ๋๋ค.
๊ฐ์ ๋ฐ ์ถ์ฒ
์ถ์ฒ: https://ndb796.tistory.com/249 [ ์๊ฒฝ์ก์ด๊ฐ๋ฐ์:ํฐ์คํ ๋ฆฌ ]