committed by
GitHub
1 changed files with 55 additions and 0 deletions
@ -0,0 +1,55 @@ |
|||
# OpenAPI ์นํ
(Webhooks) |
|||
|
|||
API **์ฌ์ฉ์**์๊ฒ ํน์ **์ด๋ฒคํธ**๊ฐ ๋ฐ์ํ ๋ *๊ทธ๋ค*์ ์ฑ(์์คํ
)์ ์์ฒญ์ ๋ณด๋ด **์๋ฆผ**์ ์ ๋ฌํ ์ ์๋ค๋ ๊ฒ์ ์๋ฆฌ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. |
|||
|
|||
์ฆ, ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ API์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ๊ณผ๋ ๋ฐ๋๋ก, **API**(๋๋ ์ฑ)๊ฐ **์ฌ์ฉ์์ ์์คํ
**(๊ทธ๋ค์ API๋ ์ฑ)์ผ๋ก **์์ฒญ์ ๋ณด๋ด๋** ์ํฉ์ ์๋ฏธํฉ๋๋ค. |
|||
|
|||
์ด๋ฅผ ํํ **์นํ
(Webhook)**์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. |
|||
|
|||
## ์นํ
์คํ
|
|||
|
|||
**์ฝ๋์์** ์นํ
์ผ๋ก ๋ณด๋ผ ๋ฉ์์ง, ์ฆ ์์ฒญ์ **๋ฐ๋(body)**๋ฅผ ์ ์ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ํ๋ก์ธ์ค์
๋๋ค. |
|||
|
|||
์ฑ์์ ํด๋น ์์ฒญ์ด๋ ์ด๋ฒคํธ๋ฅผ ์ ์กํ **์์ **์ ์ ์ํฉ๋๋ค. |
|||
|
|||
**์ฌ์ฉ์**๋ ์ฑ์ด ํด๋น ์์ฒญ์ ๋ณด๋ผ **URL**์ ์ ์ํฉ๋๋ค. (์: ์น ๋์๋ณด๋์์ ์ค์ ) |
|||
|
|||
์นํ
์ URL์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฌํ ์์ฒญ์ ์ค์ ๋ก ์ ์กํ๋ ์ฝ๋์ ๋ํ ๋ชจ๋ ๋ก์ง์ ์ฌ๋ฌ๋ถ์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ์ํ๋๋๋ก **๊ณ ์ ์ ์ฝ๋**๋ฅผ ์์ฑํ๋ฉด ๋ฉ๋๋ค. |
|||
|
|||
## **FastAPI**์ OpenAPI๋ก ์นํ
๋ฌธ์ํํ๊ธฐ |
|||
|
|||
**FastAPI**๋ฅผ ์ฌ์ฉํ์ฌ OpenAPI์ ํจ๊ป ์นํ
์ ์ด๋ฆ, ์ฑ์ด ๋ณด๋ผ ์ ์๋ HTTP ์์
์ ํ(์: `POST`, `PUT` ๋ฑ), ๊ทธ๋ฆฌ๊ณ ๋ณด๋ผ ์์ฒญ์ **๋ฐ๋**๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์ด๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ **์นํ
** ์์ฒญ์ ์์ ํ **API ๊ตฌํ**์ ํจ์ฌ ์ฝ๊ฒ ํ ์ ์์ผ๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฌ์ฉ์ API ์ฝ๋์ ์ผ๋ถ๋ฅผ ์๋ ์์ฑํ ์๋ ์์ต๋๋ค. |
|||
|
|||
/// info |
|||
|
|||
์นํ
์ OpenAPI 3.1.0 ์ด์์์ ์ง์๋๋ฉฐ, FastAPI `0.99.0` ์ด์ ๋ฒ์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|||
|
|||
/// |
|||
|
|||
## ์นํ
์ด ํฌํจ๋ ์ฑ ๋ง๋ค๊ธฐ |
|||
|
|||
**FastAPI** ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ๋, `webhooks` ์์ฑ์ ์ฌ์ฉํ์ฌ *์นํ
*์ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ `@app.webhooks.post()`์ ๊ฐ์ ๋ฐฉ์์ผ๋ก *๊ฒฝ๋ก(path) ์์
*์ ์ ์ํ๋ ๊ฒ๊ณผ ๋น์ทํฉ๋๋ค. |
|||
|
|||
{* ../../docs_src/openapi_webhooks/tutorial001.py hl[9:13,36:53] *} |
|||
|
|||
์ด๋ ๊ฒ ์ ์ํ ์นํ
์ **OpenAPI** ์คํค๋ง์ ์๋ **๋ฌธ์ํ UI**์ ํ์๋ฉ๋๋ค. |
|||
|
|||
/// info |
|||
|
|||
`app.webhooks` ๊ฐ์ฒด๋ ์ฌ์ค `APIRouter`์ผ ๋ฟ์ด๋ฉฐ, ์ฌ๋ฌ ํ์ผ๋ก ์ฑ์ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ํ์
์
๋๋ค. |
|||
|
|||
/// |
|||
|
|||
์นํ
์์๋ ์ค์ **๊ฒฝ๋ก(path)** (์: `/items/`)๋ฅผ ์ ์ธํ์ง ์๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ๋ฌํ๋ ํ
์คํธ๋ **์๋ณ์**๋ก, ์นํ
์ ์ด๋ฆ(์ด๋ฒคํธ ์ด๋ฆ)์
๋๋ค. ์๋ฅผ ๋ค์ด, `@app.webhooks.post("new-subscription")`์์ ์นํ
์ด๋ฆ์ `new-subscription`์
๋๋ค. |
|||
|
|||
์ด๋ ์ค์ **URL ๊ฒฝ๋ก**๋ **์ฌ์ฉ์**๊ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ(์: ์น ๋์๋ณด๋)์ ํตํด ์ง์ ํ๋๋ก ๊ธฐ๋๋๊ธฐ ๋๋ฌธ์
๋๋ค. |
|||
|
|||
### ๋ฌธ์ ํ์ธํ๊ธฐ |
|||
|
|||
์ด์ ์ฑ์ ์์ํ๊ณ <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>๋ก ์ด๋ํด ๋ด
์๋ค. |
|||
|
|||
๋ฌธ์์์ ๊ธฐ์กด *๊ฒฝ๋ก ์์
*๋ฟ๋ง ์๋๋ผ **์นํ
**๋ ํ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค: |
|||
|
|||
<img src="/img/tutorial/openapi-webhooks/image01.png"> |
Loadingโฆ
Reference in new issue