committed by
GitHub
1 changed files with 70 additions and 0 deletions
@ -0,0 +1,70 @@ |
|||
# Swagger UI ๊ตฌ์ฑ |
|||
|
|||
์ถ๊ฐ์ ์ธ <a href="https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/" class="external-link" target="_blank">Swagger UI ๋งค๊ฐ๋ณ์</a>๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. |
|||
|
|||
๊ตฌ์ฑ์ ํ๋ ค๋ฉด, `FastAPI()` ์ฑ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๋๋ `get_swagger_ui_html()` ํจ์์ `swagger_ui_parameters` ์ธ์๋ฅผ ์ ๋ฌํ์ญ์์ค. |
|||
|
|||
`swagger_ui_parameters`๋ Swagger UI์ ์ง์ ์ ๋ฌ๋ ๊ตฌ์ฑ์ ํฌํจํ๋ ๋์
๋๋ฆฌ๋ฅผ ๋ฐ์ต๋๋ค. |
|||
|
|||
FastAPI๋ ์ด ๊ตฌ์ฑ์ **JSON** ํ์์ผ๋ก ๋ณํํ์ฌ JavaScript์ ํธํ๋๋๋ก ํฉ๋๋ค. ์ด๋ Swagger UI์์ ํ์๋ก ํ๋ ํ์์
๋๋ค. |
|||
|
|||
## ๊ตฌ๋ฌธ ๊ฐ์กฐ ๋นํ์ฑํ |
|||
|
|||
์๋ฅผ ๋ค์ด, Swagger UI์์ ๊ตฌ๋ฌธ ๊ฐ์กฐ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค. |
|||
|
|||
์ค์ ์ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ๋ฌธ ๊ฐ์กฐ ๊ธฐ๋ฅ์ด ํ์ฑํ๋์ด ์์ต๋๋ค: |
|||
|
|||
<img src="/img/tutorial/extending-openapi/image02.png"> |
|||
|
|||
๊ทธ๋ฌ๋ `syntaxHighlight`๋ฅผ `False`๋ก ์ค์ ํ์ฌ ๊ตฌ๋ฌธ ๊ฐ์กฐ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค: |
|||
|
|||
{* ../../docs_src/configure_swagger_ui/tutorial001.py hl[3] *} |
|||
|
|||
...๊ทธ๋ผ Swagger UI์์ ๋ ์ด์ ๊ตฌ๋ฌธ ๊ฐ์กฐ ๊ธฐ๋ฅ์ด ํ์๋์ง ์์ต๋๋ค: |
|||
|
|||
<img src="/img/tutorial/extending-openapi/image03.png"> |
|||
|
|||
## ํ
๋ง ๋ณ๊ฒฝ |
|||
|
|||
๋์ผํ ๋ฐฉ์์ผ๋ก `"syntaxHighlight.theme"` ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ
๋ง๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค (์ค๊ฐ์ ์ ์ด ํฌํจ๋ ๊ฒ์ ์ฐธ๊ณ ํ์ญ์์ค). |
|||
|
|||
{* ../../docs_src/configure_swagger_ui/tutorial002.py hl[3] *} |
|||
|
|||
์ด ์ค์ ์ ๊ตฌ๋ฌธ ๊ฐ์กฐ ์์ ํ
๋ง๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค: |
|||
|
|||
<img src="/img/tutorial/extending-openapi/image04.png"> |
|||
|
|||
## ๊ธฐ๋ณธ Swagger UI ๋งค๊ฐ๋ณ์ ๋ณ๊ฒฝ |
|||
|
|||
FastAPI๋ ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. |
|||
|
|||
๊ธฐ๋ณธ ๊ตฌ์ฑ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค: |
|||
|
|||
{* ../../fastapi/openapi/docs.py ln[8:23] hl[17:23] *} |
|||
|
|||
`swagger_ui_parameters` ์ธ์์ ๋ค๋ฅธ ๊ฐ์ ์ค์ ํ์ฌ ์ด๋ฌํ ๊ธฐ๋ณธ๊ฐ ์ค ์ผ๋ถ๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, `deepLinking`์ ๋นํ์ฑํํ๋ ค๋ฉด `swagger_ui_parameters`์ ๋ค์ ์ค์ ์ ์ ๋ฌํ ์ ์์ต๋๋ค: |
|||
|
|||
{* ../../docs_src/configure_swagger_ui/tutorial003.py hl[3] *} |
|||
|
|||
## ๊ธฐํ Swagger UI ๋งค๊ฐ๋ณ์ |
|||
|
|||
์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๊ตฌ์ฑ ์ต์
์ ํ์ธํ๋ ค๋ฉด, Swagger UI ๋งค๊ฐ๋ณ์์ ๋ํ ๊ณต์ <a href="https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/" class="external-link" target="_blank">๋ฌธ์</a>๋ฅผ ์ฐธ์กฐํ์ญ์์ค. |
|||
|
|||
## JavaScript ์ ์ฉ ์ค์ |
|||
|
|||
Swagger UI๋ **JavaScript ์ ์ฉ** ๊ฐ์ฒด(์: JavaScript ํจ์)๋ก ๋ค๋ฅธ ๊ตฌ์ฑ์ ํ์ฉํ๊ธฐ๋ ํฉ๋๋ค. |
|||
|
|||
FastAPI๋ ์ด๋ฌํ JavaScript ์ ์ฉ `presets` ์ค์ ์ ํฌํจํ๊ณ ์์ต๋๋ค: |
|||
|
|||
```JavaScript |
|||
presets: [ |
|||
SwaggerUIBundle.presets.apis, |
|||
SwaggerUIBundle.SwaggerUIStandalonePreset |
|||
] |
|||
``` |
|||
|
|||
์ด๋ค์ ๋ฌธ์์ด์ด ์๋ **JavaScript** ๊ฐ์ฒด์ด๋ฏ๋ก Python ์ฝ๋์์ ์ง์ ์ ๋ฌํ ์ ์์ต๋๋ค. |
|||
|
|||
์ด์ ๊ฐ์ JavaScript ์ ์ฉ ๊ตฌ์ฑ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ, ์์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ Swagger UI ๊ฒฝ๋ก ์์
์ ์ฌ์ ์ํ๊ณ ํ์ํ JavaScript๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. |
Loadingโฆ
Reference in new issue