Notice
Recent Posts
Link
Today
Total
10-06 00:17
๊ด€๋ฆฌ ๋ฉ”๋‰ด

dingdong coding

Swagger๋กœ ๊ฐ„๋‹จํ•œ REST API ๋ช…์„ธ ๋ณธ๋ฌธ

๐Ÿ“‘API/SwaggerHub

Swagger๋กœ ๊ฐ„๋‹จํ•œ REST API ๋ช…์„ธ

๐Ÿถ ๊ฐœ๋ฐœ๊ฐœ๋ฐœ ๐Ÿพ 2022. 7. 11. 21:08

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 ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๊ฒŒ์‹œ๋ฌผ์ž…๋‹ˆ๋‹ค. 

 

๊ฐ•์˜ ๋ฐ ์ถœ์ฒ˜

Swagger๋ฅผ ํ™œ์šฉํ•œ API ๋ช…์„ธ์™€ ๊ฐœ๋ฐœ ํ˜‘์—…

์ถœ์ฒ˜: https://ndb796.tistory.com/249 [ ์•ˆ๊ฒฝ์žก์ด๊ฐœ๋ฐœ์ž:ํ‹ฐ์Šคํ† ๋ฆฌ ]

 

Comments