]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Korean translation for `docs/ko/docs/how-to/conditional-openapi.md` (#12731)
authorsptcnl <119477585+sptcnl@users.noreply.github.com>
Thu, 7 Nov 2024 20:41:38 +0000 (05:41 +0900)
committerGitHub <noreply@github.com>
Thu, 7 Nov 2024 20:41:38 +0000 (20:41 +0000)
docs/ko/docs/how-to/conditional-openapi.md [new file with mode: 0644]

diff --git a/docs/ko/docs/how-to/conditional-openapi.md b/docs/ko/docs/how-to/conditional-openapi.md
new file mode 100644 (file)
index 0000000..79c7f0d
--- /dev/null
@@ -0,0 +1,61 @@
+# μ‘°κ±΄λΆ€μ μΈ OpenAPI
+
+ν•„μš”ν•œ κ²½μš°, μ„€μ • λ° ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™˜κ²½μ— λ”°λΌ μ‘°κ±΄λΆ€λ‘œ OpenAPIλ₯Ό κ΅¬μ„±ν•˜κ³  μ™„μ „νžˆ λΉ„ν™œμ„±ν™”ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
+
+## λ³΄μ•ˆ, API λ° docs에 λŒ€ν•΄μ„œ
+
+ν”„λ‘œλ•μ…˜μ—μ„œ, λ¬Έμ„œν™”λœ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI)λ₯Ό μˆ¨κΈ°λŠ” κ²ƒμ΄ APIλ₯Ό λ³΄ν˜Έν•˜λŠ” λ°©λ²•이 *λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€*.
+
+μ΄λŠ” API에 μΆ”가적인 λ³΄μ•ˆμ„ μ œκ³΅ν•˜μ§€ μ•ŠμœΌλ©°, *경둜 μž‘μ—…*은 μ—¬μ „νžˆ λ™μΌν•œ μœ„μΉ˜μ—μ„œ μ‚¬μš© ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+μ½”λ“œμ— λ³΄μ•ˆ κ²°ν•¨μ΄ μžˆλ‹€λ©΄, κ·Έ κ²°ν•¨μ€ μ—¬μ „νžˆ μ‘΄μž¬ν•  κ²ƒμž…λ‹ˆλ‹€.
+
+λ¬Έμ„œλ₯Ό μˆ¨κΈ°λŠ” κ²ƒμ€ API와 μƒν˜Έμž‘μš©ν•˜λŠ” λ°©λ²•을 μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“€λ©°, ν”„λ‘œλ•μ…˜μ—μ„œ λ””버깅을 λ” μ–΄λ ΅κ²Œ λ§Œλ“€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹¨μˆœνžˆ <a href="https://en.wikipedia.org/wiki/Security_through_obscurity" class="external-link" target="_blank">'λͺ¨ν˜Έμ„±μ— μ˜ν•œ λ³΄μ•ˆ'</a>의 ν•œ ν˜•νƒœλ‘œ κ°„주될 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+APIλ₯Ό λ³΄ν˜Έν•˜κ³  μ‹Άλ‹€λ©΄, μ˜ˆλ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό κ°™μ€ λ” λ‚˜μ€ λ°©λ²•듀이 μžˆμŠ΅λ‹ˆλ‹€:
+
+* μš”μ²­ λ³Έλ¬Έκ³Ό μ‘닡에 λŒ€ν•΄ μž˜ μ •μ˜λœ Pydantic λͺ¨λΈμ„ μ‚¬μš©ν•˜λ„둝 ν•˜μ„Έμš”.
+
+* μ’…속성을 μ‚¬μš©ν•˜μ—¬ ν•„μš”ν•œ κΆŒν•œκ³Ό μ—­ν• μ„ κ΅¬μ„±ν•˜μ„Έμš”.
+
+* ν‰λ¬Έ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ ˆλŒ€ μ €μž₯ν•˜μ§€ λ§κ³ , μ˜€μ§ μ•”ν˜Έν™”λœ λΉ„λ°€λ²ˆν˜Έλ§Œ μ €μž₯ν•˜μ„Έμš”.
+
+* Passlibκ³Ό JWT ν† ν°κ³Ό κ°™μ€ μž˜ μ•Œλ €μ§„ μ•”ν˜Έν™” λ„ꡬ듀을 κ΅¬ν˜„ν•˜κ³  μ‚¬μš©ν•˜μ„Έμš”.
+
+* ν•„μš”ν•œ κ³³μ— OAuth2 λ²”μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ λ” μ„ΈλΆ„ν™”λœ κΆŒν•œ μ œμ–΄λ₯Ό μΆ”κ°€ν•˜μ„Έμš”.
+
+* λ“±λ“±....
+
+κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ , νŠΉμ • ν™˜κ²½(예: ν”„λ‘œλ•μ…˜)μ—μ„œ λ˜λŠ” ν™˜κ²½ λ³€μˆ˜μ˜ μ„€μ •에 λ”°λΌ API λ¬Έμ„œλ₯Ό λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν•˜λŠ” λ§€μš° νŠΉμ •ν•œ μ‚¬μš© μ‚¬λ‘€κ°€ μžˆμ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+## μ„€μ • λ° ν™˜κ²½λ³€μˆ˜μ˜ μ‘°κ±΄λΆ€ OpenAPI
+
+λ™μΌν•œ Pydantic μ„€μ •을 μ‚¬μš©ν•˜μ—¬ μƒμ„±λœ OpenAPI λ° λ¬Έμ„œ UIλ₯Ό μ‰½κ²Œ κ΅¬μ„±ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+예λ₯Ό λ“€μ–΄:
+
+{* ../../docs_src/conditional_openapi/tutorial001.py hl[6,11] *}
+
+μ—¬κΈ°μ„œ `openapi_url` μ„€μ •을 κΈ°λ³Έκ°’인 `"/openapi.json"`으둜 μ„ μ–Έν•©λ‹ˆλ‹€.
+
+그런 λ’€, μš°λ¦¬λŠ” `FastAPI` μ•±μ„ λ§Œλ“€ λ•Œ κ·Έκ²ƒμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
+
+ν™˜κ²½ λ³€μˆ˜ `OPENAPI_URL`을 λΉˆ λ¬Έμžμ—΄λ‘œ μ„€μ •ν•˜μ—¬ OpenAPI(λ¬Έμ„œ UI ν¬ν•¨)λ₯Ό λΉ„ν™œμ„±ν™”ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄:
+
+<div class="termy">
+
+```console
+$ OPENAPI_URL= uvicorn main:app
+
+<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+</div>
+
+그리고 `/openapi.json`, `/docs` λ˜λŠ” `/redoc`의 URL둜 μ΄λ™ν•˜λ©΄ `404 Not Found`λΌλŠ” μ˜€λ₯˜κ°€ λ‹€μŒκ³Ό κ°™μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€:
+
+```JSON
+{
+    "detail": "Not Found"
+}
+```