Browse Source

๐ŸŒ Add Korean translation for `docs/ko/docs/advanced/openapi-webhooks.md` (#12752)

pull/12996/head
Saeye Lee 4 months ago
committed by GitHub
parent
commit
6d7b983cd4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 55
      docs/ko/docs/openapi-webhooks.md

55
docs/ko/docs/openapi-webhooks.md

@ -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โ€ฆ
Cancel
Save