diff --git a/.github/DISCUSSION_TEMPLATE/translations.yml b/.github/DISCUSSION_TEMPLATE/translations.yml new file mode 100644 index 0000000000..16e304d998 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/translations.yml @@ -0,0 +1,45 @@ +labels: [lang-all] +body: + - type: markdown + attributes: + value: | + Thanks for your interest in helping translate the FastAPI docs! đ + + Please follow these instructions carefully to propose a new language translation. đ + + This structured process helps ensure translations can be properly maintained long-term. + - type: checkboxes + id: checks + attributes: + label: Initial Checks + description: Please confirm and check all the following options. + options: + - label: I checked that this language is not already being translated in FastAPI docs. + required: true + - label: I searched existing discussions to ensure no one else proposed this language. + required: true + - label: I am a native speaker of the language I want to help translate. + required: true + - type: input + id: language + attributes: + label: Target Language + description: What language do you want to translate the FastAPI docs into? + placeholder: e.g. Latin + validations: + required: true + - type: textarea + id: additional_info + attributes: + label: Additional Information + description: Any other relevant information about your translation proposal + - type: markdown + attributes: + value: | + Translations are automatized with AI and then reviewed by native speakers. đ¤ đ + + This allows us to keep them consistent and up-to-date. + + If there are several native speakers commenting on this discussion and + committing to help review new translations, the FastAPI team will review it + and potentially make it an official translation. đ diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 6ecdf487c4..e84e4e4abd 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -53,7 +53,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true @@ -95,7 +95,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml index 87abfe3a1d..34b54b4529 100644 --- a/.github/workflows/contributors.yml +++ b/.github/workflows/contributors.yml @@ -30,7 +30,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index d9ed619105..9ca69b2082 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -29,7 +29,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true @@ -62,10 +62,7 @@ jobs: env: PROJECT_NAME: fastapitiangolo BRANCH: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'master' && 'main' ) || ( github.event.workflow_run.head_sha ) }} - # TODO: Use v3 when it's fixed, probably in v3.11 - # https://github.com/cloudflare/wrangler-action/issues/307 - uses: cloudflare/wrangler-action@v3.13 - # uses: cloudflare/wrangler-action@v3 + uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} diff --git a/.github/workflows/label-approved.yml b/.github/workflows/label-approved.yml index 02070146cf..908a9453df 100644 --- a/.github/workflows/label-approved.yml +++ b/.github/workflows/label-approved.yml @@ -26,7 +26,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/latest-changes.yml b/.github/workflows/latest-changes.yml index b8b5c42ee9..208ab0c653 100644 --- a/.github/workflows/latest-changes.yml +++ b/.github/workflows/latest-changes.yml @@ -34,7 +34,7 @@ jobs: if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} with: limit-access-to-actor: true - - uses: tiangolo/latest-changes@0.3.2 + - uses: tiangolo/latest-changes@0.4.0 with: token: ${{ secrets.GITHUB_TOKEN }} latest_changes_file: docs/en/docs/release-notes.md diff --git a/.github/workflows/notify-translations.yml b/.github/workflows/notify-translations.yml index c969926897..621d1253af 100644 --- a/.github/workflows/notify-translations.yml +++ b/.github/workflows/notify-translations.yml @@ -34,7 +34,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/people.yml b/.github/workflows/people.yml index 6ec3c1ad2f..c1df3455e5 100644 --- a/.github/workflows/people.yml +++ b/.github/workflows/people.yml @@ -30,7 +30,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true @@ -51,3 +51,4 @@ jobs: run: python ./scripts/people.py env: GITHUB_TOKEN: ${{ secrets.FASTAPI_PEOPLE }} + SLEEP_INTERVAL: ${{ vars.PEOPLE_SLEEP_INTERVAL }} diff --git a/.github/workflows/smokeshow.yml b/.github/workflows/smokeshow.yml index a0ffd55e63..d8a5dfb306 100644 --- a/.github/workflows/smokeshow.yml +++ b/.github/workflows/smokeshow.yml @@ -26,7 +26,7 @@ jobs: with: python-version: '3.9' - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/sponsors.yml b/.github/workflows/sponsors.yml index a5230c8343..6da4d90e12 100644 --- a/.github/workflows/sponsors.yml +++ b/.github/workflows/sponsors.yml @@ -30,7 +30,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 793e789e21..c3940be01b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,7 +29,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true @@ -48,6 +48,7 @@ jobs: strategy: matrix: python-version: + - "3.13" - "3.12" - "3.11" - "3.10" @@ -66,7 +67,7 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true @@ -111,7 +112,7 @@ jobs: with: python-version: '3.8' - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/topic-repos.yml b/.github/workflows/topic-repos.yml index 3c5c881f18..433aeb00b0 100644 --- a/.github/workflows/topic-repos.yml +++ b/.github/workflows/topic-repos.yml @@ -25,7 +25,7 @@ jobs: with: python-version: "3.11" - name: Setup uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 with: version: "0.4.15" enable-cache: true diff --git a/.github/workflows/translate.yml b/.github/workflows/translate.yml new file mode 100644 index 0000000000..fc6b4d7307 --- /dev/null +++ b/.github/workflows/translate.yml @@ -0,0 +1,77 @@ +name: Translate + +on: + workflow_dispatch: + inputs: + debug_enabled: + description: Run with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate) + required: false + default: "false" + command: + description: Command to run + type: choice + options: + - translate-page + - translate-lang + - update-outdated + - add-missing + - update-and-add + - remove-all-removable + language: + description: Language to translate to as a letter code (e.g. "es" for Spanish) + type: string + required: false + default: "" + en_path: + description: File path in English to translate (e.g. docs/en/docs/index.md) + type: string + required: false + default: "" + +env: + UV_SYSTEM_PYTHON: 1 + +jobs: + job: + if: github.repository_owner == 'fastapi' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Setup uv + uses: astral-sh/setup-uv@v6 + with: + version: "0.4.15" + enable-cache: true + cache-dependency-glob: | + requirements**.txt + pyproject.toml + - name: Install Dependencies + run: uv pip install -r requirements-github-actions.txt -r requirements-translations.txt + # Allow debugging with tmate + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }} + with: + limit-access-to-actor: true + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_TRANSLATIONS }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + - name: FastAPI Translate + run: | + python ./scripts/translate.py ${{ github.event.inputs.command }} + python ./scripts/translate.py make-pr + env: + GITHUB_TOKEN: ${{ secrets.FASTAPI_TRANSLATIONS }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + LANGUAGE: ${{ github.event.inputs.language }} + EN_PATH: ${{ github.event.inputs.en_path }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 767ef8d9e7..0f882b221f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.7.4 + rev: v0.12.5 hooks: - id: ruff args: diff --git a/README.md b/README.md index 6492ad7457..0e421c347a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-
+
@@ -48,20 +48,22 @@ The key features are:
-
-
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
@@ -148,7 +150,7 @@ $ pip install "fastapi[standard]"
### Create it
-* Create a file `main.py` with:
+Create a file `main.py` with:
```Python
from typing import Union
@@ -470,15 +472,20 @@ Used by Starlette:
* jinja2 - Required if you want to use the default template configuration.
* python-multipart - Required if you want to support form "parsing", with `request.form()`.
-Used by FastAPI / Starlette:
+Used by FastAPI:
* uvicorn - for the server that loads and serves your application. This includes `uvicorn[standard]`, which includes some dependencies (e.g. `uvloop`) needed for high performance serving.
-* `fastapi-cli` - to provide the `fastapi` command.
+* `fastapi-cli[standard]` - to provide the `fastapi` command.
+ * This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to FastAPI Cloud.
### Without `standard` Dependencies
If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`.
+### Without `fastapi-cloud-cli`
+
+If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`.
+
### Additional Optional Dependencies
There are some additional dependencies you might want to install.
diff --git a/docs/az/docs/index.md b/docs/az/docs/index.md
index ad78d7d064..fbbbce130f 100644
--- a/docs/az/docs/index.md
+++ b/docs/az/docs/index.md
@@ -6,7 +6,7 @@
-
+
diff --git a/docs/bn/docs/about/index.md b/docs/bn/docs/about/index.md
new file mode 100644
index 0000000000..b6d611ae9e
--- /dev/null
+++ b/docs/bn/docs/about/index.md
@@ -0,0 +1,3 @@
+# āϏāĻŽā§āĻĒāϰā§āĻā§
+
+**FastAPI** āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ â āĻāϰ āĻĄāĻŋāĻāĻžāĻāύ, āĻ
āύā§āĻĒā§āϰā§āϰāĻŖāĻž āĻ āĻāϰāĻ āĻ
āύā§āĻ āĻāĻŋāĻā§āĨ¤ đ¤
diff --git a/docs/bn/docs/environment-variables.md b/docs/bn/docs/environment-variables.md
new file mode 100644
index 0000000000..9122ca5bf2
--- /dev/null
+++ b/docs/bn/docs/environment-variables.md
@@ -0,0 +1,298 @@
+# āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏ
+
+/// tip
+
+āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ "āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏ" āĻā§ āĻāĻŦāĻ āϏā§āĻā§āϞ⧠āĻā§āĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāϝāĻŧ āϏā§āĻāĻž āĻāĻžāύā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻ āĻ
āĻāĻļāĻāĻŋ āϏā§āĻāĻŋāĻĒ āĻāϰ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
+
+///
+
+āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ (āϏāĻāĻā§āώā§āĻĒā§ "**env var**" āύāĻžāĻŽā§āĻ āĻĒāϰāĻŋāĻāĻŋāϤ) āĻšāϞ⧠āĻāĻŽāύ āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āϝāĻž āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄā§āϰ **āĻŦāĻžāĻāϰā§**, **āĻ
āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽā§** āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄ (āĻŦāĻž āĻ
āύā§āϝāĻžāύā§āϝ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ) āĻĻā§āĻŦāĻžāϰāĻž āϝāĻžāĻā§ āϰāĻŋāĻĄ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
+
+āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ **āϏā§āĻāĻŋāĻāϏ** āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤā§, āĻĒāĻžāĻāĻĨāύā§āϰ **āĻāύāϏā§āĻāϞā§āĻļāύ** āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāϰ āĻ
āĻāĻļ āĻšāĻŋāϏā§āĻŦā§, āĻāϤā§āϝāĻžāĻĻāĻŋ āĻāĻžāĻā§ āĻāĻĒāϝā§āĻā§ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+## Env Vars āϤā§āϰ⧠āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ
+
+āĻāĻĒāύāĻŋ **āĻļā§āϞ (āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ)**-āĻ, āĻĒāĻžāĻāĻĨāύā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏ **āϤā§āϰāĻŋ** āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĻ
+
+//// tab | āϞāĻŋāύāĻžāĻā§āϏ, āĻŽā§āϝāĻžāĻāĻāĻāϏ, āĻāĻāύā§āĻĄā§āĻ Bash
+
+
-
+
diff --git a/docs/de/docs/tutorial/bigger-applications.md b/docs/de/docs/tutorial/bigger-applications.md
index 59e91bdcce..514e3fd3a5 100644
--- a/docs/de/docs/tutorial/bigger-applications.md
+++ b/docs/de/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* Es gibt auch ein Unterverzeichnis `app/internal/` mit einer weiteren Datei `__init__.py`, es handelt sich also um ein weiteres âPython-Subpackageâ: `app.internal`.
* Und die Datei `app/internal/admin.py` ist ein weiteres Submodul: `app.internal.admin`.
-
+
Die gleiche Dateistruktur mit Kommentaren:
@@ -270,7 +270,7 @@ Aber diese Datei existiert nicht, unsere Abhängigkeiten befinden sich in einer
Erinnern Sie sich, wie unsere Anwendungs-/Dateistruktur aussieht:
-
+
---
diff --git a/docs/de/docs/tutorial/query-params-str-validations.md b/docs/de/docs/tutorial/query-params-str-validations.md
index f181d501c8..de8879ce8c 100644
--- a/docs/de/docs/tutorial/query-params-str-validations.md
+++ b/docs/de/docs/tutorial/query-params-str-validations.md
@@ -315,22 +315,6 @@ Wenn Sie einen Parameter erforderlich machen wollen, während Sie `Query` verwen
{* ../../docs_src/query_params_str_validations/tutorial006_an_py39.py hl[9] *}
-### Erforderlich mit Ellipse (`...`)
-
-Es gibt eine Alternative, die explizit deklariert, dass ein Wert erforderlich ist. Sie kÃļnnen als Default das Literal `...` setzen:
-
-{* ../../docs_src/query_params_str_validations/tutorial006b_an_py39.py hl[9] *}
-
-/// info
-
-Falls Sie das `...` bisher noch nicht gesehen haben: Es ist ein spezieller einzelner Wert, Teil von Python und wird âEllipsisâ genannt (Deutsch: Ellipse).
-
-Es wird von Pydantic und FastAPI verwendet, um explizit zu deklarieren, dass ein Wert erforderlich ist.
-
-///
-
-Dies wird **FastAPI** wissen lassen, dass dieser Parameter erforderlich ist.
-
### Erforderlich, kann `None` sein
Sie kÃļnnen deklarieren, dass ein Parameter `None` akzeptiert, aber dennoch erforderlich ist. Das zwingt Clients, den Wert zu senden, selbst wenn er `None` ist.
diff --git a/docs/em/docs/deployment/concepts.md b/docs/em/docs/deployment/concepts.md
index 019703296e..bbb017277c 100644
--- a/docs/em/docs/deployment/concepts.md
+++ b/docs/em/docs/deployment/concepts.md
@@ -216,7 +216,7 @@
đ đ¨âđ đ ī¸ đ đ đââ đ đ¸, đĢ đ đ đ đ đ¨ **đ¨** & đ¨ **đ¨**, & đĢ đ đ đŗ đ đŽ đĸ đž.
-
+
& âī¸, đ đ° đ đ˛ âī¸ **đ đ ī¸** đ đ, âī¸ âĒī¸âĄī¸ đ đ¸.
diff --git a/docs/em/docs/deployment/https.md b/docs/em/docs/deployment/https.md
index 31cf990018..6d2641a92c 100644
--- a/docs/em/docs/deployment/https.md
+++ b/docs/em/docs/deployment/https.md
@@ -85,7 +85,7 @@
đ đŊ đ đŦ đĨ âī¸ đ¯ **đĸ đĸ**. đ đ đĸ đĸ đĸ âī¸ đ đŊ, đ đ đ đ đŊ.
-
+
### đ¤ đ¤ âļī¸
@@ -93,7 +93,7 @@
đĨ đ đģ đ ī¸ đ đ đŠâđģ & đŊ & đ đ đ đĢ đ âī¸, âī¸.
-
+
đ đ đ đŠâđģ & đŊ đ ī¸ đ¤ đ đ¤ **đ¤ đ¤**.
@@ -111,7 +111,7 @@
đ đŧ, âĢī¸ đ âī¸ đ `someapp.example.com`.
-
+
đŠâđģ âĒ **đ** đ¨âđŧ đ đ đ đ¤ đ (đ đŧ âĄī¸ đ, âī¸ đĨ đ đ đ đ âĒ), âĢī¸ đĒ **â** đ đ â.
@@ -133,19 +133,19 @@
, đŠâđģ đ¨ **đēđ¸đ đ¨**. đ đēđ¸đ đ¨ đ đ đ¤ đ.
-
+
### đ đ¨
đ¤ â đŗ đ âī¸ đ â **đ đ¨**, & đ đļ **â
(đ) đēđ¸đ đ¨** đ ī¸ đ đ¸ (đŧ đ ī¸ âŽī¸ Uvicorn đââ FastAPI đ¸).
-
+
### đēđ¸đ đ¨
đ¸ đ đ ī¸ đ¨ & đ¨ **â
(đŊ) đēđ¸đ đ¨** đ¤ â đŗ.
-
+
### đēđ¸đ đ¨
@@ -153,7 +153,7 @@
â, đĨ đ â đ đ¨ â & đ âŽī¸ âļī¸ī¸ đ đ, âī¸. âĢī¸ đ â¤´ī¸ **đ đ¨** & đ ī¸ âĢī¸.
-
+
đŠâđģ (đĨ) đ đ đ đ¨ đ âĒī¸âĄī¸ â đŊ âŠī¸ âĢī¸ âī¸ â đĢ â âī¸ **đēđ¸đ đ** â.
@@ -163,7 +163,7 @@
đ´ 1ī¸âŖ đ ī¸ đĒ đ đ¯ đĸ & â´ (đ¤ â đŗ đ đŧ) âī¸ đ đ¸/đ ī¸ đĒ đ đ đŊ(â) đââī¸, đ đĢ đĢ đ âī¸ đ **đ đĸ đĸ & â´**.
-
+
đ đ, đ¤ â đŗ đĒ đĩ đēđ¸đ & đ **đ đ**, đ đ¸, & â¤´ī¸ đļ đ¨ âļī¸ī¸ đ¸ đ đŧ.
@@ -173,7 +173,7 @@
& ⤴ī¸, đ¤ đ â1ī¸âŖ đ (đŧ âĢī¸ â1ī¸âŖ đ, đŧ âĢī¸ đĒ đ đ¤ â đŗ) đ đ đŦ âĄī¸ đ, & âģ đ(â).
-
+
**đ¤ đ** **đ âŽī¸ đ đ**, đĢ âŽī¸ đĸ đĸ.
diff --git a/docs/em/docs/index.md b/docs/em/docs/index.md
index 16b2019d3b..57be59b07b 100644
--- a/docs/em/docs/index.md
+++ b/docs/em/docs/index.md
@@ -12,7 +12,7 @@
-
+
diff --git a/docs/em/docs/tutorial/bigger-applications.md b/docs/em/docs/tutorial/bigger-applications.md
index 68f506f27e..78a321ae6a 100644
--- a/docs/em/docs/tutorial/bigger-applications.md
+++ b/docs/em/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* đ¤ đ `app/internal/` âŽī¸ â1ī¸âŖ đ `__init__.py`, âĢī¸ â1ī¸âŖ "đ đĻ": `app.internal`.
* & đ `app/internal/admin.py` â1ī¸âŖ đ: `app.internal.admin`.
-
+
đ đ đ âŽī¸ đ¤:
@@ -244,7 +244,7 @@ from .dependencies import get_token_header
đ â đ đą/đ đ đ đ:
-
+
---
diff --git a/docs/em/docs/tutorial/query-params-str-validations.md b/docs/em/docs/tutorial/query-params-str-validations.md
index dbaab5735d..fd077bf8f7 100644
--- a/docs/em/docs/tutorial/query-params-str-validations.md
+++ b/docs/em/docs/tutorial/query-params-str-validations.md
@@ -148,22 +148,6 @@ q: Union[str, None] = Query(default=None, min_length=3)
{* ../../docs_src/query_params_str_validations/tutorial006.py hl[7] *}
-### â âŽī¸ â (`...`)
-
-đ¤ đ đ đ¯ đŖ đ đ˛ â. đ đĒ â `default` đĸ đ đ˛ `...`:
-
-{* ../../docs_src/query_params_str_validations/tutorial006b.py hl[7] *}
-
-/// info
-
-đĨ đ đĢ đ đ `...` â: âĢī¸ đ đ đ˛, âĢī¸ đ đ & đ¤ "â".
-
-âĢī¸ âī¸ Pydantic & FastAPI đ¯ đŖ đ đ˛ â.
-
-///
-
-đ đ âĄī¸ **FastAPI** đ đ đ đĸ â.
-
### â âŽī¸ `None`
đ đĒ đŖ đ đĸ đĒ đĢ `None`, âī¸ đ âĢī¸ â. đ đ ⥠đŠâđģ đ¨ đ˛, đĨ đ˛ `None`.
@@ -178,18 +162,6 @@ Pydantic, â âĢī¸â đī¸ đ đŊ đŦ & đ ī¸ FastAPI, âī¸
///
-### âī¸ Pydantic `Required` âŠī¸ â (`...`)
-
-đĨ đ đ đŦ âī¸ `...`, đ đĒ đ & âī¸ `Required` âĒī¸âĄī¸ Pydantic:
-
-{* ../../docs_src/query_params_str_validations/tutorial006d.py hl[2,8] *}
-
-/// tip
-
-đ đ đ
đŧ, đâ đŗ đ, đ đĒ đ¯ đĢ `default` đĸ, đ đ đĢ âī¸ âī¸ `...` đĢ `Required`.
-
-///
-
## đĸ đĸ đ / đ đ˛
đâ đ đŦ đĸ đĸ đ¯ âŽī¸ `Query` đ đĒ đŖ âĢī¸ đ¨ đ đ˛, âī¸ đââ đ đ, đ¨ đ đ˛.
diff --git a/docs/en/data/contributors.yml b/docs/en/data/contributors.yml
index f679d7286f..05ff0c7d4b 100644
--- a/docs/en/data/contributors.yml
+++ b/docs/en/data/contributors.yml
@@ -1,13 +1,23 @@
tiangolo:
login: tiangolo
- count: 697
+ count: 768
avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
url: https://github.com/tiangolo
dependabot:
login: dependabot
- count: 89
+ count: 106
avatarUrl: https://avatars.githubusercontent.com/in/29110?v=4
url: https://github.com/apps/dependabot
+alejsdev:
+ login: alejsdev
+ count: 48
+ avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=638c65283ac9e9e2c3a0f9d1e3370db4b8a2c58d&v=4
+ url: https://github.com/alejsdev
+pre-commit-ci:
+ login: pre-commit-ci
+ count: 37
+ avatarUrl: https://avatars.githubusercontent.com/in/68672?v=4
+ url: https://github.com/apps/pre-commit-ci
github-actions:
login: github-actions
count: 26
@@ -15,19 +25,9 @@ github-actions:
url: https://github.com/apps/github-actions
Kludex:
login: Kludex
- count: 22
+ count: 23
avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
url: https://github.com/Kludex
-pre-commit-ci:
- login: pre-commit-ci
- count: 22
- avatarUrl: https://avatars.githubusercontent.com/in/68672?v=4
- url: https://github.com/apps/pre-commit-ci
-alejsdev:
- login: alejsdev
- count: 21
- avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=356f39ff3f0211c720b06d3dbb060e98884085e3&v=4
- url: https://github.com/alejsdev
dmontagu:
login: dmontagu
count: 17
@@ -68,6 +68,11 @@ vishnuvskvkl:
count: 8
avatarUrl: https://avatars.githubusercontent.com/u/84698110?u=8af5de0520dd4fa195f53c2850a26f57c0f6bc64&v=4
url: https://github.com/vishnuvskvkl
+svlandeg:
+ login: svlandeg
+ count: 7
+ avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
+ url: https://github.com/svlandeg
alissadb:
login: alissadb
count: 6
@@ -88,16 +93,16 @@ waynerv:
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/39515546?u=ec35139777597cdbbbddda29bf8b9d4396b429a9&v=4
url: https://github.com/waynerv
-svlandeg:
- login: svlandeg
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
- url: https://github.com/svlandeg
krishnamadhavan:
login: krishnamadhavan
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/31798870?u=950693b28f3ae01105fd545c046e46ca3d31ab06&v=4
url: https://github.com/krishnamadhavan
+alv2017:
+ login: alv2017
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
jekirl:
login: jekirl
count: 4
@@ -108,6 +113,11 @@ hitrust:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/3360631?u=5fa1f475ad784d64eb9666bdd43cc4d285dcc773&v=4
url: https://github.com/hitrust
+ShahriyarR:
+ login: ShahriyarR
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/3852029?u=631b2ae59360ab380c524b32bc3d245aff1165af&v=4
+ url: https://github.com/ShahriyarR
adriangb:
login: adriangb
count: 4
@@ -116,7 +126,7 @@ adriangb:
iudeen:
login: iudeen
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=2843b3303282bff8b212dcd4d9d6689452e4470c&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4
url: https://github.com/iudeen
philipokiokio:
login: philipokiokio
@@ -128,6 +138,11 @@ AlexWendland:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/3949212?u=c4c0c615e0ea33d00bfe16b779cf6ebc0f58071c&v=4
url: https://github.com/AlexWendland
+YuriiMotov:
+ login: YuriiMotov
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
+ url: https://github.com/YuriiMotov
divums:
login: divums
count: 3
@@ -161,7 +176,7 @@ hukkin:
marcosmmb:
login: marcosmmb
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/6181089?u=b8567a842b38c5570c315b2b7ca766fa7be6721e&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/6181089?u=03c50eec631857d84df5232890780d00a3f76903&v=4
url: https://github.com/marcosmmb
Serrones:
login: Serrones
@@ -173,11 +188,11 @@ uriyyo:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/32038156?u=a27b65a9ec3420586a827a0facccbb8b6df1ffb3&v=4
url: https://github.com/uriyyo
-amacfie:
- login: amacfie
+andrew222651:
+ login: andrew222651
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/889657?u=d70187989940b085bcbfa3bedad8dbc5f3ab1fe7&v=4
- url: https://github.com/amacfie
+ url: https://github.com/andrew222651
rkbeatss:
login: rkbeatss
count: 3
@@ -206,13 +221,8 @@ TeoZosa:
graingert:
login: graingert
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/413772?u=64b77b6aa405c68a9c6bcf45f84257c66eea5f32&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/413772?v=4
url: https://github.com/graingert
-ShahriyarR:
- login: ShahriyarR
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/3852029?u=c9a1691e5ebdc94cbf543086099a6ed705cdb873&v=4
- url: https://github.com/ShahriyarR
jaystone776:
login: jaystone776
count: 3
@@ -233,6 +243,11 @@ papb:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/20914054?u=890511fae7ea90d887e2a65ce44a1775abba38d5&v=4
url: https://github.com/papb
+musicinmybrain:
+ login: musicinmybrain
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/6898909?u=9010312053e7141383b9bdf538036c7f37fbaba0&v=4
+ url: https://github.com/musicinmybrain
gitworkflows:
login: gitworkflows
count: 3
@@ -301,7 +316,7 @@ dconathan:
Jamim:
login: Jamim
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=0cf3027bec78ba4f0b89802430c136bc69847d7a&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=9ce0b6a6d1a5124e28b3c04d8d26827ca328713a&v=4
url: https://github.com/Jamim
svalouch:
login: svalouch
@@ -356,7 +371,7 @@ sattosan:
michaeloliverx:
login: michaeloliverx
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/55017335?u=e606eb5cc397c07523be47637b1ee796904fbb59&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/55017335?u=efb0cb6e261ff64d862fafb91ee80fc2e1f8a2ed&v=4
url: https://github.com/michaeloliverx
voegtlel:
login: voegtlel
@@ -411,7 +426,7 @@ davidefiocco:
adriencaccia:
login: adriencaccia
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/19605940?u=980b0b366a02791a5600b2e9f9ac2037679acaa8&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/19605940?u=9a59081f46bfc9d839886a49d5092cf572879049&v=4
url: https://github.com/adriencaccia
jamescurtin:
login: jamescurtin
@@ -433,6 +448,11 @@ imba-tjd:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/24759802?u=01e901a4fe004b4b126549d3ff1c4000fe3720b5&v=4
url: https://github.com/imba-tjd
+johnthagen:
+ login: johnthagen
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/10340167?u=47147fc4e4db1f573bee3fe428deeacb3197bc5f&v=4
+ url: https://github.com/johnthagen
paxcodes:
login: paxcodes
count: 2
@@ -443,6 +463,11 @@ kaustubhgupta:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/43691873?u=8dd738718ac7ffad4ef31e86b5d780a1141c695d&v=4
url: https://github.com/kaustubhgupta
+kinuax:
+ login: kinuax
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/13321374?u=22dc9873d6d9f2c7e4fc44c6480c3505efb1531f&v=4
+ url: https://github.com/kinuax
wakabame:
login: wakabame
count: 2
@@ -458,11 +483,6 @@ yezz123:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/52716203?u=d7062cbc6eb7671d5dc9cc0e32a24ae335e0f225&v=4
url: https://github.com/yezz123
-musicinmybrain:
- login: musicinmybrain
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/6898909?u=9010312053e7141383b9bdf538036c7f37fbaba0&v=4
- url: https://github.com/musicinmybrain
softwarebloat:
login: softwarebloat
count: 2
@@ -473,6 +493,11 @@ Lancetnik:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/44573917?u=f9a18be7324333daf9cc314c35c3051f0a20a7a6&v=4
url: https://github.com/Lancetnik
+joakimnordling:
+ login: joakimnordling
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/6637576?u=df5d99db9b899b399effd429f4358baaa6f7199c&v=4
+ url: https://github.com/joakimnordling
yogabonito:
login: yogabonito
count: 2
@@ -493,6 +518,11 @@ tamird:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/1535036?v=4
url: https://github.com/tamird
+ndimares:
+ login: ndimares
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/6267663?u=cfb27efde7a7212be8142abb6c058a1aeadb41b1&v=4
+ url: https://github.com/ndimares
rabinlamadong:
login: rabinlamadong
count: 2
@@ -503,3 +533,28 @@ AyushSinghal1794:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/89984761?v=4
url: https://github.com/AyushSinghal1794
+gsheni:
+ login: gsheni
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/8726321?u=ee3bd9ff6320f4715d1dd9671a3d55cccb65b984&v=4
+ url: https://github.com/gsheni
+DanielKusyDev:
+ login: DanielKusyDev
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/36250676?u=2ea6114ff751fc48b55f231987a0e2582c6b1bd2&v=4
+ url: https://github.com/DanielKusyDev
+DanielYang59:
+ login: DanielYang59
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/80093591?u=63873f701c7c74aac83c906800a1dddc0bc8c92f&v=4
+ url: https://github.com/DanielYang59
+valentinDruzhinin:
+ login: valentinDruzhinin
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+blueswen:
+ login: blueswen
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/1564148?u=6d6b8cc8f2b5cef715e68d6175154a8a94d518ee&v=4
+ url: https://github.com/blueswen
diff --git a/docs/en/data/external_links.yml b/docs/en/data/external_links.yml
index 9e411a6312..50f84ecbff 100644
--- a/docs/en/data/external_links.yml
+++ b/docs/en/data/external_links.yml
@@ -411,3 +411,8 @@ Talks:
author_link: https://twitter.com/chriswithers13
link: https://www.youtube.com/watch?v=3DLwPcrE5mA
title: 'PyCon UK 2019: FastAPI from the ground up'
+ Taiwanese:
+ - author: Blueswen
+ author_link: https://github.com/blueswen
+ link: https://www.youtube.com/watch?v=y3sumuoDq4w
+ title: 'PyCon TW 2024: å
¨æšäŊåŧˇå Python æåå¯č§æ¸Ŧæ§īŧäģĨ FastAPI å Grafana Stack įēäž'
diff --git a/docs/en/data/github_sponsors.yml b/docs/en/data/github_sponsors.yml
index 55fe3dda93..778ec6a95f 100644
--- a/docs/en/data/github_sponsors.yml
+++ b/docs/en/data/github_sponsors.yml
@@ -1,38 +1,38 @@
sponsors:
-- - login: bump-sh
- avatarUrl: https://avatars.githubusercontent.com/u/33217836?v=4
- url: https://github.com/bump-sh
- - login: Nixtla
- avatarUrl: https://avatars.githubusercontent.com/u/79945230?v=4
- url: https://github.com/Nixtla
+- - login: renderinc
+ avatarUrl: https://avatars.githubusercontent.com/u/36424661?v=4
+ url: https://github.com/renderinc
- login: andrew-propelauth
- avatarUrl: https://avatars.githubusercontent.com/u/89474256?u=1188c27cb744bbec36447a2cfd4453126b2ddb5c&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/89474256?u=c98993dec8553c09d424ede67bbe86e5c35f48c9&v=4
url: https://github.com/andrew-propelauth
- - login: liblaber
- avatarUrl: https://avatars.githubusercontent.com/u/100821118?v=4
- url: https://github.com/liblaber
- - login: zanfaruqui
- avatarUrl: https://avatars.githubusercontent.com/u/104461687?v=4
- url: https://github.com/zanfaruqui
- login: blockbee-io
avatarUrl: https://avatars.githubusercontent.com/u/115143449?u=1b8620c2d6567c4df2111a371b85a51f448f9b85&v=4
url: https://github.com/blockbee-io
- login: zuplo
avatarUrl: https://avatars.githubusercontent.com/u/85497839?v=4
url: https://github.com/zuplo
- - login: render-sponsorships
- avatarUrl: https://avatars.githubusercontent.com/u/189296666?v=4
- url: https://github.com/render-sponsorships
- - login: porter-dev
- avatarUrl: https://avatars.githubusercontent.com/u/62078005?v=4
- url: https://github.com/porter-dev
+ - login: coderabbitai
+ avatarUrl: https://avatars.githubusercontent.com/u/132028505?v=4
+ url: https://github.com/coderabbitai
+ - login: madisonredtfeldt
+ avatarUrl: https://avatars.githubusercontent.com/u/152656511?v=4
+ url: https://github.com/madisonredtfeldt
+ - login: subtotal
+ avatarUrl: https://avatars.githubusercontent.com/u/176449348?v=4
+ url: https://github.com/subtotal
+ - login: railwayapp
+ avatarUrl: https://avatars.githubusercontent.com/u/66716858?v=4
+ url: https://github.com/railwayapp
+ - login: Nixtla
+ avatarUrl: https://avatars.githubusercontent.com/u/79945230?v=4
+ url: https://github.com/Nixtla
- login: scalar
avatarUrl: https://avatars.githubusercontent.com/u/301879?v=4
url: https://github.com/scalar
-- - login: ObliviousAI
- avatarUrl: https://avatars.githubusercontent.com/u/65656077?v=4
- url: https://github.com/ObliviousAI
-- - login: svix
+- - login: dribia
+ avatarUrl: https://avatars.githubusercontent.com/u/41189616?v=4
+ url: https://github.com/dribia
+ - login: svix
avatarUrl: https://avatars.githubusercontent.com/u/80175132?v=4
url: https://github.com/svix
- login: stainless-api
@@ -44,18 +44,21 @@ sponsors:
- login: databento
avatarUrl: https://avatars.githubusercontent.com/u/64141749?v=4
url: https://github.com/databento
-- - login: mercedes-benz
- avatarUrl: https://avatars.githubusercontent.com/u/34240465?v=4
- url: https://github.com/mercedes-benz
- - login: xoflare
- avatarUrl: https://avatars.githubusercontent.com/u/74335107?v=4
- url: https://github.com/xoflare
- - login: marvin-robot
+ - login: permitio
+ avatarUrl: https://avatars.githubusercontent.com/u/71775833?v=4
+ url: https://github.com/permitio
+- - login: marvin-robot
avatarUrl: https://avatars.githubusercontent.com/u/41086007?u=b9fcab402d0cd0aec738b6574fe60855cb0cd36d&v=4
url: https://github.com/marvin-robot
+ - login: mercedes-benz
+ avatarUrl: https://avatars.githubusercontent.com/u/34240465?v=4
+ url: https://github.com/mercedes-benz
- login: Ponte-Energy-Partners
avatarUrl: https://avatars.githubusercontent.com/u/114745848?v=4
url: https://github.com/Ponte-Energy-Partners
+ - login: LambdaTest-Inc
+ avatarUrl: https://avatars.githubusercontent.com/u/171592363?u=96606606a45fa170427206199014f2a5a2a4920b&v=4
+ url: https://github.com/LambdaTest-Inc
- login: BoostryJP
avatarUrl: https://avatars.githubusercontent.com/u/57932412?v=4
url: https://github.com/BoostryJP
@@ -68,102 +71,30 @@ sponsors:
- - login: takashi-yoneya
avatarUrl: https://avatars.githubusercontent.com/u/33813153?u=2d0522bceba0b8b69adf1f2db866503bd96f944e&v=4
url: https://github.com/takashi-yoneya
+ - login: Doist
+ avatarUrl: https://avatars.githubusercontent.com/u/2565372?v=4
+ url: https://github.com/Doist
- - login: mainframeindustries
avatarUrl: https://avatars.githubusercontent.com/u/55092103?v=4
url: https://github.com/mainframeindustries
- - login: CanoaPBC
- avatarUrl: https://avatars.githubusercontent.com/u/64223768?v=4
- url: https://github.com/CanoaPBC
- login: yasyf
avatarUrl: https://avatars.githubusercontent.com/u/709645?u=f36736b3c6a85f578886ecc42a740e7b436e7a01&v=4
url: https://github.com/yasyf
-- - login: genzou9201
- avatarUrl: https://avatars.githubusercontent.com/u/42960762?u=1ca6c18c59e8b327ae584c545b72de31ebc05275&v=4
- url: https://github.com/genzou9201
+- - login: alixlahuec
+ avatarUrl: https://avatars.githubusercontent.com/u/29543316?u=44357eb2a93bccf30fb9d389b8befe94a3d00985&v=4
+ url: https://github.com/alixlahuec
- - login: primer-io
avatarUrl: https://avatars.githubusercontent.com/u/62146168?v=4
url: https://github.com/primer-io
- - login: povilasb
- avatarUrl: https://avatars.githubusercontent.com/u/1213442?u=b11f58ed6ceea6e8297c9b310030478ebdac894d&v=4
- url: https://github.com/povilasb
- - login: upciti
avatarUrl: https://avatars.githubusercontent.com/u/43346262?v=4
url: https://github.com/upciti
- - login: freddiev4
- avatarUrl: https://avatars.githubusercontent.com/u/8339018?u=1aad5b4f5a04cb750852b843d5e1d8f4ce339c2e&v=4
- url: https://github.com/freddiev4
- - login: samuelcolvin
avatarUrl: https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4
url: https://github.com/samuelcolvin
- - login: vincentkoc
- avatarUrl: https://avatars.githubusercontent.com/u/25068?u=cbf098fc04c0473523d373b0dd2145b4ec99ef93&v=4
- url: https://github.com/vincentkoc
- - login: ProteinQure
- avatarUrl: https://avatars.githubusercontent.com/u/33707203?v=4
- url: https://github.com/ProteinQure
- - login: ddilidili
- avatarUrl: https://avatars.githubusercontent.com/u/42176885?u=c0a849dde06987434653197b5f638d3deb55fc6c&v=4
- url: https://github.com/ddilidili
- login: otosky
avatarUrl: https://avatars.githubusercontent.com/u/42260747?u=69d089387c743d89427aa4ad8740cfb34045a9e0&v=4
url: https://github.com/otosky
- - login: mjohnsey
- avatarUrl: https://avatars.githubusercontent.com/u/16784016?u=38fad2e6b411244560b3af99c5f5a4751bc81865&v=4
- url: https://github.com/mjohnsey
- - login: ashi-agrawal
- avatarUrl: https://avatars.githubusercontent.com/u/17105294?u=99c7a854035e5398d8e7b674f2d42baae6c957f8&v=4
- url: https://github.com/ashi-agrawal
- - login: sepsi77
- avatarUrl: https://avatars.githubusercontent.com/u/18682303?v=4
- url: https://github.com/sepsi77
- - login: RaamEEIL
- avatarUrl: https://avatars.githubusercontent.com/u/20320552?v=4
- url: https://github.com/RaamEEIL
- - login: jhundman
- avatarUrl: https://avatars.githubusercontent.com/u/24263908?v=4
- url: https://github.com/jhundman
- - login: b-rad-c
- avatarUrl: https://avatars.githubusercontent.com/u/25362581?u=5bb10629f4015b62bec1f9a366675d5085551af9&v=4
- url: https://github.com/b-rad-c
- - login: ehaca
- avatarUrl: https://avatars.githubusercontent.com/u/25950317?u=cec1a3e0643b785288ae8260cc295a85ab344995&v=4
- url: https://github.com/ehaca
- - login: raphaellaude
- avatarUrl: https://avatars.githubusercontent.com/u/28026311?u=28faad3e62250ef91a0c3c5d0faba39592d9ab39&v=4
- url: https://github.com/raphaellaude
- - login: timlrx
- avatarUrl: https://avatars.githubusercontent.com/u/28362229?u=9a745ca31372ee324af682715ae88ce8522f9094&v=4
- url: https://github.com/timlrx
- - login: Leay15
- avatarUrl: https://avatars.githubusercontent.com/u/32212558?u=c4aa9c1737e515959382a5515381757b1fd86c53&v=4
- url: https://github.com/Leay15
- - login: ygorpontelo
- avatarUrl: https://avatars.githubusercontent.com/u/32963605?u=35f7103f9c4c4c2589ae5737ee882e9375ef072e&v=4
- url: https://github.com/ygorpontelo
- - login: chickenandstats
- avatarUrl: https://avatars.githubusercontent.com/u/79477966?v=4
- url: https://github.com/chickenandstats
- - login: kaoru0310
- avatarUrl: https://avatars.githubusercontent.com/u/80977929?u=1b61d10142b490e56af932ddf08a390fae8ee94f&v=4
- url: https://github.com/kaoru0310
- - login: DelfinaCare
- avatarUrl: https://avatars.githubusercontent.com/u/83734439?v=4
- url: https://github.com/DelfinaCare
- - login: Karine-Bauch
- avatarUrl: https://avatars.githubusercontent.com/u/90465103?u=7feb1018abb1a5631cfd9a91fea723d1ceb5f49b&v=4
- url: https://github.com/Karine-Bauch
- - login: eruditis
- avatarUrl: https://avatars.githubusercontent.com/u/95244703?v=4
- url: https://github.com/eruditis
- - login: jugeeem
- avatarUrl: https://avatars.githubusercontent.com/u/116043716?u=ae590d79c38ac79c91b9c5caa6887d061e865a3d&v=4
- url: https://github.com/jugeeem
- - login: logic-automation
- avatarUrl: https://avatars.githubusercontent.com/u/144732884?v=4
- url: https://github.com/logic-automation
- - login: Torqsight-Labs
- avatarUrl: https://avatars.githubusercontent.com/u/169598176?v=4
- url: https://github.com/Torqsight-Labs
- login: ramonalmeidam
avatarUrl: https://avatars.githubusercontent.com/u/45269580?u=3358750b3a5854d7c3ed77aaca7dd20a0f529d32&v=4
url: https://github.com/ramonalmeidam
@@ -173,6 +104,36 @@ sponsors:
- login: dudikbender
avatarUrl: https://avatars.githubusercontent.com/u/53487583?u=3a57542938ebfd57579a0111db2b297e606d9681&v=4
url: https://github.com/dudikbender
+ - login: ehaca
+ avatarUrl: https://avatars.githubusercontent.com/u/25950317?u=cec1a3e0643b785288ae8260cc295a85ab344995&v=4
+ url: https://github.com/ehaca
+ - login: raphaellaude
+ avatarUrl: https://avatars.githubusercontent.com/u/28026311?u=91e1c00d9ac4f8045527e13de8050d504531cbc0&v=4
+ url: https://github.com/raphaellaude
+ - login: timlrx
+ avatarUrl: https://avatars.githubusercontent.com/u/28362229?u=9a745ca31372ee324af682715ae88ce8522f9094&v=4
+ url: https://github.com/timlrx
+ - login: Leay15
+ avatarUrl: https://avatars.githubusercontent.com/u/32212558?u=c4aa9c1737e515959382a5515381757b1fd86c53&v=4
+ url: https://github.com/Leay15
+ - login: ProteinQure
+ avatarUrl: https://avatars.githubusercontent.com/u/33707203?v=4
+ url: https://github.com/ProteinQure
+ - login: kaoru0310
+ avatarUrl: https://avatars.githubusercontent.com/u/80977929?u=1b61d10142b490e56af932ddf08a390fae8ee94f&v=4
+ url: https://github.com/kaoru0310
+ - login: DelfinaCare
+ avatarUrl: https://avatars.githubusercontent.com/u/83734439?v=4
+ url: https://github.com/DelfinaCare
+ - login: Karine-Bauch
+ avatarUrl: https://avatars.githubusercontent.com/u/90465103?u=7feb1018abb1a5631cfd9a91fea723d1ceb5f49b&v=4
+ url: https://github.com/Karine-Bauch
+ - login: jugeeem
+ avatarUrl: https://avatars.githubusercontent.com/u/116043716?u=ae590d79c38ac79c91b9c5caa6887d061e865a3d&v=4
+ url: https://github.com/jugeeem
+ - login: logic-automation
+ avatarUrl: https://avatars.githubusercontent.com/u/144732884?v=4
+ url: https://github.com/logic-automation
- login: patsatsia
avatarUrl: https://avatars.githubusercontent.com/u/61111267?u=3271b85f7a37b479c8d0ae0a235182e83c166edf&v=4
url: https://github.com/patsatsia
@@ -182,12 +143,9 @@ sponsors:
- login: patricioperezv
avatarUrl: https://avatars.githubusercontent.com/u/73832292?u=5f471f156e19ee7920e62ae0f4a47b95580e61cf&v=4
url: https://github.com/patricioperezv
- - login: mintuhouse
- avatarUrl: https://avatars.githubusercontent.com/u/769950?u=ecfbd79a97d33177e0d093ddb088283cf7fe8444&v=4
- url: https://github.com/mintuhouse
- - login: tcsmith
- avatarUrl: https://avatars.githubusercontent.com/u/989034?u=7d8d741552b3279e8f4d3878679823a705a46f8f&v=4
- url: https://github.com/tcsmith
+ - login: chickenandstats
+ avatarUrl: https://avatars.githubusercontent.com/u/79477966?u=ae2b894aa954070db1d7830dab99b49eba4e4567&v=4
+ url: https://github.com/chickenandstats
- login: dodo5522
avatarUrl: https://avatars.githubusercontent.com/u/1362607?u=9bf1e0e520cccc547c046610c468ce6115bbcf9f&v=4
url: https://github.com/dodo5522
@@ -197,9 +155,6 @@ sponsors:
- login: knallgelb
avatarUrl: https://avatars.githubusercontent.com/u/2358812?u=c48cb6362b309d74cbf144bd6ad3aed3eb443e82&v=4
url: https://github.com/knallgelb
- - login: Shark009
- avatarUrl: https://avatars.githubusercontent.com/u/3163309?u=0c6f4091b0eda05c44c390466199826e6dc6e431&v=4
- url: https://github.com/Shark009
- login: dblackrun
avatarUrl: https://avatars.githubusercontent.com/u/3528486?v=4
url: https://github.com/dblackrun
@@ -215,6 +170,21 @@ sponsors:
- login: anomaly
avatarUrl: https://avatars.githubusercontent.com/u/3654837?v=4
url: https://github.com/anomaly
+ - login: mj0331
+ avatarUrl: https://avatars.githubusercontent.com/u/3890353?u=1c627ac1a024515b4871de5c3ebbfaa1a57f65d4&v=4
+ url: https://github.com/mj0331
+ - login: gorhack
+ avatarUrl: https://avatars.githubusercontent.com/u/4141690?u=ec119ebc4bdf00a7bc84657a71aa17834f4f27f3&v=4
+ url: https://github.com/gorhack
+ - login: Ryandaydev
+ avatarUrl: https://avatars.githubusercontent.com/u/4292423?u=679ff84cb7b988c5795a5fa583857f574a055763&v=4
+ url: https://github.com/Ryandaydev
+ - login: jaredtrog
+ avatarUrl: https://avatars.githubusercontent.com/u/4381365?v=4
+ url: https://github.com/jaredtrog
+ - login: vincentkoc
+ avatarUrl: https://avatars.githubusercontent.com/u/25068?u=fbd5b2d51142daa4bdbc21e21953a3b8b8188a4a&v=4
+ url: https://github.com/vincentkoc
- login: jstanden
avatarUrl: https://avatars.githubusercontent.com/u/63288?u=c3658d57d2862c607a0e19c2101c3c51876e36ad&v=4
url: https://github.com/jstanden
@@ -230,30 +200,21 @@ sponsors:
- login: pamelafox
avatarUrl: https://avatars.githubusercontent.com/u/297042?v=4
url: https://github.com/pamelafox
- - login: ericof
- avatarUrl: https://avatars.githubusercontent.com/u/306014?u=cf7c8733620397e6584a451505581c01c5d842d7&v=4
- url: https://github.com/ericof
- login: wshayes
avatarUrl: https://avatars.githubusercontent.com/u/365303?u=07ca03c5ee811eb0920e633cc3c3db73dbec1aa5&v=4
url: https://github.com/wshayes
- - login: gaetanBloch
- avatarUrl: https://avatars.githubusercontent.com/u/583199?u=50c49e83d6b4feb78a091901ea02ead1462f442b&v=4
- url: https://github.com/gaetanBloch
- login: koxudaxi
avatarUrl: https://avatars.githubusercontent.com/u/630670?u=507d8577b4b3670546b449c4c2ccbc5af40d72f7&v=4
url: https://github.com/koxudaxi
- login: falkben
avatarUrl: https://avatars.githubusercontent.com/u/653031?u=ad9838e089058c9e5a0bab94c0eec7cc181e0cd0&v=4
url: https://github.com/falkben
- - login: TrevorBenson
- avatarUrl: https://avatars.githubusercontent.com/u/9167887?u=dccbea3327a57750923333d8ebf1a0b3f1948949&v=4
- url: https://github.com/TrevorBenson
+ - login: mintuhouse
+ avatarUrl: https://avatars.githubusercontent.com/u/769950?u=ecfbd79a97d33177e0d093ddb088283cf7fe8444&v=4
+ url: https://github.com/mintuhouse
- login: wdwinslow
- avatarUrl: https://avatars.githubusercontent.com/u/11562137?u=dc01daafb354135603a263729e3d26d939c0c452&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/11562137?u=371272f2c69e680e0559a7b0a57385e83a5dc728&v=4
url: https://github.com/wdwinslow
- - login: catherinenelson1
- avatarUrl: https://avatars.githubusercontent.com/u/11951946?u=fe11bc35d36b6038cd46a946e4e46ef8aa5688ab&v=4
- url: https://github.com/catherinenelson1
- login: jsoques
avatarUrl: https://avatars.githubusercontent.com/u/12414216?u=620921d94196546cc8b9eae2cc4cbc3f95bab42f&v=4
url: https://github.com/jsoques
@@ -266,18 +227,18 @@ sponsors:
- login: khadrawy
avatarUrl: https://avatars.githubusercontent.com/u/13686061?u=59f25ef42ecf04c22657aac4238ce0e2d3d30304&v=4
url: https://github.com/khadrawy
- - login: Ryandaydev
- avatarUrl: https://avatars.githubusercontent.com/u/4292423?u=48f68868db8886fce31a1d802c1003914c6cd7c6&v=4
- url: https://github.com/Ryandaydev
- - login: jaredtrog
- avatarUrl: https://avatars.githubusercontent.com/u/4381365?v=4
- url: https://github.com/jaredtrog
+ - login: mjohnsey
+ avatarUrl: https://avatars.githubusercontent.com/u/16784016?u=38fad2e6b411244560b3af99c5f5a4751bc81865&v=4
+ url: https://github.com/mjohnsey
+ - login: ashi-agrawal
+ avatarUrl: https://avatars.githubusercontent.com/u/17105294?u=99c7a854035e5398d8e7b674f2d42baae6c957f8&v=4
+ url: https://github.com/ashi-agrawal
+ - login: RaamEEIL
+ avatarUrl: https://avatars.githubusercontent.com/u/20320552?v=4
+ url: https://github.com/RaamEEIL
- login: oliverxchen
avatarUrl: https://avatars.githubusercontent.com/u/4471774?u=534191f25e32eeaadda22dfab4b0a428733d5489&v=4
url: https://github.com/oliverxchen
- - login: ennui93
- avatarUrl: https://avatars.githubusercontent.com/u/5300907?u=5b5452725ddb391b2caaebf34e05aba873591c3a&v=4
- url: https://github.com/ennui93
- login: ternaus
avatarUrl: https://avatars.githubusercontent.com/u/5481618?u=513a26b02a39e7a28d587cd37c6cc877ea368e6e&v=4
url: https://github.com/ternaus
@@ -285,26 +246,20 @@ sponsors:
avatarUrl: https://avatars.githubusercontent.com/u/5920492?u=208d419cf667b8ac594c82a8db01932c7e50d057&v=4
url: https://github.com/eseglem
- login: FernandoCelmer
- avatarUrl: https://avatars.githubusercontent.com/u/6262214?u=d29fff3fd862fda4ca752079f13f32e84c762ea4&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/6262214?u=58ba6d5888fa7f355934e52db19f950e20b38162&v=4
url: https://github.com/FernandoCelmer
- - login: simw
- avatarUrl: https://avatars.githubusercontent.com/u/6322526?v=4
- url: https://github.com/simw
- login: Rehket
avatarUrl: https://avatars.githubusercontent.com/u/7015688?u=3afb0ba200feebbc7f958950e92db34df2a3c172&v=4
url: https://github.com/Rehket
- login: hiancdtrsnm
avatarUrl: https://avatars.githubusercontent.com/u/7343177?v=4
url: https://github.com/hiancdtrsnm
+- - login: manoelpqueiroz
+ avatarUrl: https://avatars.githubusercontent.com/u/23669137?u=b12e84b28a84369ab5b30bd5a79e5788df5a0756&v=4
+ url: https://github.com/manoelpqueiroz
- - login: pawamoy
avatarUrl: https://avatars.githubusercontent.com/u/3999221?u=b030e4c89df2f3a36bc4710b925bdeb6745c9856&v=4
url: https://github.com/pawamoy
- - login: engineerjoe440
- avatarUrl: https://avatars.githubusercontent.com/u/33275230?u=eb223cad27017bb1e936ee9b429b450d092d0236&v=4
- url: https://github.com/engineerjoe440
- - login: bnkc
- avatarUrl: https://avatars.githubusercontent.com/u/34930566?u=db5e6f4f87836cad26c2aa90ce390ce49041c5a9&v=4
- url: https://github.com/bnkc
- login: petercool
avatarUrl: https://avatars.githubusercontent.com/u/37613029?u=81c525232bb35780945a68e88afd96bb2cdad9c4&v=4
url: https://github.com/petercool
@@ -317,12 +272,12 @@ sponsors:
- login: ArtyomVancyan
avatarUrl: https://avatars.githubusercontent.com/u/44609997?v=4
url: https://github.com/ArtyomVancyan
- - login: TheR1D
- avatarUrl: https://avatars.githubusercontent.com/u/16740832?u=b0dfdbdb27b79729430c71c6128962f77b7b53f7&v=4
- url: https://github.com/TheR1D
- - login: joshuatz
- avatarUrl: https://avatars.githubusercontent.com/u/17817563?u=f1bf05b690d1fc164218f0b420cdd3acb7913e21&v=4
- url: https://github.com/joshuatz
+ - login: caviri
+ avatarUrl: https://avatars.githubusercontent.com/u/45425937?u=4e14bd64282bad8f385eafbdb004b5a279366d6e&v=4
+ url: https://github.com/caviri
+ - login: hgalytoby
+ avatarUrl: https://avatars.githubusercontent.com/u/50397689?u=62c7ff3519858423579676cd0efbd7e3f1ffe63a&v=4
+ url: https://github.com/hgalytoby
- login: SebTota
avatarUrl: https://avatars.githubusercontent.com/u/25122511?v=4
url: https://github.com/SebTota
@@ -338,51 +293,33 @@ sponsors:
- login: rlnchow
avatarUrl: https://avatars.githubusercontent.com/u/28018479?u=a93ca9cf1422b9ece155784a72d5f2fdbce7adff&v=4
url: https://github.com/rlnchow
- - login: dvlpjrs
- avatarUrl: https://avatars.githubusercontent.com/u/32254642?u=fbd6ad0324d4f1eb6231cf775be1c7bd4404e961&v=4
- url: https://github.com/dvlpjrs
- - login: caviri
- avatarUrl: https://avatars.githubusercontent.com/u/45425937?u=4e14bd64282bad8f385eafbdb004b5a279366d6e&v=4
- url: https://github.com/caviri
- - login: hgalytoby
- avatarUrl: https://avatars.githubusercontent.com/u/50397689?u=62c7ff3519858423579676cd0efbd7e3f1ffe63a&v=4
- url: https://github.com/hgalytoby
- - login: conservative-dude
- avatarUrl: https://avatars.githubusercontent.com/u/55538308?u=f250c44942ea6e73a6bd90739b381c470c192c11&v=4
- url: https://github.com/conservative-dude
- - login: CR1337
- avatarUrl: https://avatars.githubusercontent.com/u/62649536?u=57a6aab10d2421a497306da8bcded01b826c54ae&v=4
- url: https://github.com/CR1337
+ - login: engineerjoe440
+ avatarUrl: https://avatars.githubusercontent.com/u/33275230?u=eb223cad27017bb1e936ee9b429b450d092d0236&v=4
+ url: https://github.com/engineerjoe440
+ - login: bnkc
+ avatarUrl: https://avatars.githubusercontent.com/u/34930566?u=db5e6f4f87836cad26c2aa90ce390ce49041c5a9&v=4
+ url: https://github.com/bnkc
+ - login: johnl28
+ avatarUrl: https://avatars.githubusercontent.com/u/54412955?u=47dd06082d1c39caa90c752eb55566e4f3813957&v=4
+ url: https://github.com/johnl28
- login: PunRabbit
avatarUrl: https://avatars.githubusercontent.com/u/70463212?u=1a835cfbc99295a60c8282f6aa6199d1b42241a5&v=4
url: https://github.com/PunRabbit
- login: PelicanQ
avatarUrl: https://avatars.githubusercontent.com/u/77930606?v=4
url: https://github.com/PelicanQ
- - login: tochikuji
- avatarUrl: https://avatars.githubusercontent.com/u/851759?v=4
- url: https://github.com/tochikuji
- - login: browniebroke
- avatarUrl: https://avatars.githubusercontent.com/u/861044?u=5abfca5588f3e906b31583d7ee62f6de4b68aa24&v=4
- url: https://github.com/browniebroke
- login: miguelgr
avatarUrl: https://avatars.githubusercontent.com/u/1484589?u=54556072b8136efa12ae3b6902032ea2a39ace4b&v=4
url: https://github.com/miguelgr
- login: WillHogan
- avatarUrl: https://avatars.githubusercontent.com/u/1661551?u=7036c064cf29781470573865264ec8e60b6b809f&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/1661551?u=8a80356e3e7d5a417157aba7ea565dabc8678327&v=4
url: https://github.com/WillHogan
- login: my3
avatarUrl: https://avatars.githubusercontent.com/u/1825270?v=4
url: https://github.com/my3
- - login: leobiscassi
- avatarUrl: https://avatars.githubusercontent.com/u/1977418?u=f9f82445a847ab479bd7223debd677fcac6c49a0&v=4
- url: https://github.com/leobiscassi
- login: Alisa-lisa
avatarUrl: https://avatars.githubusercontent.com/u/4137964?u=e7e393504f554f4ff15863a1e01a5746863ef9ce&v=4
url: https://github.com/Alisa-lisa
- - login: Graeme22
- avatarUrl: https://avatars.githubusercontent.com/u/4185684?u=498182a42300d7bcd4de1215190cb17eb501136c&v=4
- url: https://github.com/Graeme22
- login: ddanier
avatarUrl: https://avatars.githubusercontent.com/u/113563?u=ed1dc79de72f93bd78581f88ebc6952b62f472da&v=4
url: https://github.com/ddanier
@@ -395,23 +332,14 @@ sponsors:
- login: ceb10n
avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
url: https://github.com/ceb10n
- - login: eteq
- avatarUrl: https://avatars.githubusercontent.com/u/346587?v=4
- url: https://github.com/eteq
- - login: securancy
- avatarUrl: https://avatars.githubusercontent.com/u/606673?v=4
- url: https://github.com/securancy
- - login: moonape1226
- avatarUrl: https://avatars.githubusercontent.com/u/8532038?u=d9f8b855a429fff9397c3833c2ff83849ebf989d&v=4
- url: https://github.com/moonape1226
- - login: msehnout
- avatarUrl: https://avatars.githubusercontent.com/u/9369632?u=8c988f1b008a3f601385a3616f9327820f66e3a5&v=4
- url: https://github.com/msehnout
+ - login: tochikuji
+ avatarUrl: https://avatars.githubusercontent.com/u/851759?v=4
+ url: https://github.com/tochikuji
- login: xncbf
avatarUrl: https://avatars.githubusercontent.com/u/9462045?u=a80a7bb349555b277645632ed66639ff43400614&v=4
url: https://github.com/xncbf
- login: DMantis
- avatarUrl: https://avatars.githubusercontent.com/u/9536869?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/9536869?u=652dd0d49717803c0cbcbf44f7740e53cf2d4892&v=4
url: https://github.com/DMantis
- login: hard-coders
avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4
@@ -425,15 +353,15 @@ sponsors:
- login: pheanex
avatarUrl: https://avatars.githubusercontent.com/u/10408624?u=5b6bab6ee174aa6e991333e06eb29f628741013d&v=4
url: https://github.com/pheanex
- - login: dzoladz
- avatarUrl: https://avatars.githubusercontent.com/u/10561752?u=5ee314d54aa79592c18566827ad8914debd5630d&v=4
- url: https://github.com/dzoladz
- login: Zuzah
avatarUrl: https://avatars.githubusercontent.com/u/10934846?u=1ef43e075ddc87bd1178372bf4d95ee6175cae27&v=4
url: https://github.com/Zuzah
- - login: artempronevskiy
- avatarUrl: https://avatars.githubusercontent.com/u/12235104?u=03df6e1e55c9c6fe5d230adabb8dd7d43d8bbe8f&v=4
- url: https://github.com/artempronevskiy
+ - login: TheR1D
+ avatarUrl: https://avatars.githubusercontent.com/u/16740832?u=b0dfdbdb27b79729430c71c6128962f77b7b53f7&v=4
+ url: https://github.com/TheR1D
+ - login: joshuatz
+ avatarUrl: https://avatars.githubusercontent.com/u/17817563?u=f1bf05b690d1fc164218f0b420cdd3acb7913e21&v=4
+ url: https://github.com/joshuatz
- login: danielunderwood
avatarUrl: https://avatars.githubusercontent.com/u/4472301?v=4
url: https://github.com/danielunderwood
@@ -458,33 +386,54 @@ sponsors:
- login: harsh183
avatarUrl: https://avatars.githubusercontent.com/u/7780198?v=4
url: https://github.com/harsh183
- - login: hcristea
- avatarUrl: https://avatars.githubusercontent.com/u/7814406?u=61d7a4fcf846983a4606788eac25e1c6c1209ba8&v=4
- url: https://github.com/hcristea
-- - login: larsyngvelundin
- avatarUrl: https://avatars.githubusercontent.com/u/34173819?u=74958599695bf83ac9f1addd935a51548a10c6b0&v=4
- url: https://github.com/larsyngvelundin
- - login: andrecorumba
+ - login: moonape1226
+ avatarUrl: https://avatars.githubusercontent.com/u/8532038?u=d9f8b855a429fff9397c3833c2ff83849ebf989d&v=4
+ url: https://github.com/moonape1226
+- - login: andrecorumba
avatarUrl: https://avatars.githubusercontent.com/u/37807517?u=9b9be3b41da9bda60957da9ef37b50dbf65baa61&v=4
url: https://github.com/andrecorumba
+ - login: KOZ39
+ avatarUrl: https://avatars.githubusercontent.com/u/38822500?u=9dfc0a697df1c9628f08e20dc3fb17b1afc4e5a7&v=4
+ url: https://github.com/KOZ39
- login: rwxd
avatarUrl: https://avatars.githubusercontent.com/u/40308458?u=cd04a39e3655923be4f25c2ba8a5a07b3da3230a&v=4
url: https://github.com/rwxd
- - login: sadikkuzu
- avatarUrl: https://avatars.githubusercontent.com/u/23168063?u=d179c06bb9f65c4167fcab118526819f8e0dac17&v=4
- url: https://github.com/sadikkuzu
+ - login: morzan1001
+ avatarUrl: https://avatars.githubusercontent.com/u/47593005?u=c30ab7230f82a12a9b938dcb54f84a996931409a&v=4
+ url: https://github.com/morzan1001
- login: Olegt0rr
avatarUrl: https://avatars.githubusercontent.com/u/25399456?u=3e87b5239a2f4600975ba13be73054f8567c6060&v=4
url: https://github.com/Olegt0rr
- - login: FabulousCodingFox
- avatarUrl: https://avatars.githubusercontent.com/u/78906517?u=924a27cbee3db7e0ece5cc1509921402e1445e74&v=4
- url: https://github.com/FabulousCodingFox
- - login: anqorithm
- avatarUrl: https://avatars.githubusercontent.com/u/61029571?u=468256fa4e2d9ce2870b608299724bebb7a33f18&v=4
- url: https://github.com/anqorithm
- - login: ssbarnea
- avatarUrl: https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4
- url: https://github.com/ssbarnea
+ - login: larsyngvelundin
+ avatarUrl: https://avatars.githubusercontent.com/u/34173819?u=74958599695bf83ac9f1addd935a51548a10c6b0&v=4
+ url: https://github.com/larsyngvelundin
+ - login: v4lerdon
+ avatarUrl: https://avatars.githubusercontent.com/u/98405746?u=10969728d51e8f08e203f5d65fda948c21545c73&v=4
+ url: https://github.com/v4lerdon
+ - login: hauanitech
+ avatarUrl: https://avatars.githubusercontent.com/u/211940501?u=48f70c3ef9b89c598d2dde528cda2d4f6468a135&v=4
+ url: https://github.com/hauanitech
+ - login: igor-kan
+ avatarUrl: https://avatars.githubusercontent.com/u/61065863?u=3bade33799d183510fd381e2e4f5e1b61af8631a&v=4
+ url: https://github.com/igor-kan
+ - login: 0ne-stone
+ avatarUrl: https://avatars.githubusercontent.com/u/62360849?u=746dd21c34e7e06eefb11b03e8bb01aaae3c2a4f&v=4
+ url: https://github.com/0ne-stone
+ - login: t3llscode
+ avatarUrl: https://avatars.githubusercontent.com/u/65864434?u=35df974cec16993343bf6494d60a14e71f66c5af&v=4
+ url: https://github.com/t3llscode
+ - login: nayasinghania
+ avatarUrl: https://avatars.githubusercontent.com/u/74111380?u=752e99a5e139389fdc0a0677122adc08438eb076&v=4
+ url: https://github.com/nayasinghania
+ - login: Toothwitch
+ avatarUrl: https://avatars.githubusercontent.com/u/1710406?u=5eebb23b46cd26e48643b9e5179536cad491c17a&v=4
+ url: https://github.com/Toothwitch
- login: andreagrandi
avatarUrl: https://avatars.githubusercontent.com/u/636391?u=13d90cb8ec313593a5b71fbd4e33b78d6da736f5&v=4
url: https://github.com/andreagrandi
+ - login: sadikkuzu
+ avatarUrl: https://avatars.githubusercontent.com/u/23168063?u=d179c06bb9f65c4167fcab118526819f8e0dac17&v=4
+ url: https://github.com/sadikkuzu
+ - login: roboman-tech
+ avatarUrl: https://avatars.githubusercontent.com/u/8183070?u=fdeaa2ed29f598eb7901693884c0ad32b16982e3&v=4
+ url: https://github.com/roboman-tech
diff --git a/docs/en/data/members.yml b/docs/en/data/members.yml
index cf016eae1d..7ec16e917e 100644
--- a/docs/en/data/members.yml
+++ b/docs/en/data/members.yml
@@ -17,3 +17,6 @@ members:
- login: patrick91
avatar_url: https://avatars.githubusercontent.com/u/667029
url: https://github.com/patrick91
+- login: luzzodev
+ avatar_url: https://avatars.githubusercontent.com/u/27291415
+ url: https://github.com/luzzodev
diff --git a/docs/en/data/people.yml b/docs/en/data/people.yml
index 112567778d..714d2eac72 100644
--- a/docs/en/data/people.yml
+++ b/docs/en/data/people.yml
@@ -1,43 +1,43 @@
maintainers:
- login: tiangolo
- answers: 1894
+ answers: 1898
avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
url: https://github.com/tiangolo
experts:
- login: tiangolo
- count: 1894
+ count: 1898
avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
url: https://github.com/tiangolo
+- login: YuriiMotov
+ count: 952
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
+ url: https://github.com/YuriiMotov
- login: github-actions
- count: 770
+ count: 769
avatarUrl: https://avatars.githubusercontent.com/in/15368?v=4
url: https://github.com/apps/github-actions
- login: Kludex
- count: 644
+ count: 654
avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
url: https://github.com/Kludex
- login: jgould22
- count: 250
+ count: 263
avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
url: https://github.com/jgould22
- login: dmontagu
count: 240
avatarUrl: https://avatars.githubusercontent.com/u/35119617?u=540f30c937a6450812628b9592a1dfe91bbe148e&v=4
url: https://github.com/dmontagu
-- login: YuriiMotov
- count: 223
- avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=e83a39697a2d33ab2ec9bfbced794ee48bc29cec&v=4
- url: https://github.com/YuriiMotov
- login: Mause
count: 219
avatarUrl: https://avatars.githubusercontent.com/u/1405026?v=4
url: https://github.com/Mause
- login: ycd
- count: 217
- avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=29682e4b6ac7d5293742ccf818188394b9a82972&v=4
+ count: 216
+ avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4
url: https://github.com/ycd
- login: JarroVGIT
- count: 192
+ count: 190
avatarUrl: https://avatars.githubusercontent.com/u/13659033?u=e8bea32d07a5ef72f7dde3b2079ceb714923ca05&v=4
url: https://github.com/JarroVGIT
- login: euri10
@@ -46,48 +46,52 @@ experts:
url: https://github.com/euri10
- login: iudeen
count: 128
- avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=2843b3303282bff8b212dcd4d9d6689452e4470c&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4
url: https://github.com/iudeen
- login: phy25
count: 126
avatarUrl: https://avatars.githubusercontent.com/u/331403?v=4
url: https://github.com/phy25
- login: JavierSanchezCastro
- count: 85
+ count: 94
avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
url: https://github.com/JavierSanchezCastro
+- login: luzzodev
+ count: 87
+ avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4
+ url: https://github.com/luzzodev
- login: raphaelauv
count: 83
avatarUrl: https://avatars.githubusercontent.com/u/10202690?u=e6f86f5c0c3026a15d6b51792fa3e532b12f1371&v=4
url: https://github.com/raphaelauv
-- login: ghandic
- count: 71
- avatarUrl: https://avatars.githubusercontent.com/u/23500353?u=e2e1d736f924d9be81e8bfc565b6d8836ba99773&v=4
- url: https://github.com/ghandic
- login: ArcLightSlavik
count: 71
avatarUrl: https://avatars.githubusercontent.com/u/31127044?u=b0f2c37142f4b762e41ad65dc49581813422bd71&v=4
url: https://github.com/ArcLightSlavik
+- login: ghandic
+ count: 71
+ avatarUrl: https://avatars.githubusercontent.com/u/23500353?u=e2e1d736f924d9be81e8bfc565b6d8836ba99773&v=4
+ url: https://github.com/ghandic
- login: n8sty
- count: 66
+ count: 67
avatarUrl: https://avatars.githubusercontent.com/u/2964996?v=4
url: https://github.com/n8sty
- login: falkben
count: 59
avatarUrl: https://avatars.githubusercontent.com/u/653031?u=ad9838e089058c9e5a0bab94c0eec7cc181e0cd0&v=4
url: https://github.com/falkben
-- login: acidjunk
+- login: yinziyan1206
count: 50
- avatarUrl: https://avatars.githubusercontent.com/u/685002?u=b5094ab4527fc84b006c0ac9ff54367bdebb2267&v=4
- url: https://github.com/acidjunk
+ avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4
+ url: https://github.com/yinziyan1206
- login: sm-Fifteen
count: 49
avatarUrl: https://avatars.githubusercontent.com/u/516999?u=437c0c5038558c67e887ccd863c1ba0f846c03da&v=4
url: https://github.com/sm-Fifteen
-- login: yinziyan1206
+- login: acidjunk
count: 49
- avatarUrl: https://avatars.githubusercontent.com/u/37829370?u=da44ca53aefd5c23f346fab8e9fd2e108294c179&v=4
- url: https://github.com/yinziyan1206
+ avatarUrl: https://avatars.githubusercontent.com/u/685002?u=b5094ab4527fc84b006c0ac9ff54367bdebb2267&v=4
+ url: https://github.com/acidjunk
- login: adriangb
count: 46
avatarUrl: https://avatars.githubusercontent.com/u/1755071?u=612704256e38d6ac9cbed24f10e4b6ac2da74ecb&v=4
@@ -100,34 +104,30 @@ experts:
count: 45
avatarUrl: https://avatars.githubusercontent.com/u/16958893?u=f8be7088d5076d963984a21f95f44e559192d912&v=4
url: https://github.com/insomnes
-- login: odiseo0
- count: 43
- avatarUrl: https://avatars.githubusercontent.com/u/87550035?u=241a71f6b7068738b81af3e57f45ffd723538401&v=4
- url: https://github.com/odiseo0
- login: frankie567
count: 43
avatarUrl: https://avatars.githubusercontent.com/u/1144727?u=c159fe047727aedecbbeeaa96a1b03ceb9d39add&v=4
url: https://github.com/frankie567
+- login: odiseo0
+ count: 43
+ avatarUrl: https://avatars.githubusercontent.com/u/87550035?u=241a71f6b7068738b81af3e57f45ffd723538401&v=4
+ url: https://github.com/odiseo0
+- login: sinisaos
+ count: 41
+ avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4
+ url: https://github.com/sinisaos
- login: includeamin
count: 40
avatarUrl: https://avatars.githubusercontent.com/u/11836741?u=8bd5ef7e62fe6a82055e33c4c0e0a7879ff8cfb6&v=4
url: https://github.com/includeamin
-- login: sinisaos
- count: 39
- avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4
- url: https://github.com/sinisaos
-- login: chbndrhnns
- count: 37
- avatarUrl: https://avatars.githubusercontent.com/u/7534547?v=4
- url: https://github.com/chbndrhnns
- login: STeveShary
count: 37
avatarUrl: https://avatars.githubusercontent.com/u/5167622?u=de8f597c81d6336fcebc37b32dfd61a3f877160c&v=4
url: https://github.com/STeveShary
-- login: luzzodev
- count: 36
- avatarUrl: https://avatars.githubusercontent.com/u/27291415?v=4
- url: https://github.com/luzzodev
+- login: chbndrhnns
+ count: 37
+ avatarUrl: https://avatars.githubusercontent.com/u/7534547?v=4
+ url: https://github.com/chbndrhnns
- login: krishnardt
count: 35
avatarUrl: https://avatars.githubusercontent.com/u/31960541?u=47f4829c77f4962ab437ffb7995951e41eeebe9b&v=4
@@ -144,9 +144,13 @@ experts:
count: 27
avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4
url: https://github.com/hasansezertasan
+- login: alv2017
+ count: 26
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
- login: dbanty
count: 26
- avatarUrl: https://avatars.githubusercontent.com/u/43723790?u=9bcce836bbce55835291c5b2ac93a4e311f4b3c3&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/43723790?u=9d726785d08e50b1e1cd96505800c8ea8405bce2&v=4
url: https://github.com/dbanty
- login: wshayes
count: 25
@@ -156,14 +160,14 @@ experts:
count: 23
avatarUrl: https://avatars.githubusercontent.com/u/9435877?u=719327b7d2c4c62212456d771bfa7c6b8dbb9eac&v=4
url: https://github.com/SirTelemak
+- login: connebs
+ count: 22
+ avatarUrl: https://avatars.githubusercontent.com/u/9054108?u=e151d5f545a3395136d711c227c22032fda67cfa&v=4
+ url: https://github.com/connebs
- login: nymous
count: 22
avatarUrl: https://avatars.githubusercontent.com/u/4216559?u=360a36fb602cded27273cbfc0afc296eece90662&v=4
url: https://github.com/nymous
-- login: acnebs
- count: 22
- avatarUrl: https://avatars.githubusercontent.com/u/9054108?v=4
- url: https://github.com/acnebs
- login: chrisK824
count: 22
avatarUrl: https://avatars.githubusercontent.com/u/79946379?u=03d85b22d696a58a9603e55fbbbe2de6b0f4face&v=4
@@ -172,10 +176,6 @@ experts:
count: 21
avatarUrl: https://avatars.githubusercontent.com/u/51059348?u=5fe59a56e1f2f9ccd8005d71752a8276f133ae1a&v=4
url: https://github.com/rafsaf
-- login: ebottos94
- count: 20
- avatarUrl: https://avatars.githubusercontent.com/u/100039558?u=8b91053b3abe4a9209375e3651e1c1ef192d884b&v=4
- url: https://github.com/ebottos94
- login: nsidnev
count: 20
avatarUrl: https://avatars.githubusercontent.com/u/22559461?u=a9cc3238217e21dc8796a1a500f01b722adb082c&v=4
@@ -184,26 +184,30 @@ experts:
count: 20
avatarUrl: https://avatars.githubusercontent.com/u/565544?v=4
url: https://github.com/chris-allnutt
+- login: ebottos94
+ count: 20
+ avatarUrl: https://avatars.githubusercontent.com/u/100039558?u=8b91053b3abe4a9209375e3651e1c1ef192d884b&v=4
+ url: https://github.com/ebottos94
- login: estebanx64
count: 19
avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=45f015f95e1c0f06df602be4ab688d4b854cc8a8&v=4
url: https://github.com/estebanx64
-- login: zoliknemet
+- login: valentinDruzhinin
+ count: 19
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+- login: sehraramiz
count: 18
- avatarUrl: https://avatars.githubusercontent.com/u/22326718?u=31ba446ac290e23e56eea8e4f0c558aaf0b40779&v=4
- url: https://github.com/zoliknemet
+ avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
+ url: https://github.com/sehraramiz
- login: retnikt
count: 18
avatarUrl: https://avatars.githubusercontent.com/u/24581770?v=4
url: https://github.com/retnikt
-- login: sehraramiz
- count: 17
- avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
- url: https://github.com/sehraramiz
-- login: caeser1996
- count: 17
- avatarUrl: https://avatars.githubusercontent.com/u/16540232?u=05d2beb8e034d584d0a374b99d8826327bd7f614&v=4
- url: https://github.com/caeser1996
+- login: zoliknemet
+ count: 18
+ avatarUrl: https://avatars.githubusercontent.com/u/22326718?u=31ba446ac290e23e56eea8e4f0c558aaf0b40779&v=4
+ url: https://github.com/zoliknemet
- login: Hultner
count: 17
avatarUrl: https://avatars.githubusercontent.com/u/2669034?u=115e53df959309898ad8dc9443fbb35fee71df07&v=4
@@ -212,207 +216,304 @@ experts:
count: 17
avatarUrl: https://avatars.githubusercontent.com/u/1765494?u=5b1ab7c582db4b4016fa31affe977d10af108ad4&v=4
url: https://github.com/harunyasar
+- login: caeser1996
+ count: 17
+ avatarUrl: https://avatars.githubusercontent.com/u/16540232?u=05d2beb8e034d584d0a374b99d8826327bd7f614&v=4
+ url: https://github.com/caeser1996
- login: nkhitrov
count: 17
avatarUrl: https://avatars.githubusercontent.com/u/28262306?u=e19427d8dc296d6950e9c424adacc92d37496fe9&v=4
url: https://github.com/nkhitrov
-- login: jonatasoli
- count: 16
- avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=071c062d2861d3dd127f6b4a5258cd8ef55d4c50&v=4
- url: https://github.com/jonatasoli
- login: dstlny
count: 16
avatarUrl: https://avatars.githubusercontent.com/u/41964673?u=9f2174f9d61c15c6e3a4c9e3aeee66f711ce311f&v=4
url: https://github.com/dstlny
-- login: jorgerpo
- count: 15
- avatarUrl: https://avatars.githubusercontent.com/u/12537771?u=7444d20019198e34911082780cc7ad73f2b97cb3&v=4
- url: https://github.com/jorgerpo
-- login: simondale00
- count: 15
- avatarUrl: https://avatars.githubusercontent.com/u/33907262?u=2721fb37014d50daf473267c808aa678ecaefe09&v=4
- url: https://github.com/simondale00
-- login: ghost
- count: 15
- avatarUrl: https://avatars.githubusercontent.com/u/10137?u=b1951d34a583cf12ec0d3b0781ba19be97726318&v=4
- url: https://github.com/ghost
+- login: jonatasoli
+ count: 16
+ avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=f601c3f111f2148bd9244c2cb3ebbd57b592e674&v=4
+ url: https://github.com/jonatasoli
- login: abhint
count: 15
avatarUrl: https://avatars.githubusercontent.com/u/25699289?u=b5d219277b4d001ac26fb8be357fddd88c29d51b&v=4
url: https://github.com/abhint
-- login: pythonweb2
- count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4
- url: https://github.com/pythonweb2
-last_month_experts:
-- login: Kludex
+- login: ghost
count: 15
- avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
- url: https://github.com/Kludex
+ avatarUrl: https://avatars.githubusercontent.com/u/10137?u=b1951d34a583cf12ec0d3b0781ba19be97726318&v=4
+ url: https://github.com/ghost
+- login: jorgerpo
+ count: 15
+ avatarUrl: https://avatars.githubusercontent.com/u/12537771?u=7444d20019198e34911082780cc7ad73f2b97cb3&v=4
+ url: https://github.com/jorgerpo
+last_month_experts:
- login: YuriiMotov
- count: 10
- avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=e83a39697a2d33ab2ec9bfbced794ee48bc29cec&v=4
+ count: 69
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
url: https://github.com/YuriiMotov
-- login: sehraramiz
+- login: luzzodev
count: 8
- avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
- url: https://github.com/sehraramiz
-- login: luzzodev
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/27291415?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4
url: https://github.com/luzzodev
-- login: yokwejuste
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=592c1e42aa0ee5cb94890e0b863e2acc78cc3bbc&v=4
- url: https://github.com/yokwejuste
-- login: alv2017
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
-- login: PREPONDERANCE
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/112809059?u=30ab12dc9ddba2f94ab90e6ad4ad8bc5cfa7fccd&v=4
- url: https://github.com/PREPONDERANCE
-- login: nbx3
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/34649527?u=943812f69e0d40adbd3fa1c9b8ef50dd971a2a45&v=4
- url: https://github.com/nbx3
-- login: XiaoXinYo
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/56395004?u=b3b7cb758997f283c271a581833e407229dab82c&v=4
- url: https://github.com/XiaoXinYo
-- login: iloveitaly
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/150855?v=4
- url: https://github.com/iloveitaly
-three_months_experts:
-- login: luzzodev
- count: 34
- avatarUrl: https://avatars.githubusercontent.com/u/27291415?v=4
- url: https://github.com/luzzodev
-- login: YuriiMotov
- count: 33
- avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=e83a39697a2d33ab2ec9bfbced794ee48bc29cec&v=4
- url: https://github.com/YuriiMotov
-- login: Kludex
- count: 23
- avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
- url: https://github.com/Kludex
-- login: sehraramiz
- count: 10
- avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
- url: https://github.com/sehraramiz
-- login: estebanx64
+- login: valentinDruzhinin
count: 7
- avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=45f015f95e1c0f06df602be4ab688d4b854cc8a8&v=4
- url: https://github.com/estebanx64
-- login: yvallois
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+- login: eqsdxr
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4
+ url: https://github.com/eqsdxr
+- login: Jelle-tenB
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4
+ url: https://github.com/Jelle-tenB
+- login: Garrett-R
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4
+ url: https://github.com/Garrett-R
+three_months_experts:
+- login: YuriiMotov
+ count: 736
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
+ url: https://github.com/YuriiMotov
+- login: luzzodev
+ count: 27
+ avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4
+ url: https://github.com/luzzodev
+- login: valentinDruzhinin
+ count: 19
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+- login: raceychan
count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/36999744?v=4
- url: https://github.com/yvallois
-- login: yokwejuste
+ avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4
+ url: https://github.com/raceychan
+- login: sachinh35
+ count: 6
+ avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4
+ url: https://github.com/sachinh35
+- login: DoctorJohn
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4
+ url: https://github.com/DoctorJohn
+- login: eqsdxr
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=592c1e42aa0ee5cb94890e0b863e2acc78cc3bbc&v=4
- url: https://github.com/yokwejuste
-- login: jgould22
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
- url: https://github.com/jgould22
-- login: alv2017
+ avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4
+ url: https://github.com/eqsdxr
+- login: Jelle-tenB
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
-- login: viniciusCalcantara
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/108818737?u=3d7ffe5808843ee4372f9cc5a559ff1674cf1792&v=4
- url: https://github.com/viniciusCalcantara
-- login: PREPONDERANCE
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/112809059?u=30ab12dc9ddba2f94ab90e6ad4ad8bc5cfa7fccd&v=4
- url: https://github.com/PREPONDERANCE
-- login: nbx3
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/34649527?u=943812f69e0d40adbd3fa1c9b8ef50dd971a2a45&v=4
- url: https://github.com/nbx3
-- login: XiaoXinYo
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/56395004?u=b3b7cb758997f283c271a581833e407229dab82c&v=4
- url: https://github.com/XiaoXinYo
+ avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4
+ url: https://github.com/Jelle-tenB
- login: JavierSanchezCastro
- count: 2
+ count: 3
avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
url: https://github.com/JavierSanchezCastro
-- login: iloveitaly
+- login: purepani
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/150855?v=4
- url: https://github.com/iloveitaly
-- login: LincolnPuzey
+ avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4
+ url: https://github.com/purepani
+- login: tiangolo
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18750802?v=4
- url: https://github.com/LincolnPuzey
-- login: Knighthawk-Leo
+ avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
+ url: https://github.com/tiangolo
+- login: TaigoFr
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/72437494?u=27c68db94a3107b605e603cc136f4ba83f0106d5&v=4
- url: https://github.com/Knighthawk-Leo
-- login: gelezo43
+ avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4
+ url: https://github.com/TaigoFr
+- login: Garrett-R
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/40732698?u=611f39d3c1d2f4207a590937a78c1f10eed6232c&v=4
- url: https://github.com/gelezo43
-- login: dbfreem
+ avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4
+ url: https://github.com/Garrett-R
+- login: henrymcl
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/9778569?u=f2f1e9135b5e4f1b0c6821a548b17f97572720fc&v=4
- url: https://github.com/dbfreem
-- login: AliYmn
+ avatarUrl: https://avatars.githubusercontent.com/u/26480299?v=4
+ url: https://github.com/henrymcl
+- login: jymchng
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18416653?u=98c1fca46c7e4dabe8c39d17b5e55d1511d41cf9&v=4
- url: https://github.com/AliYmn
-- login: RichieB2B
+ avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4
+ url: https://github.com/jymchng
+- login: Brikas
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1461970?u=edaa57d1077705244ea5c9244f4783d94ff11f12&v=4
- url: https://github.com/RichieB2B
-- login: Synrom
+ avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4
+ url: https://github.com/Brikas
+- login: davidhuser
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/30272537?v=4
- url: https://github.com/Synrom
-- login: iiotsrc
+ avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4
+ url: https://github.com/davidhuser
+- login: Kludex
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/131771119?u=bcaf2559ef6266af70b151b7fda31a1ee3dbecb3&v=4
- url: https://github.com/iiotsrc
-- login: Kfir-G
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/57500876?u=0cd29db046a17f12f382d398141319fca7ff230a&v=4
- url: https://github.com/Kfir-G
+ avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
+ url: https://github.com/Kludex
six_months_experts:
- login: YuriiMotov
- count: 72
- avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=e83a39697a2d33ab2ec9bfbced794ee48bc29cec&v=4
+ count: 754
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
url: https://github.com/YuriiMotov
+- login: luzzodev
+ count: 51
+ avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4
+ url: https://github.com/luzzodev
+- login: alv2017
+ count: 23
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
+- login: valentinDruzhinin
+ count: 19
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+- login: jgould22
+ count: 13
+ avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
+ url: https://github.com/jgould22
- login: Kludex
- count: 39
+ count: 11
+ avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
+ url: https://github.com/Kludex
+- login: JavierSanchezCastro
+ count: 10
+ avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
+ url: https://github.com/JavierSanchezCastro
+- login: sachinh35
+ count: 9
+ avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4
+ url: https://github.com/sachinh35
+- login: yauhen-sobaleu
+ count: 9
+ avatarUrl: https://avatars.githubusercontent.com/u/51629535?u=fc1817060daf2df438bfca86c44f33da5cd667db&v=4
+ url: https://github.com/yauhen-sobaleu
+- login: tiangolo
+ count: 8
+ avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
+ url: https://github.com/tiangolo
+- login: raceychan
+ count: 6
+ avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4
+ url: https://github.com/raceychan
+- login: DoctorJohn
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4
+ url: https://github.com/DoctorJohn
+- login: eqsdxr
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4
+ url: https://github.com/eqsdxr
+- login: Jelle-tenB
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4
+ url: https://github.com/Jelle-tenB
+- login: SobikXexe
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/87701130?v=4
+ url: https://github.com/SobikXexe
+- login: purepani
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4
+ url: https://github.com/purepani
+- login: WilliamDEdwards
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/12184311?u=9b29d5d1d71f5f1a7ef9e439963ad3529e3b33a4&v=4
+ url: https://github.com/WilliamDEdwards
+- login: TaigoFr
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4
+ url: https://github.com/TaigoFr
+- login: Garrett-R
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4
+ url: https://github.com/Garrett-R
+- login: EverStarck
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/51029456?u=343409b7cb6b3ea6a59359f4e8370d9c3f140ecd&v=4
+ url: https://github.com/EverStarck
+- login: henrymcl
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/26480299?v=4
+ url: https://github.com/henrymcl
+- login: jymchng
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4
+ url: https://github.com/jymchng
+- login: adsouza
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/275832?v=4
+ url: https://github.com/adsouza
+- login: Brikas
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4
+ url: https://github.com/Brikas
+- login: JacobHayes
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/2555532?u=354a525847a276bbb4426b0c95791a8ba5970f9b&v=4
+ url: https://github.com/JacobHayes
+- login: davidhuser
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4
+ url: https://github.com/davidhuser
+- login: PidgeyBE
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/19860056?u=47b584eb1c1ab45e31c1b474109a962d7e82be49&v=4
+ url: https://github.com/PidgeyBE
+- login: KianAnbarestani
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/145364424?u=dcc3d8fb4ca07d36fb52a17f38b6650565de40be&v=4
+ url: https://github.com/KianAnbarestani
+- login: sinisaos
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4
+ url: https://github.com/sinisaos
+- login: Ale-Cas
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/64859146?u=d52a6ecf8d83d2927e2ae270bdfcc83495dba8c9&v=4
+ url: https://github.com/Ale-Cas
+- login: marsboy02
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/86903678?u=04cc319d6605f8d1ba3a0bed9f4f55a582719ae6&v=4
+ url: https://github.com/marsboy02
+- login: vtgn
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/112889052?v=4
+ url: https://github.com/vtgn
+one_year_experts:
+- login: YuriiMotov
+ count: 820
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
+ url: https://github.com/YuriiMotov
+- login: luzzodev
+ count: 87
+ avatarUrl: https://avatars.githubusercontent.com/u/27291415?u=5607ae1ce75c5f54f09500ca854227f7bfd2033b&v=4
+ url: https://github.com/luzzodev
+- login: Kludex
+ count: 51
avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
url: https://github.com/Kludex
- login: sinisaos
- count: 37
+ count: 39
avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4
url: https://github.com/sinisaos
-- login: luzzodev
- count: 36
- avatarUrl: https://avatars.githubusercontent.com/u/27291415?v=4
- url: https://github.com/luzzodev
- login: JavierSanchezCastro
- count: 16
+ count: 26
avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
url: https://github.com/JavierSanchezCastro
+- login: alv2017
+ count: 26
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
- login: tiangolo
- count: 13
+ count: 21
avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
url: https://github.com/tiangolo
+- login: valentinDruzhinin
+ count: 19
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+- login: jgould22
+ count: 17
+ avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
+ url: https://github.com/jgould22
- login: Kfir-G
count: 13
avatarUrl: https://avatars.githubusercontent.com/u/57500876?u=0cd29db046a17f12f382d398141319fca7ff230a&v=4
url: https://github.com/Kfir-G
- login: sehraramiz
- count: 10
+ count: 11
avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
url: https://github.com/sehraramiz
- login: estebanx64
@@ -420,57 +521,93 @@ six_months_experts:
avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=45f015f95e1c0f06df602be4ab688d4b854cc8a8&v=4
url: https://github.com/estebanx64
- login: ceb10n
- count: 9
+ count: 10
avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
url: https://github.com/ceb10n
-- login: yvallois
- count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/36999744?v=4
- url: https://github.com/yvallois
+- login: sachinh35
+ count: 9
+ avatarUrl: https://avatars.githubusercontent.com/u/21972708?u=8560b97b8b41e175f476270b56de8a493b84f302&v=4
+ url: https://github.com/sachinh35
+- login: yauhen-sobaleu
+ count: 9
+ avatarUrl: https://avatars.githubusercontent.com/u/51629535?u=fc1817060daf2df438bfca86c44f33da5cd667db&v=4
+ url: https://github.com/yauhen-sobaleu
- login: n8sty
- count: 6
+ count: 7
avatarUrl: https://avatars.githubusercontent.com/u/2964996?v=4
url: https://github.com/n8sty
+- login: yvallois
+ count: 7
+ avatarUrl: https://avatars.githubusercontent.com/u/36999744?v=4
+ url: https://github.com/yvallois
+- login: raceychan
+ count: 6
+ avatarUrl: https://avatars.githubusercontent.com/u/75417963?u=060c62870ec5a791765e63ac20d8885d11143786&v=4
+ url: https://github.com/raceychan
+- login: DoctorJohn
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/14076775?u=2913e70a6142772847e91e2aaa5b9152391715e9&v=4
+ url: https://github.com/DoctorJohn
+- login: eqsdxr
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4
+ url: https://github.com/eqsdxr
- login: TomFaulkner
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/14956620?v=4
url: https://github.com/TomFaulkner
- login: yokwejuste
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=592c1e42aa0ee5cb94890e0b863e2acc78cc3bbc&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=4ba43bd63c169b5c015137d8916752a44001445a&v=4
url: https://github.com/yokwejuste
-- login: jgould22
+- login: svlandeg
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
- url: https://github.com/jgould22
-- login: alv2017
+ avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
+ url: https://github.com/svlandeg
+- login: mattmess1221
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
+ avatarUrl: https://avatars.githubusercontent.com/u/3409962?u=d22ea18aa8ea688af25a45df306134d593621a44&v=4
+ url: https://github.com/mattmess1221
+- login: Jelle-tenB
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/210023470?u=c25d66addf36a747bd9fab773c4a6e7b238f45d4&v=4
+ url: https://github.com/Jelle-tenB
+- login: pythonweb2
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4
+ url: https://github.com/pythonweb2
- login: viniciusCalcantara
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/108818737?u=3d7ffe5808843ee4372f9cc5a559ff1674cf1792&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/108818737?u=80f3ec7427fa6a41d5896984d0c526432f2299fa&v=4
url: https://github.com/viniciusCalcantara
-- login: pawelad
+- login: davidhuser
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/7062874?u=d27dc220545a8401ad21840590a97d474d7101e6&v=4
- url: https://github.com/pawelad
-- login: dbfreem
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/9778569?u=f2f1e9135b5e4f1b0c6821a548b17f97572720fc&v=4
- url: https://github.com/dbfreem
-- login: Isuxiz
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/48672727?u=34d7b4ade252687d22a27cf53037b735b244bfc1&v=4
- url: https://github.com/Isuxiz
+ avatarUrl: https://avatars.githubusercontent.com/u/4357648?u=6ed702f8f6d49a8b2a0ed33cbd8ab59c2d7db7f7&v=4
+ url: https://github.com/davidhuser
- login: bertomaniac
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/10235051?u=14484a96833228a7b29fee4a7916d411c242c4f6&v=4
url: https://github.com/bertomaniac
+- login: dbfreem
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/9778569?u=f2f1e9135b5e4f1b0c6821a548b17f97572720fc&v=4
+ url: https://github.com/dbfreem
- login: PhysicallyActive
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/160476156?u=7a8e44f4a43d3bba636f795bb7d9476c9233b4d8&v=4
url: https://github.com/PhysicallyActive
+- login: SobikXexe
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/87701130?v=4
+ url: https://github.com/SobikXexe
+- login: pawelad
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/7062874?u=d27dc220545a8401ad21840590a97d474d7101e6&v=4
+ url: https://github.com/pawelad
+- login: Isuxiz
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/48672727?u=34d7b4ade252687d22a27cf53037b735b244bfc1&v=4
+ url: https://github.com/Isuxiz
- login: Minibrams
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/8108085?u=b028dbc308fa8485e0e2e9402b3d03d8deb22bf9&v=4
@@ -479,388 +616,99 @@ six_months_experts:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/88404339?u=2a80d80b054e9228391e32fb9bb39571509dab6a&v=4
url: https://github.com/AIdjis
-- login: svlandeg
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
- url: https://github.com/svlandeg
-- login: PREPONDERANCE
+- login: dolfinus
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/112809059?u=30ab12dc9ddba2f94ab90e6ad4ad8bc5cfa7fccd&v=4
- url: https://github.com/PREPONDERANCE
-- login: nbx3
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/34649527?u=943812f69e0d40adbd3fa1c9b8ef50dd971a2a45&v=4
- url: https://github.com/nbx3
-- login: yanggeorge
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/2434407?v=4
- url: https://github.com/yanggeorge
-- login: XiaoXinYo
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/56395004?u=b3b7cb758997f283c271a581833e407229dab82c&v=4
- url: https://github.com/XiaoXinYo
-- login: pythonweb2
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4
- url: https://github.com/pythonweb2
+ avatarUrl: https://avatars.githubusercontent.com/u/4661021?u=ed5ddadcf36d9b943ebe61febe0b96ee34e5425d&v=4
+ url: https://github.com/dolfinus
- login: slafs
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/210173?v=4
url: https://github.com/slafs
-- login: AmirHmZz
+- login: purepani
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/38752106?u=07f80e451bda00a9492bbc764e49d24ad3ada8cc&v=4
- url: https://github.com/AmirHmZz
-- login: iloveitaly
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/150855?v=4
- url: https://github.com/iloveitaly
-- login: LincolnPuzey
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18750802?v=4
- url: https://github.com/LincolnPuzey
-- login: alejsdev
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=356f39ff3f0211c720b06d3dbb060e98884085e3&v=4
- url: https://github.com/alejsdev
-- login: Knighthawk-Leo
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/72437494?u=27c68db94a3107b605e603cc136f4ba83f0106d5&v=4
- url: https://github.com/Knighthawk-Leo
-- login: gelezo43
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/40732698?u=611f39d3c1d2f4207a590937a78c1f10eed6232c&v=4
- url: https://github.com/gelezo43
-- login: christiansicari
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/29756552?v=4
- url: https://github.com/christiansicari
-- login: 1001pepi
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/82064861?u=8c6ffdf2275d6970a07294752c545cd2702c57d3&v=4
- url: https://github.com/1001pepi
-- login: AliYmn
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18416653?u=98c1fca46c7e4dabe8c39d17b5e55d1511d41cf9&v=4
- url: https://github.com/AliYmn
-- login: RichieB2B
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1461970?u=edaa57d1077705244ea5c9244f4783d94ff11f12&v=4
- url: https://github.com/RichieB2B
-- login: Synrom
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/30272537?v=4
- url: https://github.com/Synrom
-- login: ecly
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/8410422?v=4
- url: https://github.com/ecly
-- login: iiotsrc
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/131771119?u=bcaf2559ef6266af70b151b7fda31a1ee3dbecb3&v=4
- url: https://github.com/iiotsrc
-- login: simondale00
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/33907262?u=2721fb37014d50daf473267c808aa678ecaefe09&v=4
- url: https://github.com/simondale00
-- login: jd-solanki
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/47495003?u=6e225cb42c688d0cd70e65c6baedb9f5922b1178&v=4
- url: https://github.com/jd-solanki
-- login: AumGupta
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/86357151?u=7d05aa606c0611a18f4db16cf26361ce10a6e195&v=4
- url: https://github.com/AumGupta
-- login: DeoLeung
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/3764720?u=4c222ef513814de4c7fb3736d0a7adf11d953d43&v=4
- url: https://github.com/DeoLeung
-- login: Reemyos
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/44867003?v=4
- url: https://github.com/Reemyos
-- login: deight93
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/37678115?u=a608798b5bd0034183a9c430ebb42fb266db86ce&v=4
- url: https://github.com/deight93
-- login: Jkrox
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/83181939?u=d6a922d97129f7f3916d6a1c166bc011b3a72b7f&v=4
- url: https://github.com/Jkrox
-- login: mmzeynalli
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/33568903?u=19efd0c0722730b83a70b7c86c36e5b7d83e07d2&v=4
- url: https://github.com/mmzeynalli
+ avatarUrl: https://avatars.githubusercontent.com/u/7587353?v=4
+ url: https://github.com/purepani
- login: ddahan
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/1933516?u=1d200a620e8d6841df017e9f2bb7efb58b580f40&v=4
url: https://github.com/ddahan
-- login: jfeaver
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1091338?u=0bcba366447d8fadad63f6705a52d128da4c7ec2&v=4
- url: https://github.com/jfeaver
-- login: Wurstnase
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/8709415?u=f479af475a97aee9a1dab302cfc35d07e9ea245f&v=4
- url: https://github.com/Wurstnase
-- login: tristan
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1412?u=aab8aaa4cc0f1210ac45fc93873a5909d314c965&v=4
- url: https://github.com/tristan
-- login: chandanch
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/8663552?u=afc484bc0a952c83f1fb6a1583cda443f807cd66&v=4
- url: https://github.com/chandanch
-- login: rvishruth
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/79176273?v=4
- url: https://github.com/rvishruth
-- login: mattmess1221
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/3409962?u=723662989f2027755e67d200137c13c53ae154ac&v=4
- url: https://github.com/mattmess1221
-- login: meower1
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/109747197?u=0a5cc2a6ae74e558f0afc2874da85132e5953d8b&v=4
- url: https://github.com/meower1
-one_year_experts:
-- login: YuriiMotov
- count: 223
- avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=e83a39697a2d33ab2ec9bfbced794ee48bc29cec&v=4
- url: https://github.com/YuriiMotov
-- login: Kludex
- count: 83
- avatarUrl: https://avatars.githubusercontent.com/u/7353520?u=df8a3f06ba8f55ae1967a3e2d5ed882903a4e330&v=4
- url: https://github.com/Kludex
-- login: JavierSanchezCastro
- count: 47
- avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
- url: https://github.com/JavierSanchezCastro
-- login: jgould22
- count: 42
- avatarUrl: https://avatars.githubusercontent.com/u/4335847?u=ed77f67e0bb069084639b24d812dbb2a2b1dc554&v=4
- url: https://github.com/jgould22
-- login: sinisaos
- count: 39
- avatarUrl: https://avatars.githubusercontent.com/u/30960668?v=4
- url: https://github.com/sinisaos
-- login: luzzodev
- count: 36
- avatarUrl: https://avatars.githubusercontent.com/u/27291415?v=4
- url: https://github.com/luzzodev
-- login: tiangolo
- count: 24
- avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
- url: https://github.com/tiangolo
-- login: n8sty
- count: 23
- avatarUrl: https://avatars.githubusercontent.com/u/2964996?v=4
- url: https://github.com/n8sty
-- login: estebanx64
- count: 19
- avatarUrl: https://avatars.githubusercontent.com/u/10840422?u=45f015f95e1c0f06df602be4ab688d4b854cc8a8&v=4
- url: https://github.com/estebanx64
-- login: sehraramiz
- count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/14166324?u=8fac65e84dfff24245d304a5b5b09f7b5bd69dc9&v=4
- url: https://github.com/sehraramiz
-- login: PhysicallyActive
- count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/160476156?u=7a8e44f4a43d3bba636f795bb7d9476c9233b4d8&v=4
- url: https://github.com/PhysicallyActive
-- login: ceb10n
- count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
- url: https://github.com/ceb10n
-- login: Kfir-G
- count: 13
- avatarUrl: https://avatars.githubusercontent.com/u/57500876?u=0cd29db046a17f12f382d398141319fca7ff230a&v=4
- url: https://github.com/Kfir-G
-- login: mattmess1221
- count: 11
- avatarUrl: https://avatars.githubusercontent.com/u/3409962?u=723662989f2027755e67d200137c13c53ae154ac&v=4
- url: https://github.com/mattmess1221
-- login: hasansezertasan
- count: 10
- avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4
- url: https://github.com/hasansezertasan
-- login: AIdjis
- count: 8
- avatarUrl: https://avatars.githubusercontent.com/u/88404339?u=2a80d80b054e9228391e32fb9bb39571509dab6a&v=4
- url: https://github.com/AIdjis
-- login: yvallois
- count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/36999744?v=4
- url: https://github.com/yvallois
-- login: PREPONDERANCE
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/112809059?u=30ab12dc9ddba2f94ab90e6ad4ad8bc5cfa7fccd&v=4
- url: https://github.com/PREPONDERANCE
-- login: pythonweb2
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/32141163?v=4
- url: https://github.com/pythonweb2
-- login: acidjunk
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/685002?u=b5094ab4527fc84b006c0ac9ff54367bdebb2267&v=4
- url: https://github.com/acidjunk
-- login: gustavosett
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/99373133?u=1739ca547c3d200f1b72450520bce46a97aab184&v=4
- url: https://github.com/gustavosett
-- login: binbjz
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/8213913?u=22b68b7a0d5bf5e09c02084c0f5f53d7503114cd&v=4
- url: https://github.com/binbjz
-- login: chyok
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/32629225?u=3b7c30e8a09426a1b9284f6e8a0ae53a525596bf&v=4
- url: https://github.com/chyok
-- login: TomFaulkner
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/14956620?v=4
- url: https://github.com/TomFaulkner
-- login: yokwejuste
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/71908316?u=592c1e42aa0ee5cb94890e0b863e2acc78cc3bbc&v=4
- url: https://github.com/yokwejuste
-- login: DeoLeung
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/3764720?u=4c222ef513814de4c7fb3736d0a7adf11d953d43&v=4
- url: https://github.com/DeoLeung
-- login: flo-at
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/564288?v=4
- url: https://github.com/flo-at
-- login: GodMoonGoodman
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/29688727?u=7b251da620d999644c37c1feeb292d033eed7ad6&v=4
- url: https://github.com/GodMoonGoodman
-- login: bertomaniac
- count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/10235051?u=14484a96833228a7b29fee4a7916d411c242c4f6&v=4
- url: https://github.com/bertomaniac
-- login: alv2017
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
-- login: msehnout
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/9369632?u=8c988f1b008a3f601385a3616f9327820f66e3a5&v=4
- url: https://github.com/msehnout
-- login: viniciusCalcantara
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/108818737?u=3d7ffe5808843ee4372f9cc5a559ff1674cf1792&v=4
- url: https://github.com/viniciusCalcantara
-- login: pawelad
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/7062874?u=d27dc220545a8401ad21840590a97d474d7101e6&v=4
- url: https://github.com/pawelad
-- login: ThirVondukr
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/50728601?u=167c0bd655e52817082e50979a86d2f98f95b1a3&v=4
- url: https://github.com/ThirVondukr
-- login: dbfreem
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/9778569?u=f2f1e9135b5e4f1b0c6821a548b17f97572720fc&v=4
- url: https://github.com/dbfreem
-- login: Isuxiz
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/48672727?u=34d7b4ade252687d22a27cf53037b735b244bfc1&v=4
- url: https://github.com/Isuxiz
-- login: angely-dev
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/4362224?v=4
- url: https://github.com/angely-dev
-- login: deight93
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/37678115?u=a608798b5bd0034183a9c430ebb42fb266db86ce&v=4
- url: https://github.com/deight93
-- login: mmzeynalli
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/33568903?u=19efd0c0722730b83a70b7c86c36e5b7d83e07d2&v=4
- url: https://github.com/mmzeynalli
-- login: Minibrams
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/8108085?u=b028dbc308fa8485e0e2e9402b3d03d8deb22bf9&v=4
- url: https://github.com/Minibrams
-- login: ryanisn
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/53449841?v=4
- url: https://github.com/ryanisn
-- login: svlandeg
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
- url: https://github.com/svlandeg
-- login: alexandercronin
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/8014288?u=69580504c51a0cdd756fc47b23bb7f404bd694e7&v=4
- url: https://github.com/alexandercronin
-- login: aanchlia
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/2835374?u=3c3ed29aa8b09ccaf8d66def0ce82bc2f7e5aab6&v=4
- url: https://github.com/aanchlia
-- login: chrisK824
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/79946379?u=03d85b22d696a58a9603e55fbbbe2de6b0f4face&v=4
- url: https://github.com/chrisK824
-- login: omarcruzpantoja
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/15116058?u=4b64c643fad49225d854e1aaecd1ffc6f9071a1b&v=4
- url: https://github.com/omarcruzpantoja
-- login: ahmedabdou14
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/104530599?u=d87b866e7c1db970d6f8e8031643818349b046d5&v=4
- url: https://github.com/ahmedabdou14
-- login: nbx3
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/34649527?u=943812f69e0d40adbd3fa1c9b8ef50dd971a2a45&v=4
- url: https://github.com/nbx3
- login: yanggeorge
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/2434407?v=4
url: https://github.com/yanggeorge
-- login: XiaoXinYo
+- login: WilliamDEdwards
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/56395004?u=b3b7cb758997f283c271a581833e407229dab82c&v=4
- url: https://github.com/XiaoXinYo
-- login: anantgupta129
+ avatarUrl: https://avatars.githubusercontent.com/u/12184311?u=9b29d5d1d71f5f1a7ef9e439963ad3529e3b33a4&v=4
+ url: https://github.com/WilliamDEdwards
+- login: TaigoFr
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/66518357?u=6e25dcd84638f17d2c6df5dc26f07fd7c6dc118e&v=4
- url: https://github.com/anantgupta129
-- login: slafs
+ avatarUrl: https://avatars.githubusercontent.com/u/17792131?u=372b27056ec82f1ae03d8b3f37ef55b04a7cfdd1&v=4
+ url: https://github.com/TaigoFr
+- login: Garrett-R
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/210173?v=4
- url: https://github.com/slafs
-- login: CarlosOliveira-23
+ avatarUrl: https://avatars.githubusercontent.com/u/6614695?u=c128fd775002882f6e391bda5a89d1bdc5bdf45f&v=4
+ url: https://github.com/Garrett-R
+- login: mmzeynalli
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/102637302?u=cf350a4db956f30cbb2c27d3be0d15c282e32b14&v=4
- url: https://github.com/CarlosOliveira-23
-- login: monchin
+ avatarUrl: https://avatars.githubusercontent.com/u/33568903?u=19efd0c0722730b83a70b7c86c36e5b7d83e07d2&v=4
+ url: https://github.com/mmzeynalli
+- login: jd-solanki
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18521800?v=4
- url: https://github.com/monchin
-- login: AmirHmZz
+ avatarUrl: https://avatars.githubusercontent.com/u/47495003?u=6e225cb42c688d0cd70e65c6baedb9f5922b1178&v=4
+ url: https://github.com/jd-solanki
+- login: EverStarck
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/38752106?u=07f80e451bda00a9492bbc764e49d24ad3ada8cc&v=4
- url: https://github.com/AmirHmZz
-- login: Leon0824
+ avatarUrl: https://avatars.githubusercontent.com/u/51029456?u=343409b7cb6b3ea6a59359f4e8370d9c3f140ecd&v=4
+ url: https://github.com/EverStarck
+- login: henrymcl
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1922026?v=4
- url: https://github.com/Leon0824
+ avatarUrl: https://avatars.githubusercontent.com/u/26480299?v=4
+ url: https://github.com/henrymcl
+- login: jymchng
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/27895426?u=fb88c47775147d62a395fdb895d1af4148c7b566&v=4
+ url: https://github.com/jymchng
+- login: adsouza
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/275832?v=4
+ url: https://github.com/adsouza
+- login: Synrom
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/30272537?v=4
+ url: https://github.com/Synrom
+- login: gaby
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/835733?u=8c72dec16fa560bdc81113354f2ffd79ad062bde&v=4
+ url: https://github.com/gaby
+- login: christiansicari
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/29756552?v=4
+ url: https://github.com/christiansicari
+- login: Brikas
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/80290187?v=4
+ url: https://github.com/Brikas
+- login: JacobHayes
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/2555532?u=354a525847a276bbb4426b0c95791a8ba5970f9b&v=4
+ url: https://github.com/JacobHayes
+- login: rlimberger
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/4841242?u=6a13252caf3cedceb07b6e2775b6592445d13b70&v=4
+ url: https://github.com/rlimberger
- login: iloveitaly
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/150855?v=4
url: https://github.com/iloveitaly
-- login: msukmanowsky
+- login: iiotsrc
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/362755?u=782e6bf5b9f0356c3f74b4d894fda9f179252086&v=4
- url: https://github.com/msukmanowsky
-- login: shurshilov
+ avatarUrl: https://avatars.githubusercontent.com/u/131771119?u=bcaf2559ef6266af70b151b7fda31a1ee3dbecb3&v=4
+ url: https://github.com/iiotsrc
+- login: AmirHmZz
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/11828278?u=6bcadc5ce4f2f56a514331c9f68eb987d4afe29a&v=4
- url: https://github.com/shurshilov
-- login: LincolnPuzey
+ avatarUrl: https://avatars.githubusercontent.com/u/38752106?u=07f80e451bda00a9492bbc764e49d24ad3ada8cc&v=4
+ url: https://github.com/AmirHmZz
+- login: PidgeyBE
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/18750802?v=4
- url: https://github.com/LincolnPuzey
+ avatarUrl: https://avatars.githubusercontent.com/u/19860056?u=47b584eb1c1ab45e31c1b474109a962d7e82be49&v=4
+ url: https://github.com/PidgeyBE
diff --git a/docs/en/data/sponsors.yml b/docs/en/data/sponsors.yml
index 4231452e45..2b3cd282d0 100644
--- a/docs/en/data/sponsors.yml
+++ b/docs/en/data/sponsors.yml
@@ -5,26 +5,14 @@ gold:
- url: https://platform.sh/try-it-now/?utm_source=fastapi-signup&utm_medium=banner&utm_campaign=FastAPI-signup-June-2023
title: "Build, run and scale your apps on a modern, reliable, and secure PaaS."
img: https://fastapi.tiangolo.com/img/sponsors/platform-sh.png
- - url: https://www.porter.run
- title: Deploy FastAPI on AWS with a few clicks
- img: https://fastapi.tiangolo.com/img/sponsors/porter.png
- - url: https://bump.sh/fastapi?utm_source=fastapi&utm_medium=referral&utm_campaign=sponsor
- title: Automate FastAPI documentation generation with Bump.sh
- img: https://fastapi.tiangolo.com/img/sponsors/bump-sh.svg
- url: https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge
title: "Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files"
img: https://fastapi.tiangolo.com/img/sponsors/scalar.svg
- url: https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge
title: Auth, user management and more for your B2B product
img: https://fastapi.tiangolo.com/img/sponsors/propelauth.png
- - url: https://www.withcoherence.com/?utm_medium=advertising&utm_source=fastapi&utm_campaign=website
- title: Coherence
- img: https://fastapi.tiangolo.com/img/sponsors/coherence.png
- - url: https://www.mongodb.com/developer/languages/python/python-quickstart-fastapi/?utm_campaign=fastapi_framework&utm_source=fastapi_sponsorship&utm_medium=web_referral
- title: Simplify Full Stack Development with FastAPI & MongoDB
- img: https://fastapi.tiangolo.com/img/sponsors/mongodb.png
- url: https://zuplo.link/fastapi-gh
- title: 'Zuplo: Scale, Protect, Document, and Monetize your FastAPI'
+ title: 'Zuplo: Deploy, Secure, Document, and Monetize your FastAPI'
img: https://fastapi.tiangolo.com/img/sponsors/zuplo.png
- url: https://liblab.com?utm_source=fastapi
title: liblab - Generate SDKs from FastAPI
@@ -32,14 +20,23 @@ gold:
- url: https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi
title: Deploy & scale any full-stack web app on Render. Focus on building apps, not infra.
img: https://fastapi.tiangolo.com/img/sponsors/render.svg
+ - url: https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=badge&utm_campaign=fastapi
+ title: Cut Code Review Time & Bugs in Half with CodeRabbit
+ img: https://fastapi.tiangolo.com/img/sponsors/coderabbit.png
+ - url: https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source
+ title: The Gold Standard in Retail Account Linking
+ img: https://fastapi.tiangolo.com/img/sponsors/subtotal.svg
+ - url: https://vibe.mobb.ai/?utm_source=Fast+APi&utm_medium=Image&utm_campaign=MVS
+ title: Secure Your AI-Generated Code to Unlock Dev Productivity
+ img: https://fastapi.tiangolo.com/img/sponsors/mobbai.png
+ - url: https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi
+ title: Deploy enterprise applications at startup speed
+ img: https://fastapi.tiangolo.com/img/sponsors/railway.png
silver:
- - url: https://github.com/deepset-ai/haystack/
- title: Build powerful search from composable, open source building blocks
- img: https://fastapi.tiangolo.com/img/sponsors/haystack-fastapi.svg
- - url: https://databento.com/
+ - url: https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display
title: Pay as you go for market data
img: https://fastapi.tiangolo.com/img/sponsors/databento.svg
- - url: https://speakeasy.com?utm_source=fastapi+repo&utm_medium=github+sponsorship
+ - url: https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship
title: SDKs for your API | Speakeasy
img: https://fastapi.tiangolo.com/img/sponsors/speakeasy.png
- url: https://www.svix.com/
@@ -48,10 +45,22 @@ silver:
- url: https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral
title: Stainless | Generate best-in-class SDKs
img: https://fastapi.tiangolo.com/img/sponsors/stainless.png
+ - url: https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi
+ title: Fine-Grained Authorization for FastAPI
+ img: https://fastapi.tiangolo.com/img/sponsors/permit.png
+ - url: https://www.interviewpal.com/?utm_source=fastapi&utm_medium=open-source&utm_campaign=dev-hiring
+ title: InterviewPal - AI Interview Coach for Engineers and Devs
+ img: https://fastapi.tiangolo.com/img/sponsors/interviewpal.png
+ - url: https://dribia.com/en/
+ title: Dribia - Data Science within your reach
+ img: https://fastapi.tiangolo.com/img/sponsors/dribia.png
bronze:
- url: https://www.exoflare.com/open-source/?utm_source=FastAPI&utm_campaign=open_source
title: Biosecurity risk assessments made easy.
img: https://fastapi.tiangolo.com/img/sponsors/exoflare.png
- - url: https://testdriven.io/courses/tdd-fastapi/
- title: Learn to build high-quality web apps with best practices
- img: https://fastapi.tiangolo.com/img/sponsors/testdriven.svg
+ # - url: https://testdriven.io/courses/tdd-fastapi/
+ # title: Learn to build high-quality web apps with best practices
+ # img: https://fastapi.tiangolo.com/img/sponsors/testdriven.svg
+ - url: https://lambdatest.com/?utm_source=fastapi&utm_medium=partner&utm_campaign=sponsor&utm_term=opensource&utm_content=webpage
+ title: LambdaTest, AI-Powered Cloud-based Test Orchestration Platform
+ img: https://fastapi.tiangolo.com/img/sponsors/lambdatest.png
diff --git a/docs/en/data/sponsors_badge.yml b/docs/en/data/sponsors_badge.yml
index d507a500fc..62ba6a84ca 100644
--- a/docs/en/data/sponsors_badge.yml
+++ b/docs/en/data/sponsors_badge.yml
@@ -38,3 +38,11 @@ logins:
- render-sponsorships
- renderinc
- stainless-api
+ - snapit-cypher
+ - coderabbitai
+ - permitio
+ - LambdaTest-Inc
+ - dribia
+ - madisonredtfeldt
+ - railwayapp
+ - subtotal
diff --git a/docs/en/data/topic_repos.yml b/docs/en/data/topic_repos.yml
index c1176e55ca..631edbb772 100644
--- a/docs/en/data/topic_repos.yml
+++ b/docs/en/data/topic_repos.yml
@@ -1,495 +1,495 @@
- name: full-stack-fastapi-template
html_url: https://github.com/fastapi/full-stack-fastapi-template
- stars: 28796
+ stars: 35002
owner_login: fastapi
owner_html_url: https://github.com/fastapi
- name: Hello-Python
html_url: https://github.com/mouredev/Hello-Python
- stars: 27554
+ stars: 31317
owner_login: mouredev
owner_html_url: https://github.com/mouredev
- name: serve
html_url: https://github.com/jina-ai/serve
- stars: 21225
+ stars: 21680
owner_login: jina-ai
owner_html_url: https://github.com/jina-ai
-- name: sqlmodel
- html_url: https://github.com/fastapi/sqlmodel
- stars: 14921
- owner_login: fastapi
- owner_html_url: https://github.com/fastapi
- name: HivisionIDPhotos
html_url: https://github.com/Zeyi-Lin/HivisionIDPhotos
- stars: 14025
+ stars: 18700
owner_login: Zeyi-Lin
owner_html_url: https://github.com/Zeyi-Lin
+- name: sqlmodel
+ html_url: https://github.com/fastapi/sqlmodel
+ stars: 16469
+ owner_login: fastapi
+ owner_html_url: https://github.com/fastapi
- name: Douyin_TikTok_Download_API
html_url: https://github.com/Evil0ctal/Douyin_TikTok_Download_API
- stars: 10001
+ stars: 13663
owner_login: Evil0ctal
owner_html_url: https://github.com/Evil0ctal
- name: fastapi-best-practices
html_url: https://github.com/zhanymkanov/fastapi-best-practices
- stars: 9820
+ stars: 12716
owner_login: zhanymkanov
owner_html_url: https://github.com/zhanymkanov
- name: awesome-fastapi
html_url: https://github.com/mjhea0/awesome-fastapi
- stars: 8899
+ stars: 10099
owner_login: mjhea0
owner_html_url: https://github.com/mjhea0
- name: FastUI
html_url: https://github.com/pydantic/FastUI
- stars: 8400
+ stars: 8850
owner_login: pydantic
owner_html_url: https://github.com/pydantic
+- name: XHS-Downloader
+ html_url: https://github.com/JoeanAmier/XHS-Downloader
+ stars: 8305
+ owner_login: JoeanAmier
+ owner_html_url: https://github.com/JoeanAmier
+- name: FileCodeBox
+ html_url: https://github.com/vastsa/FileCodeBox
+ stars: 6936
+ owner_login: vastsa
+ owner_html_url: https://github.com/vastsa
- name: nonebot2
html_url: https://github.com/nonebot/nonebot2
- stars: 6235
+ stars: 6911
owner_login: nonebot
owner_html_url: https://github.com/nonebot
+- name: fastapi_mcp
+ html_url: https://github.com/tadata-org/fastapi_mcp
+ stars: 6767
+ owner_login: tadata-org
+ owner_html_url: https://github.com/tadata-org
+- name: SurfSense
+ html_url: https://github.com/MODSetter/SurfSense
+ stars: 6202
+ owner_login: MODSetter
+ owner_html_url: https://github.com/MODSetter
+- name: hatchet
+ html_url: https://github.com/hatchet-dev/hatchet
+ stars: 5878
+ owner_login: hatchet-dev
+ owner_html_url: https://github.com/hatchet-dev
+- name: polar
+ html_url: https://github.com/polarsource/polar
+ stars: 5872
+ owner_login: polarsource
+ owner_html_url: https://github.com/polarsource
- name: serge
html_url: https://github.com/serge-chat/serge
- stars: 5685
+ stars: 5740
owner_login: serge-chat
owner_html_url: https://github.com/serge-chat
- name: fastapi-users
html_url: https://github.com/fastapi-users/fastapi-users
- stars: 4787
+ stars: 5429
owner_login: fastapi-users
owner_html_url: https://github.com/fastapi-users
-- name: FileCodeBox
- html_url: https://github.com/vastsa/FileCodeBox
- stars: 4479
- owner_login: vastsa
- owner_html_url: https://github.com/vastsa
-- name: hatchet
- html_url: https://github.com/hatchet-dev/hatchet
- stars: 4413
- owner_login: hatchet-dev
- owner_html_url: https://github.com/hatchet-dev
-- name: chatgpt-web-share
- html_url: https://github.com/chatpire/chatgpt-web-share
- stars: 4322
- owner_login: chatpire
- owner_html_url: https://github.com/chatpire
-- name: atrilabs-engine
- html_url: https://github.com/Atri-Labs/atrilabs-engine
- stars: 4115
- owner_login: Atri-Labs
- owner_html_url: https://github.com/Atri-Labs
- name: strawberry
html_url: https://github.com/strawberry-graphql/strawberry
- stars: 4084
+ stars: 4345
owner_login: strawberry-graphql
owner_html_url: https://github.com/strawberry-graphql
-- name: dynaconf
- html_url: https://github.com/dynaconf/dynaconf
- stars: 3844
- owner_login: dynaconf
- owner_html_url: https://github.com/dynaconf
+- name: chatgpt-web-share
+ html_url: https://github.com/chatpire/chatgpt-web-share
+ stars: 4301
+ owner_login: chatpire
+ owner_html_url: https://github.com/chatpire
- name: poem
html_url: https://github.com/poem-web/poem
- stars: 3698
+ stars: 4107
owner_login: poem-web
owner_html_url: https://github.com/poem-web
-- name: polar
- html_url: https://github.com/polarsource/polar
- stars: 3355
- owner_login: polarsource
- owner_html_url: https://github.com/polarsource
-- name: opyrator
- html_url: https://github.com/ml-tooling/opyrator
- stars: 3114
- owner_login: ml-tooling
- owner_html_url: https://github.com/ml-tooling
-- name: farfalle
- html_url: https://github.com/rashadphz/farfalle
- stars: 3022
- owner_login: rashadphz
- owner_html_url: https://github.com/rashadphz
-- name: fastapi-admin
- html_url: https://github.com/fastapi-admin/fastapi-admin
- stars: 3002
- owner_login: fastapi-admin
- owner_html_url: https://github.com/fastapi-admin
-- name: docarray
- html_url: https://github.com/docarray/docarray
- stars: 2998
- owner_login: docarray
- owner_html_url: https://github.com/docarray
-- name: datamodel-code-generator
- html_url: https://github.com/koxudaxi/datamodel-code-generator
- stars: 2845
- owner_login: koxudaxi
- owner_html_url: https://github.com/koxudaxi
-- name: fastapi-realworld-example-app
- html_url: https://github.com/nsidnev/fastapi-realworld-example-app
- stars: 2832
- owner_login: nsidnev
- owner_html_url: https://github.com/nsidnev
-- name: uvicorn-gunicorn-fastapi-docker
- html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker
- stars: 2727
- owner_login: tiangolo
- owner_html_url: https://github.com/tiangolo
-- name: WrenAI
- html_url: https://github.com/Canner/WrenAI
- stars: 2699
- owner_login: Canner
- owner_html_url: https://github.com/Canner
+- name: atrilabs-engine
+ html_url: https://github.com/Atri-Labs/atrilabs-engine
+ stars: 4103
+ owner_login: Atri-Labs
+ owner_html_url: https://github.com/Atri-Labs
+- name: dynaconf
+ html_url: https://github.com/dynaconf/dynaconf
+ stars: 4079
+ owner_login: dynaconf
+ owner_html_url: https://github.com/dynaconf
- name: LitServe
html_url: https://github.com/Lightning-AI/LitServe
- stars: 2664
+ stars: 3430
owner_login: Lightning-AI
owner_html_url: https://github.com/Lightning-AI
- name: logfire
html_url: https://github.com/pydantic/logfire
- stars: 2495
+ stars: 3420
owner_login: pydantic
owner_html_url: https://github.com/pydantic
+- name: farfalle
+ html_url: https://github.com/rashadphz/farfalle
+ stars: 3391
+ owner_login: rashadphz
+ owner_html_url: https://github.com/rashadphz
+- name: Kokoro-FastAPI
+ html_url: https://github.com/remsky/Kokoro-FastAPI
+ stars: 3375
+ owner_login: remsky
+ owner_html_url: https://github.com/remsky
+- name: datamodel-code-generator
+ html_url: https://github.com/koxudaxi/datamodel-code-generator
+ stars: 3354
+ owner_login: koxudaxi
+ owner_html_url: https://github.com/koxudaxi
+- name: fastapi-admin
+ html_url: https://github.com/fastapi-admin/fastapi-admin
+ stars: 3353
+ owner_login: fastapi-admin
+ owner_html_url: https://github.com/fastapi-admin
- name: huma
html_url: https://github.com/danielgtaylor/huma
- stars: 2479
+ stars: 3277
owner_login: danielgtaylor
owner_html_url: https://github.com/danielgtaylor
-- name: tracecat
- html_url: https://github.com/TracecatHQ/tracecat
- stars: 2446
- owner_login: TracecatHQ
- owner_html_url: https://github.com/TracecatHQ
-- name: RasaGPT
- html_url: https://github.com/paulpierre/RasaGPT
- stars: 2378
- owner_login: paulpierre
- owner_html_url: https://github.com/paulpierre
-- name: best-of-web-python
- html_url: https://github.com/ml-tooling/best-of-web-python
- stars: 2374
+- name: opyrator
+ html_url: https://github.com/ml-tooling/opyrator
+ stars: 3131
owner_login: ml-tooling
owner_html_url: https://github.com/ml-tooling
+- name: docarray
+ html_url: https://github.com/docarray/docarray
+ stars: 3085
+ owner_login: docarray
+ owner_html_url: https://github.com/docarray
+- name: tracecat
+ html_url: https://github.com/TracecatHQ/tracecat
+ stars: 2921
+ owner_login: TracecatHQ
+ owner_html_url: https://github.com/TracecatHQ
+- name: fastapi-realworld-example-app
+ html_url: https://github.com/nsidnev/fastapi-realworld-example-app
+ stars: 2919
+ owner_login: nsidnev
+ owner_html_url: https://github.com/nsidnev
+- name: uvicorn-gunicorn-fastapi-docker
+ html_url: https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker
+ stars: 2789
+ owner_login: tiangolo
+ owner_html_url: https://github.com/tiangolo
+- name: best-of-web-python
+ html_url: https://github.com/ml-tooling/best-of-web-python
+ stars: 2560
+ owner_login: ml-tooling
+ owner_html_url: https://github.com/ml-tooling
+- name: RasaGPT
+ html_url: https://github.com/paulpierre/RasaGPT
+ stars: 2434
+ owner_login: paulpierre
+ owner_html_url: https://github.com/paulpierre
- name: fastapi-react
html_url: https://github.com/Buuntu/fastapi-react
- stars: 2274
+ stars: 2419
owner_login: Buuntu
owner_html_url: https://github.com/Buuntu
-- name: nextpy
- html_url: https://github.com/dot-agent/nextpy
- stars: 2244
- owner_login: dot-agent
- owner_html_url: https://github.com/dot-agent
-- name: 30-Days-of-Python
- html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python
- stars: 2154
- owner_login: codingforentrepreneurs
- owner_html_url: https://github.com/codingforentrepreneurs
- name: FastAPI-template
html_url: https://github.com/s3rius/FastAPI-template
- stars: 2067
+ stars: 2369
owner_login: s3rius
owner_html_url: https://github.com/s3rius
-- name: langserve
- html_url: https://github.com/langchain-ai/langserve
- stars: 1980
- owner_login: langchain-ai
- owner_html_url: https://github.com/langchain-ai
+- name: nextpy
+ html_url: https://github.com/dot-agent/nextpy
+ stars: 2304
+ owner_login: dot-agent
+ owner_html_url: https://github.com/dot-agent
- name: sqladmin
html_url: https://github.com/aminalaee/sqladmin
- stars: 1980
+ stars: 2272
owner_login: aminalaee
owner_html_url: https://github.com/aminalaee
+- name: 30-Days-of-Python
+ html_url: https://github.com/codingforentrepreneurs/30-Days-of-Python
+ stars: 2192
+ owner_login: codingforentrepreneurs
+ owner_html_url: https://github.com/codingforentrepreneurs
+- name: supabase-py
+ html_url: https://github.com/supabase/supabase-py
+ stars: 2141
+ owner_login: supabase
+ owner_html_url: https://github.com/supabase
+- name: langserve
+ html_url: https://github.com/langchain-ai/langserve
+ stars: 2140
+ owner_login: langchain-ai
+ owner_html_url: https://github.com/langchain-ai
- name: fastapi-utils
html_url: https://github.com/fastapiutils/fastapi-utils
- stars: 1970
+ stars: 2107
owner_login: fastapiutils
owner_html_url: https://github.com/fastapiutils
- name: solara
html_url: https://github.com/widgetti/solara
- stars: 1950
+ stars: 2063
owner_login: widgetti
owner_html_url: https://github.com/widgetti
-- name: python-week-2022
- html_url: https://github.com/rochacbruno/python-week-2022
- stars: 1836
- owner_login: rochacbruno
- owner_html_url: https://github.com/rochacbruno
-- name: supabase-py
- html_url: https://github.com/supabase/supabase-py
- stars: 1803
- owner_login: supabase
- owner_html_url: https://github.com/supabase
- name: mangum
html_url: https://github.com/Kludex/mangum
- stars: 1760
+ stars: 1943
owner_login: Kludex
owner_html_url: https://github.com/Kludex
+- name: python-week-2022
+ html_url: https://github.com/rochacbruno/python-week-2022
+ stars: 1819
+ owner_login: rochacbruno
+ owner_html_url: https://github.com/rochacbruno
+- name: agentkit
+ html_url: https://github.com/BCG-X-Official/agentkit
+ stars: 1774
+ owner_login: BCG-X-Official
+ owner_html_url: https://github.com/BCG-X-Official
- name: manage-fastapi
html_url: https://github.com/ycd/manage-fastapi
- stars: 1704
+ stars: 1769
owner_login: ycd
owner_html_url: https://github.com/ycd
- name: ormar
html_url: https://github.com/collerek/ormar
- stars: 1688
+ stars: 1761
owner_login: collerek
owner_html_url: https://github.com/collerek
-- name: agentkit
- html_url: https://github.com/BCG-X-Official/agentkit
- stars: 1615
- owner_login: BCG-X-Official
- owner_html_url: https://github.com/BCG-X-Official
-- name: langchain-serve
- html_url: https://github.com/jina-ai/langchain-serve
- stars: 1615
- owner_login: jina-ai
- owner_html_url: https://github.com/jina-ai
-- name: termpair
- html_url: https://github.com/cs01/termpair
- stars: 1613
- owner_login: cs01
- owner_html_url: https://github.com/cs01
-- name: coronavirus-tracker-api
- html_url: https://github.com/ExpDev07/coronavirus-tracker-api
- stars: 1591
- owner_login: ExpDev07
- owner_html_url: https://github.com/ExpDev07
- name: piccolo
html_url: https://github.com/piccolo-orm/piccolo
- stars: 1477
+ stars: 1658
owner_login: piccolo-orm
owner_html_url: https://github.com/piccolo-orm
-- name: fastapi-crudrouter
- html_url: https://github.com/awtkns/fastapi-crudrouter
- stars: 1435
- owner_login: awtkns
- owner_html_url: https://github.com/awtkns
-- name: fastapi-cache
- html_url: https://github.com/long2ice/fastapi-cache
- stars: 1412
- owner_login: long2ice
- owner_html_url: https://github.com/long2ice
+- name: langchain-serve
+ html_url: https://github.com/jina-ai/langchain-serve
+ stars: 1632
+ owner_login: jina-ai
+ owner_html_url: https://github.com/jina-ai
- name: openapi-python-client
html_url: https://github.com/openapi-generators/openapi-python-client
- stars: 1398
+ stars: 1628
owner_login: openapi-generators
owner_html_url: https://github.com/openapi-generators
+- name: termpair
+ html_url: https://github.com/cs01/termpair
+ stars: 1617
+ owner_login: cs01
+ owner_html_url: https://github.com/cs01
+- name: fastapi-cache
+ html_url: https://github.com/long2ice/fastapi-cache
+ stars: 1607
+ owner_login: long2ice
+ owner_html_url: https://github.com/long2ice
+- name: coronavirus-tracker-api
+ html_url: https://github.com/ExpDev07/coronavirus-tracker-api
+ stars: 1580
+ owner_login: ExpDev07
+ owner_html_url: https://github.com/ExpDev07
+- name: slowapi
+ html_url: https://github.com/laurentS/slowapi
+ stars: 1551
+ owner_login: laurentS
+ owner_html_url: https://github.com/laurentS
+- name: fastapi-crudrouter
+ html_url: https://github.com/awtkns/fastapi-crudrouter
+ stars: 1522
+ owner_login: awtkns
+ owner_html_url: https://github.com/awtkns
+- name: vue-fastapi-admin
+ html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin
+ stars: 1505
+ owner_login: mizhexiaoxiao
+ owner_html_url: https://github.com/mizhexiaoxiao
- name: awesome-fastapi-projects
html_url: https://github.com/Kludex/awesome-fastapi-projects
- stars: 1386
+ stars: 1468
owner_login: Kludex
owner_html_url: https://github.com/Kludex
- name: awesome-python-resources
html_url: https://github.com/DjangoEx/awesome-python-resources
- stars: 1371
+ stars: 1403
owner_login: DjangoEx
owner_html_url: https://github.com/DjangoEx
-- name: budgetml
- html_url: https://github.com/ebhy/budgetml
- stars: 1342
- owner_login: ebhy
- owner_html_url: https://github.com/ebhy
-- name: slowapi
- html_url: https://github.com/laurentS/slowapi
- stars: 1289
- owner_login: laurentS
- owner_html_url: https://github.com/laurentS
- name: fastapi-pagination
html_url: https://github.com/uriyyo/fastapi-pagination
- stars: 1240
+ stars: 1396
owner_login: uriyyo
owner_html_url: https://github.com/uriyyo
+- name: FastAPI-boilerplate
+ html_url: https://github.com/benavlabs/FastAPI-boilerplate
+ stars: 1378
+ owner_login: benavlabs
+ owner_html_url: https://github.com/benavlabs
- name: fastapi-boilerplate
html_url: https://github.com/teamhide/fastapi-boilerplate
- stars: 1173
+ stars: 1373
owner_login: teamhide
owner_html_url: https://github.com/teamhide
-- name: fastapi-tutorial
- html_url: https://github.com/liaogx/fastapi-tutorial
- stars: 1162
- owner_login: liaogx
- owner_html_url: https://github.com/liaogx
+- name: bracket
+ html_url: https://github.com/evroon/bracket
+ stars: 1367
+ owner_login: evroon
+ owner_html_url: https://github.com/evroon
+- name: budgetml
+ html_url: https://github.com/ebhy/budgetml
+ stars: 1345
+ owner_login: ebhy
+ owner_html_url: https://github.com/ebhy
- name: fastapi-amis-admin
html_url: https://github.com/amisadmin/fastapi-amis-admin
- stars: 1118
+ stars: 1300
owner_login: amisadmin
owner_html_url: https://github.com/amisadmin
+- name: fastapi-tutorial
+ html_url: https://github.com/liaogx/fastapi-tutorial
+ stars: 1284
+ owner_login: liaogx
+ owner_html_url: https://github.com/liaogx
- name: fastapi-code-generator
html_url: https://github.com/koxudaxi/fastapi-code-generator
- stars: 1095
+ stars: 1232
owner_login: koxudaxi
owner_html_url: https://github.com/koxudaxi
-- name: bolt-python
- html_url: https://github.com/slackapi/bolt-python
- stars: 1086
- owner_login: slackapi
- owner_html_url: https://github.com/slackapi
-- name: odmantic
- html_url: https://github.com/art049/odmantic
- stars: 1085
- owner_login: art049
- owner_html_url: https://github.com/art049
-- name: langchain-extract
- html_url: https://github.com/langchain-ai/langchain-extract
- stars: 1068
- owner_login: langchain-ai
- owner_html_url: https://github.com/langchain-ai
-- name: fastapi_production_template
- html_url: https://github.com/zhanymkanov/fastapi_production_template
- stars: 1059
- owner_login: zhanymkanov
- owner_html_url: https://github.com/zhanymkanov
-- name: fastapi-alembic-sqlmodel-async
- html_url: https://github.com/jonra1993/fastapi-alembic-sqlmodel-async
- stars: 1031
- owner_login: jonra1993
- owner_html_url: https://github.com/jonra1993
+- name: fastcrud
+ html_url: https://github.com/benavlabs/fastcrud
+ stars: 1208
+ owner_login: benavlabs
+ owner_html_url: https://github.com/benavlabs
- name: prometheus-fastapi-instrumentator
html_url: https://github.com/trallnag/prometheus-fastapi-instrumentator
- stars: 1013
+ stars: 1200
owner_login: trallnag
owner_html_url: https://github.com/trallnag
-- name: runhouse
- html_url: https://github.com/run-house/runhouse
- stars: 988
- owner_login: run-house
- owner_html_url: https://github.com/run-house
-- name: lanarky
- html_url: https://github.com/ajndkr/lanarky
- stars: 982
- owner_login: ajndkr
- owner_html_url: https://github.com/ajndkr
-- name: autollm
- html_url: https://github.com/viddexa/autollm
- stars: 981
- owner_login: viddexa
- owner_html_url: https://github.com/viddexa
-- name: bedrock-claude-chat
- html_url: https://github.com/aws-samples/bedrock-claude-chat
- stars: 977
+- name: bolt-python
+ html_url: https://github.com/slackapi/bolt-python
+ stars: 1197
+ owner_login: slackapi
+ owner_html_url: https://github.com/slackapi
+- name: bedrock-chat
+ html_url: https://github.com/aws-samples/bedrock-chat
+ stars: 1188
owner_login: aws-samples
owner_html_url: https://github.com/aws-samples
-- name: SurfSense
- html_url: https://github.com/MODSetter/SurfSense
- stars: 971
- owner_login: MODSetter
- owner_html_url: https://github.com/MODSetter
+- name: fastapi_best_architecture
+ html_url: https://github.com/fastapi-practices/fastapi_best_architecture
+ stars: 1178
+ owner_login: fastapi-practices
+ owner_html_url: https://github.com/fastapi-practices
+- name: fastapi_production_template
+ html_url: https://github.com/zhanymkanov/fastapi_production_template
+ stars: 1173
+ owner_login: zhanymkanov
+ owner_html_url: https://github.com/zhanymkanov
+- name: langchain-extract
+ html_url: https://github.com/langchain-ai/langchain-extract
+ stars: 1148
+ owner_login: langchain-ai
+ owner_html_url: https://github.com/langchain-ai
+- name: fastapi-alembic-sqlmodel-async
+ html_url: https://github.com/jonra1993/fastapi-alembic-sqlmodel-async
+ stars: 1134
+ owner_login: jonra1993
+ owner_html_url: https://github.com/jonra1993
+- name: odmantic
+ html_url: https://github.com/art049/odmantic
+ stars: 1122
+ owner_login: art049
+ owner_html_url: https://github.com/art049
- name: restish
- html_url: https://github.com/danielgtaylor/restish
- stars: 954
- owner_login: danielgtaylor
- owner_html_url: https://github.com/danielgtaylor
-- name: secure
- html_url: https://github.com/TypeError/secure
- stars: 911
- owner_login: TypeError
- owner_html_url: https://github.com/TypeError
-- name: langcorn
- html_url: https://github.com/msoedov/langcorn
- stars: 909
- owner_login: msoedov
- owner_html_url: https://github.com/msoedov
-- name: energy-forecasting
- html_url: https://github.com/iusztinpaul/energy-forecasting
- stars: 884
- owner_login: iusztinpaul
- owner_html_url: https://github.com/iusztinpaul
-- name: vue-fastapi-admin
- html_url: https://github.com/mizhexiaoxiao/vue-fastapi-admin
- stars: 863
- owner_login: mizhexiaoxiao
- owner_html_url: https://github.com/mizhexiaoxiao
+ html_url: https://github.com/rest-sh/restish
+ stars: 1088
+ owner_login: rest-sh
+ owner_html_url: https://github.com/rest-sh
+- name: fastapi-scaf
+ html_url: https://github.com/atpuxiner/fastapi-scaf
+ stars: 1061
+ owner_login: atpuxiner
+ owner_html_url: https://github.com/atpuxiner
+- name: runhouse
+ html_url: https://github.com/run-house/runhouse
+ stars: 1041
+ owner_login: run-house
+ owner_html_url: https://github.com/run-house
+- name: fastapi-langgraph-agent-production-ready-template
+ html_url: https://github.com/wassim249/fastapi-langgraph-agent-production-ready-template
+ stars: 1037
+ owner_login: wassim249
+ owner_html_url: https://github.com/wassim249
+- name: autollm
+ html_url: https://github.com/viddexa/autollm
+ stars: 997
+ owner_login: viddexa
+ owner_html_url: https://github.com/viddexa
+- name: lanarky
+ html_url: https://github.com/ajndkr/lanarky
+ stars: 994
+ owner_login: ajndkr
+ owner_html_url: https://github.com/ajndkr
+- name: mcp-context-forge
+ html_url: https://github.com/IBM/mcp-context-forge
+ stars: 981
+ owner_login: IBM
+ owner_html_url: https://github.com/IBM
- name: authx
html_url: https://github.com/yezz123/authx
- stars: 850
+ stars: 967
owner_login: yezz123
owner_html_url: https://github.com/yezz123
+- name: secure
+ html_url: https://github.com/TypeError/secure
+ stars: 941
+ owner_login: TypeError
+ owner_html_url: https://github.com/TypeError
+- name: flock
+ html_url: https://github.com/Onelevenvy/flock
+ stars: 937
+ owner_login: Onelevenvy
+ owner_html_url: https://github.com/Onelevenvy
+- name: energy-forecasting
+ html_url: https://github.com/iusztinpaul/energy-forecasting
+ stars: 934
+ owner_login: iusztinpaul
+ owner_html_url: https://github.com/iusztinpaul
+- name: langcorn
+ html_url: https://github.com/msoedov/langcorn
+ stars: 932
+ owner_login: msoedov
+ owner_html_url: https://github.com/msoedov
- name: titiler
html_url: https://github.com/developmentseed/titiler
- stars: 809
+ stars: 917
owner_login: developmentseed
owner_html_url: https://github.com/developmentseed
- name: marker-api
html_url: https://github.com/adithya-s-k/marker-api
- stars: 792
+ stars: 880
owner_login: adithya-s-k
owner_html_url: https://github.com/adithya-s-k
-- name: fastapi_best_architecture
- html_url: https://github.com/fastapi-practices/fastapi_best_architecture
- stars: 742
- owner_login: fastapi-practices
- owner_html_url: https://github.com/fastapi-practices
-- name: fastapi-mail
- html_url: https://github.com/sabuhish/fastapi-mail
- stars: 728
- owner_login: sabuhish
- owner_html_url: https://github.com/sabuhish
-- name: fastcrud
- html_url: https://github.com/igorbenav/fastcrud
- stars: 727
- owner_login: igorbenav
- owner_html_url: https://github.com/igorbenav
-- name: annotated-py-projects
- html_url: https://github.com/hhstore/annotated-py-projects
- stars: 722
- owner_login: hhstore
- owner_html_url: https://github.com/hhstore
-- name: FastAPI-boilerplate
- html_url: https://github.com/igorbenav/FastAPI-boilerplate
- stars: 716
- owner_login: igorbenav
- owner_html_url: https://github.com/igorbenav
-- name: lccn_predictor
- html_url: https://github.com/baoliay2008/lccn_predictor
- stars: 707
- owner_login: baoliay2008
- owner_html_url: https://github.com/baoliay2008
-- name: chatGPT-web
- html_url: https://github.com/mic1on/chatGPT-web
- stars: 706
- owner_login: mic1on
- owner_html_url: https://github.com/mic1on
+- name: httpdbg
+ html_url: https://github.com/cle-b/httpdbg
+ stars: 875
+ owner_login: cle-b
+ owner_html_url: https://github.com/cle-b
- name: fastapi-do-zero
html_url: https://github.com/dunossauro/fastapi-do-zero
- stars: 702
+ stars: 873
owner_login: dunossauro
owner_html_url: https://github.com/dunossauro
-- name: linbing
- html_url: https://github.com/taomujian/linbing
- stars: 699
- owner_login: taomujian
- owner_html_url: https://github.com/taomujian
- name: fastapi-observability
html_url: https://github.com/blueswen/fastapi-observability
- stars: 698
+ stars: 861
owner_login: blueswen
owner_html_url: https://github.com/blueswen
-- name: FastAPI-Backend-Template
- html_url: https://github.com/Aeternalis-Ingenium/FastAPI-Backend-Template
- stars: 682
- owner_login: Aeternalis-Ingenium
- owner_html_url: https://github.com/Aeternalis-Ingenium
-- name: learn-generative-ai
- html_url: https://github.com/panaverse/learn-generative-ai
- stars: 673
- owner_login: panaverse
- owner_html_url: https://github.com/panaverse
-- name: fastapi-jwt-auth
- html_url: https://github.com/IndominusByte/fastapi-jwt-auth
- stars: 668
- owner_login: IndominusByte
- owner_html_url: https://github.com/IndominusByte
-- name: pity
- html_url: https://github.com/wuranxu/pity
- stars: 660
- owner_login: wuranxu
- owner_html_url: https://github.com/wuranxu
-- name: starlette-admin
- html_url: https://github.com/jowilf/starlette-admin
- stars: 653
- owner_login: jowilf
- owner_html_url: https://github.com/jowilf
-- name: fastapi_login
- html_url: https://github.com/MushroomMaula/fastapi_login
- stars: 650
- owner_login: MushroomMaula
- owner_html_url: https://github.com/MushroomMaula
+- name: ludic
+ html_url: https://github.com/getludic/ludic
+ stars: 854
+ owner_login: getludic
+ owner_html_url: https://github.com/getludic
+- name: aktools
+ html_url: https://github.com/akfamily/aktools
+ stars: 839
+ owner_login: akfamily
+ owner_html_url: https://github.com/akfamily
+- name: RuoYi-Vue3-FastAPI
+ html_url: https://github.com/insistence/RuoYi-Vue3-FastAPI
+ stars: 836
+ owner_login: insistence
+ owner_html_url: https://github.com/insistence
diff --git a/docs/en/data/translation_reviewers.yml b/docs/en/data/translation_reviewers.yml
index 6cc09a7c1a..8eaf93d9c8 100644
--- a/docs/en/data/translation_reviewers.yml
+++ b/docs/en/data/translation_reviewers.yml
@@ -5,12 +5,17 @@ s111d:
url: https://github.com/s111d
Xewus:
login: Xewus
- count: 139
+ count: 140
avatarUrl: https://avatars.githubusercontent.com/u/85196001?u=f8e2dc7e5104f109cef944af79050ea8d1b8f914&v=4
url: https://github.com/Xewus
+sodaMelon:
+ login: sodaMelon
+ count: 127
+ avatarUrl: https://avatars.githubusercontent.com/u/66295123?u=be939db90f1119efee9e6110cc05066ff1f40f00&v=4
+ url: https://github.com/sodaMelon
ceb10n:
login: ceb10n
- count: 108
+ count: 116
avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
url: https://github.com/ceb10n
tokusumi:
@@ -25,24 +30,24 @@ hasansezertasan:
url: https://github.com/hasansezertasan
hard-coders:
login: hard-coders
- count: 92
+ count: 93
avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4
url: https://github.com/hard-coders
+alv2017:
+ login: alv2017
+ count: 88
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
+nazarepiedady:
+ login: nazarepiedady
+ count: 86
+ avatarUrl: https://avatars.githubusercontent.com/u/31008635?u=f69ddc4ea8bda3bdfac7aa0e2ea38de282e6ee2d&v=4
+ url: https://github.com/nazarepiedady
AlertRED:
login: AlertRED
count: 81
avatarUrl: https://avatars.githubusercontent.com/u/15695000?u=f5a4944c6df443030409c88da7d7fa0b7ead985c&v=4
url: https://github.com/AlertRED
-sodaMelon:
- login: sodaMelon
- count: 81
- avatarUrl: https://avatars.githubusercontent.com/u/66295123?u=be939db90f1119efee9e6110cc05066ff1f40f00&v=4
- url: https://github.com/sodaMelon
-nazarepiedady:
- login: nazarepiedady
- count: 78
- avatarUrl: https://avatars.githubusercontent.com/u/31008635?u=8dc25777dc9cb51fb0dbba2f137988953d330b78&v=4
- url: https://github.com/nazarepiedady
Alexandrhub:
login: Alexandrhub
count: 68
@@ -55,14 +60,19 @@ waynerv:
url: https://github.com/waynerv
cassiobotaro:
login: cassiobotaro
- count: 61
+ count: 62
avatarUrl: https://avatars.githubusercontent.com/u/3127847?u=a08022b191ddbd0a6159b2981d9d878b6d5bb71f&v=4
url: https://github.com/cassiobotaro
mattwang44:
login: mattwang44
- count: 58
+ count: 59
avatarUrl: https://avatars.githubusercontent.com/u/24987826?u=58e37fb3927b9124b458945ac4c97aa0f1062d85&v=4
url: https://github.com/mattwang44
+tiangolo:
+ login: tiangolo
+ count: 53
+ avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
+ url: https://github.com/tiangolo
Laineyzhang55:
login: Laineyzhang55
count: 48
@@ -78,16 +88,26 @@ komtaki:
count: 45
avatarUrl: https://avatars.githubusercontent.com/u/39375566?u=260ad6b1a4b34c07dbfa728da5e586f16f6d1824&v=4
url: https://github.com/komtaki
+rostik1410:
+ login: rostik1410
+ count: 42
+ avatarUrl: https://avatars.githubusercontent.com/u/11443899?u=e26a635c2ba220467b308a326a579b8ccf4a8701&v=4
+ url: https://github.com/rostik1410
+svlandeg:
+ login: svlandeg
+ count: 42
+ avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
+ url: https://github.com/svlandeg
alperiox:
login: alperiox
count: 42
avatarUrl: https://avatars.githubusercontent.com/u/34214152?u=2c5acad3461d4dbc2d48371ba86cac56ae9b25cc&v=4
url: https://github.com/alperiox
-tiangolo:
- login: tiangolo
- count: 40
- avatarUrl: https://avatars.githubusercontent.com/u/1326112?u=cb5d06e73a9e1998141b1641aa88e443c6717651&v=4
- url: https://github.com/tiangolo
+Rishat-F:
+ login: Rishat-F
+ count: 42
+ avatarUrl: https://avatars.githubusercontent.com/u/66554797?v=4
+ url: https://github.com/Rishat-F
Winand:
login: Winand
count: 40
@@ -103,6 +123,11 @@ JavierSanchezCastro:
count: 38
avatarUrl: https://avatars.githubusercontent.com/u/72013291?u=ae5679e6bd971d9d98cd5e76e8683f83642ba950&v=4
url: https://github.com/JavierSanchezCastro
+alejsdev:
+ login: alejsdev
+ count: 37
+ avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=638c65283ac9e9e2c3a0f9d1e3370db4b8a2c58d&v=4
+ url: https://github.com/alejsdev
stlucasgarcia:
login: stlucasgarcia
count: 36
@@ -113,11 +138,21 @@ SwftAlpc:
count: 36
avatarUrl: https://avatars.githubusercontent.com/u/52768429?u=6a3aa15277406520ad37f6236e89466ed44bc5b8&v=4
url: https://github.com/SwftAlpc
+timothy-jeong:
+ login: timothy-jeong
+ count: 36
+ avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=db3d0cea2f5fab64d810113c5039a369699a2774&v=4
+ url: https://github.com/timothy-jeong
nilslindemann:
login: nilslindemann
count: 35
avatarUrl: https://avatars.githubusercontent.com/u/6892179?u=1dca6a22195d6cd1ab20737c0e19a4c55d639472&v=4
url: https://github.com/nilslindemann
+mezgoodle:
+ login: mezgoodle
+ count: 35
+ avatarUrl: https://avatars.githubusercontent.com/u/41520940?u=4a9c765af688389d54296845d18b8f6cd6ddf09a&v=4
+ url: https://github.com/mezgoodle
rjNemo:
login: rjNemo
count: 34
@@ -138,26 +173,21 @@ romashevchenko:
count: 32
avatarUrl: https://avatars.githubusercontent.com/u/132477732?v=4
url: https://github.com/romashevchenko
-wdh99:
- login: wdh99
- count: 31
- avatarUrl: https://avatars.githubusercontent.com/u/108172295?u=8a8fb95d5afe3e0fa33257b2aecae88d436249eb&v=4
- url: https://github.com/wdh99
-alv2017:
- login: alv2017
- count: 31
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
LorhanSohaky:
login: LorhanSohaky
count: 30
avatarUrl: https://avatars.githubusercontent.com/u/16273730?u=095b66f243a2cd6a0aadba9a095009f8aaf18393&v=4
url: https://github.com/LorhanSohaky
-alejsdev:
- login: alejsdev
+YuriiMotov:
+ login: YuriiMotov
count: 30
- avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=356f39ff3f0211c720b06d3dbb060e98884085e3&v=4
- url: https://github.com/alejsdev
+ avatarUrl: https://avatars.githubusercontent.com/u/109919500?u=b9b13d598dddfab529a52d264df80a900bfe7060&v=4
+ url: https://github.com/YuriiMotov
+Vincy1230:
+ login: Vincy1230
+ count: 30
+ avatarUrl: https://avatars.githubusercontent.com/u/81342412?u=ab5e256a4077a4a91f3f9cd2115ba80780454cbe&v=4
+ url: https://github.com/Vincy1230
black-redoc:
login: black-redoc
count: 29
@@ -181,7 +211,7 @@ dedkot01:
hsuanchi:
login: hsuanchi
count: 28
- avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=0b094ae292292fee093818e37ceb645c114d2bff&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=7d25a398e478b6e63503bf6f26c54efa9e0da07b&v=4
url: https://github.com/hsuanchi
dpinezich:
login: dpinezich
@@ -208,11 +238,6 @@ junah201:
count: 26
avatarUrl: https://avatars.githubusercontent.com/u/75025529?u=2451c256e888fa2a06bcfc0646d09b87ddb6a945&v=4
url: https://github.com/junah201
-Vincy1230:
- login: Vincy1230
- count: 26
- avatarUrl: https://avatars.githubusercontent.com/u/81342412?u=ab5e256a4077a4a91f3f9cd2115ba80780454cbe&v=4
- url: https://github.com/Vincy1230
zy7y:
login: zy7y
count: 25
@@ -228,6 +253,11 @@ Aruelius:
count: 24
avatarUrl: https://avatars.githubusercontent.com/u/25380989?u=574f8cfcda3ea77a3f81884f6b26a97068e36a9d&v=4
url: https://github.com/Aruelius
+wisderfin:
+ login: wisderfin
+ count: 24
+ avatarUrl: https://avatars.githubusercontent.com/u/77553770?u=9a23740d520d65dc0051cdc1ecd87f31cb900313&v=4
+ url: https://github.com/wisderfin
OzgunCaglarArslan:
login: OzgunCaglarArslan
count: 24
@@ -243,16 +273,11 @@ axel584:
count: 23
avatarUrl: https://avatars.githubusercontent.com/u/1334088?u=9667041f5b15dc002b6f9665fda8c0412933ac04&v=4
url: https://github.com/axel584
-wisderfin:
- login: wisderfin
+DianaTrufanova:
+ login: DianaTrufanova
count: 23
- avatarUrl: https://avatars.githubusercontent.com/u/77553770?u=94478d3e1ef7d36d70479c5bd35d8de28b071c10&v=4
- url: https://github.com/wisderfin
-rostik1410:
- login: rostik1410
- count: 22
- avatarUrl: https://avatars.githubusercontent.com/u/11443899?u=e26a635c2ba220467b308a326a579b8ccf4a8701&v=4
- url: https://github.com/rostik1410
+ avatarUrl: https://avatars.githubusercontent.com/u/119067607?u=1cd55f841b68b4a187fa6d06a7dafa5f070195aa&v=4
+ url: https://github.com/DianaTrufanova
AGolicyn:
login: AGolicyn
count: 21
@@ -266,7 +291,7 @@ Attsun1031:
ycd:
login: ycd
count: 20
- avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=29682e4b6ac7d5293742ccf818188394b9a82972&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4
url: https://github.com/ycd
delhi09:
login: delhi09
@@ -283,26 +308,21 @@ DevDae:
count: 20
avatarUrl: https://avatars.githubusercontent.com/u/87962045?u=08e10fa516e844934f4b3fc7c38b33c61697e4a1&v=4
url: https://github.com/DevDae
-svlandeg:
- login: svlandeg
- count: 20
- avatarUrl: https://avatars.githubusercontent.com/u/8796347?u=556c97650c27021911b0b9447ec55e75987b0e8a&v=4
- url: https://github.com/svlandeg
sattosan:
login: sattosan
count: 19
avatarUrl: https://avatars.githubusercontent.com/u/20574756?u=b0d8474d2938189c6954423ae8d81d91013f80a8&v=4
url: https://github.com/sattosan
+yes0ng:
+ login: yes0ng
+ count: 19
+ avatarUrl: https://avatars.githubusercontent.com/u/25501794?u=3aed18b0d491e0220a167a1e9e58bea3638c6707&v=4
+ url: https://github.com/yes0ng
ComicShrimp:
login: ComicShrimp
count: 18
avatarUrl: https://avatars.githubusercontent.com/u/43503750?u=d2fbf412e7730183ce91686ca48d4147e1b7dc74&v=4
url: https://github.com/ComicShrimp
-mezgoodle:
- login: mezgoodle
- count: 18
- avatarUrl: https://avatars.githubusercontent.com/u/41520940?u=e871bc26734eb2436d98c19c3fb57a4773e13c24&v=4
- url: https://github.com/mezgoodle
simatheone:
login: simatheone
count: 18
@@ -313,6 +333,16 @@ ivan-abc:
count: 18
avatarUrl: https://avatars.githubusercontent.com/u/36765187?u=c6e0ba571c1ccb6db9d94e62e4b8b5eda811a870&v=4
url: https://github.com/ivan-abc
+Limsunoh:
+ login: Limsunoh
+ count: 18
+ avatarUrl: https://avatars.githubusercontent.com/u/90311848?u=f456e0c5709fd50c8cd2898b551558eda14e5f21&v=4
+ url: https://github.com/Limsunoh
+SofiiaTrufanova:
+ login: SofiiaTrufanova
+ count: 18
+ avatarUrl: https://avatars.githubusercontent.com/u/63260929?u=483e0b64fabc76343b3be39b7e1dcb930a95e1bb&v=4
+ url: https://github.com/SofiiaTrufanova
bezaca:
login: bezaca
count: 17
@@ -338,11 +368,6 @@ jeison-araya:
count: 17
avatarUrl: https://avatars.githubusercontent.com/u/57369279?u=17001e68af7d8e5b8c343e5e9df4050f419998d5&v=4
url: https://github.com/jeison-araya
-Limsunoh:
- login: Limsunoh
- count: 17
- avatarUrl: https://avatars.githubusercontent.com/u/90311848?u=f456e0c5709fd50c8cd2898b551558eda14e5f21&v=4
- url: https://github.com/Limsunoh
yanever:
login: yanever
count: 16
@@ -353,21 +378,21 @@ mastizada:
count: 16
avatarUrl: https://avatars.githubusercontent.com/u/1975818?u=0751a06d7271c8bf17cb73b1b845644ab4d2c6dc&v=4
url: https://github.com/mastizada
+Joao-Pedro-P-Holanda:
+ login: Joao-Pedro-P-Holanda
+ count: 16
+ avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4
+ url: https://github.com/Joao-Pedro-P-Holanda
JaeHyuckSa:
login: JaeHyuckSa
count: 16
- avatarUrl: https://avatars.githubusercontent.com/u/104830931?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/104830931?u=6e352201714a05154e5d0ccf91b4715a951c622e&v=4
url: https://github.com/JaeHyuckSa
Jedore:
login: Jedore
count: 15
avatarUrl: https://avatars.githubusercontent.com/u/17944025?u=81d503e1c800eb666b3861ca47a3a773bbc3f539&v=4
url: https://github.com/Jedore
-Joao-Pedro-P-Holanda:
- login: Joao-Pedro-P-Holanda
- count: 15
- avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4
- url: https://github.com/Joao-Pedro-P-Holanda
kim-sangah:
login: kim-sangah
count: 15
@@ -383,11 +408,6 @@ dukkee:
count: 14
avatarUrl: https://avatars.githubusercontent.com/u/36825394?u=ccfd86e6a4f2d093dad6f7544cc875af67fa2df8&v=4
url: https://github.com/dukkee
-mkdir700:
- login: mkdir700
- count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/56359329?u=0ba13427420e7f6e4c83947736de247326f2c292&v=4
- url: https://github.com/mkdir700
BORA040126:
login: BORA040126
count: 14
@@ -396,7 +416,7 @@ BORA040126:
mattkoehne:
login: mattkoehne
count: 14
- avatarUrl: https://avatars.githubusercontent.com/u/80362153?u=6e1439582715693407b86182eb66263bb578a761&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/80362153?v=4
url: https://github.com/mattkoehne
jovicon:
login: jovicon
@@ -438,16 +458,16 @@ oandersonmagalhaes:
count: 12
avatarUrl: https://avatars.githubusercontent.com/u/83456692?v=4
url: https://github.com/oandersonmagalhaes
+mkdir700:
+ login: mkdir700
+ count: 12
+ avatarUrl: https://avatars.githubusercontent.com/u/56359329?u=3d6ea8714f5000829b60dcf7b13a75b1e73aaf47&v=4
+ url: https://github.com/mkdir700
batlopes:
login: batlopes
count: 12
avatarUrl: https://avatars.githubusercontent.com/u/33462923?u=0fb3d7acb316764616f11e4947faf080e49ad8d9&v=4
url: https://github.com/batlopes
-Lenclove:
- login: Lenclove
- count: 12
- avatarUrl: https://avatars.githubusercontent.com/u/32355298?u=d0065e01650c63c2b2413f42d983634b2ea85481&v=4
- url: https://github.com/Lenclove
joonas-yoon:
login: joonas-yoon
count: 12
@@ -468,6 +488,11 @@ andersonrocha0:
count: 12
avatarUrl: https://avatars.githubusercontent.com/u/22346169?u=93a1359c8c5461d894802c0cc65bcd09217e7a02&v=4
url: https://github.com/andersonrocha0
+gitgernit:
+ login: gitgernit
+ count: 12
+ avatarUrl: https://avatars.githubusercontent.com/u/129539613?u=d04f10143ab32c93f563ea14bf242d1d2bc991b0&v=4
+ url: https://github.com/gitgernit
kwang1215:
login: kwang1215
count: 12
@@ -493,6 +518,11 @@ glsglsgls:
count: 11
avatarUrl: https://avatars.githubusercontent.com/u/76133879?v=4
url: https://github.com/glsglsgls
+k94-ishi:
+ login: k94-ishi
+ count: 11
+ avatarUrl: https://avatars.githubusercontent.com/u/32672580?u=bc7c5c07af0656be9fe4f1784a444af8d81ded89&v=4
+ url: https://github.com/k94-ishi
codespearhead:
login: codespearhead
count: 11
@@ -508,11 +538,21 @@ Lufa1u:
count: 11
avatarUrl: https://avatars.githubusercontent.com/u/112495876?u=087658920ed9e74311597bdd921d8d2de939d276&v=4
url: https://github.com/Lufa1u
+waketzheng:
+ login: waketzheng
+ count: 11
+ avatarUrl: https://avatars.githubusercontent.com/u/35413830?u=df19e4fd5bb928e7d086e053ef26a46aad23bf84&v=4
+ url: https://github.com/waketzheng
KNChiu:
login: KNChiu
count: 11
avatarUrl: https://avatars.githubusercontent.com/u/36751646?v=4
url: https://github.com/KNChiu
+maru0123-2004:
+ login: maru0123-2004
+ count: 11
+ avatarUrl: https://avatars.githubusercontent.com/u/43961566?u=16ed8603a4d6a4665cb6c53a7aece6f31379b769&v=4
+ url: https://github.com/maru0123-2004
mariacamilagl:
login: mariacamilagl
count: 10
@@ -538,6 +578,11 @@ RobotToI:
count: 10
avatarUrl: https://avatars.githubusercontent.com/u/44951382?u=e41dbc19191ce7abed86694b1a44ea0523e1c60e&v=4
url: https://github.com/RobotToI
+vitumenezes:
+ login: vitumenezes
+ count: 10
+ avatarUrl: https://avatars.githubusercontent.com/u/9680878?u=05fd25cfafdc09382bf8907c37293a696c205754&v=4
+ url: https://github.com/vitumenezes
fcrozetta:
login: fcrozetta
count: 10
@@ -563,16 +608,16 @@ nick-cjyx9:
count: 10
avatarUrl: https://avatars.githubusercontent.com/u/119087246?u=c35aab03f082430be8a1edd80f5625b44819a0d8&v=4
url: https://github.com/nick-cjyx9
-waketzheng:
- login: waketzheng
- count: 10
- avatarUrl: https://avatars.githubusercontent.com/u/35413830?u=df19e4fd5bb928e7d086e053ef26a46aad23bf84&v=4
- url: https://github.com/waketzheng
lucasbalieiro:
login: lucasbalieiro
count: 10
- avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=5a395a69384e7fa0f9840ea32ef963d3f1cd9da4&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=dad91601ee4f40458d691774ec439aff308344d7&v=4
url: https://github.com/lucasbalieiro
+Zhongheng-Cheng:
+ login: Zhongheng-Cheng
+ count: 10
+ avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4
+ url: https://github.com/Zhongheng-Cheng
RunningIkkyu:
login: RunningIkkyu
count: 9
@@ -586,18 +631,18 @@ JulianMaurin:
JeongHyeongKim:
login: JeongHyeongKim
count: 9
- avatarUrl: https://avatars.githubusercontent.com/u/26577800?u=fe653349051c0acf62cd984e74c4ff60ca8d2cb6&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/26577800?u=77f060f4686f32c248907b81b16ee2b3177ca44c&v=4
url: https://github.com/JeongHyeongKim
arthurio:
login: arthurio
count: 9
avatarUrl: https://avatars.githubusercontent.com/u/950449?u=76b997138273ce5e1990b971c4f27c9aff979fd5&v=4
url: https://github.com/arthurio
-mahone3297:
- login: mahone3297
+Lenclove:
+ login: Lenclove
count: 9
- avatarUrl: https://avatars.githubusercontent.com/u/1701379?u=20588ff0e456d13e8017333eb237595d11410234&v=4
- url: https://github.com/mahone3297
+ avatarUrl: https://avatars.githubusercontent.com/u/32355298?u=d0065e01650c63c2b2413f42d983634b2ea85481&v=4
+ url: https://github.com/Lenclove
eVery1337:
login: eVery1337
count: 9
@@ -613,6 +658,11 @@ riroan:
count: 9
avatarUrl: https://avatars.githubusercontent.com/u/33053284?u=2d18e3771506ee874b66d6aa2b3b1107fd95c38f&v=4
url: https://github.com/riroan
+MinLee0210:
+ login: MinLee0210
+ count: 9
+ avatarUrl: https://avatars.githubusercontent.com/u/57653278?u=8ca05a7efbc76048183da00da87d148b755a3ba8&v=4
+ url: https://github.com/MinLee0210
yodai-yodai:
login: yodai-yodai
count: 9
@@ -626,13 +676,13 @@ marcelomarkus:
JoaoGustavoRogel:
login: JoaoGustavoRogel
count: 9
- avatarUrl: https://avatars.githubusercontent.com/u/29525510?u=1dd3096c6c2be2576fd5e818b1be15b2c9768aa5&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/29525510?u=a0a91251f5e43e132608d55d28ccb8645c5ea405&v=4
url: https://github.com/JoaoGustavoRogel
-Zhongheng-Cheng:
- login: Zhongheng-Cheng
+Yarous:
+ login: Yarous
count: 9
- avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4
- url: https://github.com/Zhongheng-Cheng
+ avatarUrl: https://avatars.githubusercontent.com/u/61277193?u=5b462347458a373b2d599c6f416d2b75eddbffad&v=4
+ url: https://github.com/Yarous
dimaqq:
login: dimaqq
count: 8
@@ -648,11 +698,6 @@ bnzone:
count: 8
avatarUrl: https://avatars.githubusercontent.com/u/39371503?u=c16f00c41d88479fa2d57b0d7d233b758eacce2d&v=4
url: https://github.com/bnzone
-ChuyuChoyeon:
- login: ChuyuChoyeon
- count: 8
- avatarUrl: https://avatars.githubusercontent.com/u/129537877?u=f0c76f3327817a8b86b422d62e04a34bf2827f2b&v=4
- url: https://github.com/ChuyuChoyeon
shamosishen:
login: shamosishen
count: 8
@@ -663,6 +708,11 @@ mertssmnoglu:
count: 8
avatarUrl: https://avatars.githubusercontent.com/u/61623638?u=59dd885b68ff1832f9ab3b4a4446896358c23442&v=4
url: https://github.com/mertssmnoglu
+mahone3297:
+ login: mahone3297
+ count: 8
+ avatarUrl: https://avatars.githubusercontent.com/u/1701379?u=20588ff0e456d13e8017333eb237595d11410234&v=4
+ url: https://github.com/mahone3297
KimJoonSeo:
login: KimJoonSeo
count: 8
@@ -673,11 +723,16 @@ camigomezdev:
count: 8
avatarUrl: https://avatars.githubusercontent.com/u/16061815?u=25b5ebc042fff53fa03dc107ded10e36b1b7a5b9&v=4
url: https://github.com/camigomezdev
-gitgernit:
- login: gitgernit
+minaton-ru:
+ login: minaton-ru
count: 8
- avatarUrl: https://avatars.githubusercontent.com/u/129539613?u=d04f10143ab32c93f563ea14bf242d1d2bc991b0&v=4
- url: https://github.com/gitgernit
+ avatarUrl: https://avatars.githubusercontent.com/u/53541518?u=67336ca11a85493f75031508aade588dad3b9910&v=4
+ url: https://github.com/minaton-ru
+sungchan1:
+ login: sungchan1
+ count: 8
+ avatarUrl: https://avatars.githubusercontent.com/u/28076127?u=a816d86ef3e60450a7225f128caf9a394c9320f9&v=4
+ url: https://github.com/sungchan1
Serrones:
login: Serrones
count: 7
@@ -698,11 +753,6 @@ anthonycepeda:
count: 7
avatarUrl: https://avatars.githubusercontent.com/u/72019805?u=60bdf46240cff8fca482ff0fc07d963fd5e1a27c&v=4
url: https://github.com/anthonycepeda
-vitumenezes:
- login: vitumenezes
- count: 7
- avatarUrl: https://avatars.githubusercontent.com/u/9680878?u=e7c6865aec49c3c94b8c8edc1198d1eac3e50b26&v=4
- url: https://github.com/vitumenezes
fabioueno:
login: fabioueno
count: 7
@@ -728,10 +778,20 @@ d2a-raudenaerde:
count: 7
avatarUrl: https://avatars.githubusercontent.com/u/5213150?v=4
url: https://github.com/d2a-raudenaerde
+valentinDruzhinin:
+ login: valentinDruzhinin
+ count: 7
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+Zerohertz:
+ login: Zerohertz
+ count: 7
+ avatarUrl: https://avatars.githubusercontent.com/u/42334717?u=5ebf4d33e73b1ad373154f6cdee44f7cab4d05ba&v=4
+ url: https://github.com/Zerohertz
deniscapeto:
login: deniscapeto
count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/12864353?u=dbc20c5c1171feab5df4db46488b675d53cb5b07&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/12864353?u=20c5b2300b264a585a8381acf3cef44bcfcc1ead&v=4
url: https://github.com/deniscapeto
bsab:
login: bsab
@@ -803,11 +863,6 @@ Kirilex:
count: 6
avatarUrl: https://avatars.githubusercontent.com/u/100281552?v=4
url: https://github.com/Kirilex
-Mordson:
- login: Mordson
- count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/39025897?u=b94ea96ef35bbe43bc85359cfb31d28ac16d470c&v=4
- url: https://github.com/Mordson
arunppsg:
login: arunppsg
count: 6
@@ -818,11 +873,6 @@ dimastbk:
count: 6
avatarUrl: https://avatars.githubusercontent.com/u/3132181?u=66587398d43466a1dc75c238df5f048e0afc77ed&v=4
url: https://github.com/dimastbk
-lordqyxz:
- login: lordqyxz
- count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/31722468?u=974553c0ba53526d9be7e9876544283291be3b0d&v=4
- url: https://github.com/lordqyxz
dudyaosuplayer:
login: dudyaosuplayer
count: 6
@@ -838,6 +888,11 @@ bankofsardine:
count: 6
avatarUrl: https://avatars.githubusercontent.com/u/44944207?u=0368e1b698ffab6bf29e202f9fd2dddd352429f1&v=4
url: https://github.com/bankofsardine
+Rekl0w:
+ login: Rekl0w
+ count: 6
+ avatarUrl: https://avatars.githubusercontent.com/u/91488737?u=3b62b04a3e6699eab9b1eea4e88c09a39b753a17&v=4
+ url: https://github.com/Rekl0w
rsip22:
login: rsip22
count: 5
@@ -851,7 +906,7 @@ jessicapaz:
mohsen-mahmoodi:
login: mohsen-mahmoodi
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/2872586?u=9274b3b13d8a992dba29b162fee48473a0fa142d&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/2872586?u=3a9fc1aa16a3a0ab93a1f8550de82a940592857d&v=4
url: https://github.com/mohsen-mahmoodi
jeesang7:
login: jeesang7
@@ -866,7 +921,7 @@ TemaSpb:
BugLight:
login: BugLight
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/13618366?u=57572e544e40c2a491db5bf7255bd24886d2cb09&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/13618366?u=7d733749f80e5f7e66a434cf42aedcfc60340f43&v=4
url: https://github.com/BugLight
0x4Dark:
login: 0x4Dark
@@ -881,13 +936,18 @@ Wuerike:
jvmazagao:
login: jvmazagao
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/22477816?u=f3b2d503b53e6ec8c808f0601b756a063a07f06e&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/22477816?u=2b57addf5830906bf6ae5f25cd4c8c2fa5c2d68e&v=4
url: https://github.com/jvmazagao
cun3yt:
login: cun3yt
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/24409240?u=39f651cdcc4991fb9fef5bbd9e9503db2174ac13&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/24409240?u=06abfd77786db859b0602d5369d2ae18c932c17c&v=4
url: https://github.com/cun3yt
+Mordson:
+ login: Mordson
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/39025897?u=b94ea96ef35bbe43bc85359cfb31d28ac16d470c&v=4
+ url: https://github.com/Mordson
aminkhani:
login: aminkhani
count: 5
@@ -908,10 +968,15 @@ Chushine:
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/135534400?v=4
url: https://github.com/Chushine
+ChuyuChoyeon:
+ login: ChuyuChoyeon
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/129537877?u=f0c76f3327817a8b86b422d62e04a34bf2827f2b&v=4
+ url: https://github.com/ChuyuChoyeon
frwl404:
login: frwl404
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/42642656?u=572a5a33762e07eaa6ebd58d9d773abdb1de41c3&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/42642656?u=8395a3d991d9fac86901277d76f0f70857b56ec5&v=4
url: https://github.com/frwl404
esrefzeki:
login: esrefzeki
@@ -953,11 +1018,16 @@ devluisrodrigues:
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/103431660?u=d9674a3249edc4601d2c712cdebf899918503c3a&v=4
url: https://github.com/devluisrodrigues
-timothy-jeong:
- login: timothy-jeong
+11kkw:
+ login: 11kkw
count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=659311b6f6aeb0fbb8b527723fd4c83642f04327&v=4
- url: https://github.com/timothy-jeong
+ avatarUrl: https://avatars.githubusercontent.com/u/21125286?v=4
+ url: https://github.com/11kkw
+soroushgh1:
+ login: soroushgh1
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/178516095?u=5e26f6a5f66cdb32d7b56e6ab362bf18ba7858b9&v=4
+ url: https://github.com/soroushgh1
lpdswing:
login: lpdswing
count: 4
@@ -971,7 +1041,7 @@ SepehrRasouli:
Zxilly:
login: Zxilly
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/31370133?u=122e23d6e974614736be606e4ea816f45e7745f8&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/31370133?u=c5359b8d9d80a7cdc23d5295d179ed90174996c8&v=4
url: https://github.com/Zxilly
eavv:
login: eavv
@@ -988,6 +1058,11 @@ FelipeSilva93:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/66804965?u=e7cb4b580e46f2e04ecb4cd4d7a12acdddd3c6c1&v=4
url: https://github.com/FelipeSilva93
+peacekimjapan:
+ login: peacekimjapan
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/33534175?u=e4219bcebc3773a7068cc34c3eb268ef77cec31b&v=4
+ url: https://github.com/peacekimjapan
bas-baskara:
login: bas-baskara
count: 4
@@ -1011,18 +1086,23 @@ personage-hub:
aminalaee:
login: aminalaee
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/19784933?u=2f45a312b73e7fb29f3b6f8676e5be6f7220da25&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/19784933?v=4
url: https://github.com/aminalaee
erfan-rfmhr:
login: erfan-rfmhr
count: 4
- avatarUrl: https://avatars.githubusercontent.com/u/98986056?u=6c4f9218fe5bb04780dd92bfced360c55e2009f0&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/98986056?u=0acda1ff1df0989f3f3eb79977baa35da4cb6c8c&v=4
url: https://github.com/erfan-rfmhr
Scorpionchiques:
login: Scorpionchiques
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/15703294?v=4
url: https://github.com/Scorpionchiques
+lordqyxz:
+ login: lordqyxz
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/31722468?u=974553c0ba53526d9be7e9876544283291be3b0d&v=4
+ url: https://github.com/lordqyxz
heysaeid:
login: heysaeid
count: 4
@@ -1053,6 +1133,11 @@ matiasbertani:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/65260383?u=d5edd86a6e2ab4fb1aab7751931fe045a963afd7&v=4
url: https://github.com/matiasbertani
+thiennc254:
+ login: thiennc254
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/97406628?u=1b2860679694b9a552764d0fa81dbd7a016322ec&v=4
+ url: https://github.com/thiennc254
javillegasna:
login: javillegasna
count: 4
@@ -1063,6 +1148,26 @@ javillegasna:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/174453744?v=4
url: https://github.com/9zimin9
+ilhamfadillah:
+ login: ilhamfadillah
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/20577838?u=c56192cf99b55affcaad408b240259c62e633450&v=4
+ url: https://github.com/ilhamfadillah
+gerry-sabar:
+ login: gerry-sabar
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4
+ url: https://github.com/gerry-sabar
+cookie-byte217:
+ login: cookie-byte217
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/57880178?v=4
+ url: https://github.com/cookie-byte217
+AbolfazlKameli:
+ login: AbolfazlKameli
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/120686133?u=05d405115fc834d46260ec24ec7b28e23a13477e&v=4
+ url: https://github.com/AbolfazlKameli
tyronedamasceno:
login: tyronedamasceno
count: 3
@@ -1141,7 +1246,7 @@ RuslanTer:
FedorGN:
login: FedorGN
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/66411909?u=1c6734e92f50c7d66f130ef7d394e72b53770fe6&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/66411909?u=22382380e7d66ee57ffbfc2ae6bd5efd0cdb672e&v=4
url: https://github.com/FedorGN
rafsaf:
login: rafsaf
@@ -1151,7 +1256,7 @@ rafsaf:
frnsimoes:
login: frnsimoes
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/66239468?u=771c4b0c403a42ccf2676ac987ac4999e5ad09bc&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/66239468?u=fd8d408946633acc4bea057c207e6c0833871527&v=4
url: https://github.com/frnsimoes
lieryan:
login: lieryan
@@ -1243,6 +1348,11 @@ Sion99:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/82511301?v=4
url: https://github.com/Sion99
+nymous:
+ login: nymous
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/4216559?u=360a36fb602cded27273cbfc0afc296eece90662&v=4
+ url: https://github.com/nymous
EpsilonRationes:
login: EpsilonRationes
count: 3
@@ -1263,6 +1373,11 @@ kohiry:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/57669492?u=f6ab0a062740261e882879269a41a47788c84043&v=4
url: https://github.com/kohiry
+ptt3199:
+ login: ptt3199
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/51350651?u=2c3d947a80283e32bf616d4c3af139a6be69680f&v=4
+ url: https://github.com/ptt3199
arynoot:
login: arynoot
count: 3
@@ -1276,18 +1391,38 @@ GDemay:
maxscheijen:
login: maxscheijen
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/47034840?u=eb98f37882528ea349ca4e5255fa64ac3fef0294&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/47034840?v=4
url: https://github.com/maxscheijen
celestywang:
login: celestywang
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/184830753?v=4
url: https://github.com/celestywang
-ilhamfadillah:
- login: ilhamfadillah
+RyaWcksn:
+ login: RyaWcksn
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/20577838?u=c56192cf99b55affcaad408b240259c62e633450&v=4
- url: https://github.com/ilhamfadillah
+ avatarUrl: https://avatars.githubusercontent.com/u/42831964?u=0cb4265faf3e3425a89e59b6fddd3eb2de180af0&v=4
+ url: https://github.com/RyaWcksn
+tienduong-21:
+ login: tienduong-21
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/80129618?v=4
+ url: https://github.com/tienduong-21
+zbellos:
+ login: zbellos
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/204500646?v=4
+ url: https://github.com/zbellos
+Mohammad222PR:
+ login: Mohammad222PR
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/116789737?u=25810a5fe049d2f1618e2e7417cea011cc353ce4&v=4
+ url: https://github.com/Mohammad222PR
+EdmilsonRodrigues:
+ login: EdmilsonRodrigues
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/62777025?u=217d6f3cd6cc750bb8818a3af7726c8d74eb7c2d&v=4
+ url: https://github.com/EdmilsonRodrigues
blaisep:
login: blaisep
count: 2
@@ -1361,7 +1496,7 @@ TimorChow:
ataberkciftlikli:
login: ataberkciftlikli
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/64265169?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/64265169?u=ca7c1348242559f70bc1dc027a4be277c464676f&v=4
url: https://github.com/ataberkciftlikli
leandrodesouzadev:
login: leandrodesouzadev
@@ -1383,36 +1518,31 @@ its0x08:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/15280042?u=d7c2058f29d4e8fbdae09b194e04c5e410350211&v=4
url: https://github.com/its0x08
-lindsayzhou:
- login: lindsayzhou
+linsein:
+ login: linsein
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/23748021?u=4db169ce262b69aa7292f82b785436544f69fb88&v=4
- url: https://github.com/lindsayzhou
+ url: https://github.com/linsein
0xflotus:
login: 0xflotus
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/26602940?u=3c52ce6393bb547c97e6380ccdee03e0c64152c6&v=4
url: https://github.com/0xflotus
-peacekimjapan:
- login: peacekimjapan
- count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/33534175?u=e4219bcebc3773a7068cc34c3eb268ef77cec31b&v=4
- url: https://github.com/peacekimjapan
jonatasoli:
login: jonatasoli
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=071c062d2861d3dd127f6b4a5258cd8ef55d4c50&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/26334101?u=f601c3f111f2148bd9244c2cb3ebbd57b592e674&v=4
url: https://github.com/jonatasoli
tyzh-dev:
login: tyzh-dev
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/51972581?u=ba3882da7c009918a8e2d6b9ead31c89f09c922d&v=4
url: https://github.com/tyzh-dev
-WaFeeAL:
- login: WaFeeAL
+yurkevich-dev:
+ login: yurkevich-dev
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/45145188?u=db2de8c186073d95693279dcf085fcebffab57d0&v=4
- url: https://github.com/WaFeeAL
+ url: https://github.com/yurkevich-dev
emp7yhead:
login: emp7yhead
count: 2
@@ -1446,7 +1576,7 @@ felipebpl:
iudeen:
login: iudeen
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=2843b3303282bff8b212dcd4d9d6689452e4470c&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/10519440?u=f09cdd745e5bf16138f29b42732dd57c7f02bee1&v=4
url: https://github.com/iudeen
dwisulfahnur:
login: dwisulfahnur
@@ -1466,7 +1596,7 @@ raphaelauv:
Fahad-Md-Kamal:
login: Fahad-Md-Kamal
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/34704464?u=84abea85e59c30b2e3bc700ae42424f3fe704332&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/34704464?u=141086368c5557d5a1a533fe291f21f9fc584458&v=4
url: https://github.com/Fahad-Md-Kamal
zxcq544:
login: zxcq544
@@ -1548,6 +1678,11 @@ siavashyj:
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/43583410?u=562005ddc7901cd27a1219a118a2363817b14977&v=4
url: https://github.com/siavashyj
+Ramin-RX7:
+ login: Ramin-RX7
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/52785580?u=b3678f779ad0ee9cd9dca9e50ccb804b5eb990a5&v=4
+ url: https://github.com/Ramin-RX7
DevSpace88:
login: DevSpace88
count: 2
@@ -1581,7 +1716,7 @@ zhiquanchi:
Jamim:
login: Jamim
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=0cf3027bec78ba4f0b89802430c136bc69847d7a&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/5607572?u=9ce0b6a6d1a5124e28b3c04d8d26827ca328713a&v=4
url: https://github.com/Jamim
alvinkhalil:
login: alvinkhalil
@@ -1591,13 +1726,18 @@ alvinkhalil:
leylaeminova:
login: leylaeminova
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/100516839?u=35a9ce14bb86d7d7faa25d432f61dec2984cb818&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/100516839?u=0b0dab9e31742076b22812b14a39b4e6d8f6de4a&v=4
url: https://github.com/leylaeminova
UN-9BOT:
login: UN-9BOT
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/111110804?u=39e158937ed795972c2d0400fc521c50e9bfb9e7&v=4
url: https://github.com/UN-9BOT
+flasonme:
+ login: flasonme
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/30571019?v=4
+ url: https://github.com/flasonme
gustavoprezoto:
login: gustavoprezoto
count: 2
@@ -1621,25 +1761,95 @@ ZhibangYue:
saeye:
login: saeye
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/62229734?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/62229734?u=312d619db2588b60d5d5bde65260a2f44fdc6c76&v=4
url: https://github.com/saeye
Heumhub:
login: Heumhub
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/173761521?v=4
url: https://github.com/Heumhub
+manumolina:
+ login: manumolina
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/2404208?u=fdc5502910f8dec814b2477f89587b9e45fac846&v=4
+ url: https://github.com/manumolina
logan2d5:
login: logan2d5
count: 2
avatarUrl: https://avatars.githubusercontent.com/u/146642263?u=dbd6621f8b0330d6919f6a7131277b92e26fbe87&v=4
url: https://github.com/logan2d5
-RyaWcksn:
- login: RyaWcksn
+guspan-tanadi:
+ login: guspan-tanadi
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/42831964?u=0cb4265faf3e3425a89e59b6fddd3eb2de180af0&v=4
- url: https://github.com/RyaWcksn
-gerry-sabar:
- login: gerry-sabar
+ avatarUrl: https://avatars.githubusercontent.com/u/36249910?v=4
+ url: https://github.com/guspan-tanadi
+tiaggo16:
+ login: tiaggo16
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4
- url: https://github.com/gerry-sabar
+ avatarUrl: https://avatars.githubusercontent.com/u/62227573?u=359f4e2c51a4b13c8553ac5af405d635b07bb61f&v=4
+ url: https://github.com/tiaggo16
+kiharito:
+ login: kiharito
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/38311245?v=4
+ url: https://github.com/kiharito
+t4f1d:
+ login: t4f1d
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/4054172?u=463d5ce0ec8ad8582f6e9351bb8c9a5105b39bb7&v=4
+ url: https://github.com/t4f1d
+J-Fuji:
+ login: J-Fuji
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/101452903?v=4
+ url: https://github.com/J-Fuji
+MrL8199:
+ login: MrL8199
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/39489075?u=3fc4f89c86973e40b5970d838c801bdbc13ac828&v=4
+ url: https://github.com/MrL8199
+ivintoiu:
+ login: ivintoiu
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/1853336?u=5e3d0977f44661fb9712fa297cc8f7608ea6ce48&v=4
+ url: https://github.com/ivintoiu
+TechnoService2:
+ login: TechnoService2
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/142113388?v=4
+ url: https://github.com/TechnoService2
+EgorOnishchuk:
+ login: EgorOnishchuk
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/120256301?v=4
+ url: https://github.com/EgorOnishchuk
+iamantonreznik:
+ login: iamantonreznik
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/112612414?u=bf6de9a1ab17326fe14de0709719fff3826526d0&v=4
+ url: https://github.com/iamantonreznik
+Azazul123:
+ login: Azazul123
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/102759111?u=b48ce6e30a81a23467cc30e0c011bcc57f0326ab&v=4
+ url: https://github.com/Azazul123
+ykertytsky:
+ login: ykertytsky
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/83857001?u=1172902656ee604cf37f5e36abe938cd34a97a32&v=4
+ url: https://github.com/ykertytsky
+NavesSapnis:
+ login: NavesSapnis
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/79222417?u=b5b10291b8e9130ca84fd20f0a641e04ed94b6b1&v=4
+ url: https://github.com/NavesSapnis
+eqsdxr:
+ login: eqsdxr
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/157279130?u=58fddf77ed76966eaa8c73eea9bea4bb0c53b673&v=4
+ url: https://github.com/eqsdxr
+syedasamina56:
+ login: syedasamina56
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/183273097?v=4
+ url: https://github.com/syedasamina56
diff --git a/docs/en/data/translators.yml b/docs/en/data/translators.yml
index 7b199dc085..410c9c8263 100644
--- a/docs/en/data/translators.yml
+++ b/docs/en/data/translators.yml
@@ -8,6 +8,16 @@ jaystone776:
count: 46
avatarUrl: https://avatars.githubusercontent.com/u/11191137?u=299205a95e9b6817a43144a48b643346a5aac5cc&v=4
url: https://github.com/jaystone776
+valentinDruzhinin:
+ login: valentinDruzhinin
+ count: 29
+ avatarUrl: https://avatars.githubusercontent.com/u/12831905?u=aae1ebc675c91e8fa582df4fcc4fc4128106344d&v=4
+ url: https://github.com/valentinDruzhinin
+ceb10n:
+ login: ceb10n
+ count: 27
+ avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
+ url: https://github.com/ceb10n
tokusumi:
login: tokusumi
count: 23
@@ -23,11 +33,6 @@ hasansezertasan:
count: 22
avatarUrl: https://avatars.githubusercontent.com/u/13135006?u=99f0b0f0fc47e88e8abb337b4447357939ef93e7&v=4
url: https://github.com/hasansezertasan
-ceb10n:
- login: ceb10n
- count: 22
- avatarUrl: https://avatars.githubusercontent.com/u/235213?u=edcce471814a1eba9f0cdaa4cd0de18921a940a6&v=4
- url: https://github.com/ceb10n
waynerv:
login: waynerv
count: 20
@@ -43,6 +48,11 @@ hard-coders:
count: 15
avatarUrl: https://avatars.githubusercontent.com/u/9651103?u=95db33927bbff1ed1c07efddeb97ac2ff33068ed&v=4
url: https://github.com/hard-coders
+Joao-Pedro-P-Holanda:
+ login: Joao-Pedro-P-Holanda
+ count: 14
+ avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4
+ url: https://github.com/Joao-Pedro-P-Holanda
codingjenny:
login: codingjenny
count: 14
@@ -53,11 +63,11 @@ Xewus:
count: 13
avatarUrl: https://avatars.githubusercontent.com/u/85196001?u=f8e2dc7e5104f109cef944af79050ea8d1b8f914&v=4
url: https://github.com/Xewus
-Joao-Pedro-P-Holanda:
- login: Joao-Pedro-P-Holanda
- count: 12
- avatarUrl: https://avatars.githubusercontent.com/u/110267046?u=331bd016326dac4cf3df4848f6db2dbbf8b5f978&v=4
- url: https://github.com/Joao-Pedro-P-Holanda
+Zhongheng-Cheng:
+ login: Zhongheng-Cheng
+ count: 13
+ avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4
+ url: https://github.com/Zhongheng-Cheng
Smlep:
login: Smlep
count: 11
@@ -93,11 +103,16 @@ pablocm83:
count: 8
avatarUrl: https://avatars.githubusercontent.com/u/28315068?u=3310fbb05bb8bfc50d2c48b6cb64ac9ee4a14549&v=4
url: https://github.com/pablocm83
-Zhongheng-Cheng:
- login: Zhongheng-Cheng
- count: 8
- avatarUrl: https://avatars.githubusercontent.com/u/95612344?u=a0f7730a3cc7486827965e01a119ad610bda4b0a&v=4
- url: https://github.com/Zhongheng-Cheng
+ptt3199:
+ login: ptt3199
+ count: 7
+ avatarUrl: https://avatars.githubusercontent.com/u/51350651?u=2c3d947a80283e32bf616d4c3af139a6be69680f&v=4
+ url: https://github.com/ptt3199
+NinaHwang:
+ login: NinaHwang
+ count: 6
+ avatarUrl: https://avatars.githubusercontent.com/u/79563565?u=241f2cb6d38a2d379536608a8ea5a22ed4b1a3ea&v=4
+ url: https://github.com/NinaHwang
batlopes:
login: batlopes
count: 6
@@ -106,7 +121,7 @@ batlopes:
lucasbalieiro:
login: lucasbalieiro
count: 6
- avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=5a395a69384e7fa0f9840ea32ef963d3f1cd9da4&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/37416577?u=dad91601ee4f40458d691774ec439aff308344d7&v=4
url: https://github.com/lucasbalieiro
Alexandrhub:
login: Alexandrhub
@@ -128,11 +143,6 @@ Attsun1031:
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/1175560?v=4
url: https://github.com/Attsun1031
-NinaHwang:
- login: NinaHwang
- count: 5
- avatarUrl: https://avatars.githubusercontent.com/u/79563565?u=241f2cb6d38a2d379536608a8ea5a22ed4b1a3ea&v=4
- url: https://github.com/NinaHwang
tiangolo:
login: tiangolo
count: 5
@@ -143,6 +153,11 @@ rostik1410:
count: 5
avatarUrl: https://avatars.githubusercontent.com/u/11443899?u=e26a635c2ba220467b308a326a579b8ccf4a8701&v=4
url: https://github.com/rostik1410
+alv2017:
+ login: alv2017
+ count: 5
+ avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
+ url: https://github.com/alv2017
komtaki:
login: komtaki
count: 4
@@ -188,6 +203,21 @@ kwang1215:
count: 4
avatarUrl: https://avatars.githubusercontent.com/u/74170199?u=2a63ff6692119dde3f5e5693365b9fcd6f977b08&v=4
url: https://github.com/kwang1215
+k94-ishi:
+ login: k94-ishi
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/32672580?u=bc7c5c07af0656be9fe4f1784a444af8d81ded89&v=4
+ url: https://github.com/k94-ishi
+Mohammad222PR:
+ login: Mohammad222PR
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/116789737?u=25810a5fe049d2f1618e2e7417cea011cc353ce4&v=4
+ url: https://github.com/Mohammad222PR
+NavesSapnis:
+ login: NavesSapnis
+ count: 4
+ avatarUrl: https://avatars.githubusercontent.com/u/79222417?u=b5b10291b8e9130ca84fd20f0a641e04ed94b6b1&v=4
+ url: https://github.com/NavesSapnis
jfunez:
login: jfunez
count: 3
@@ -196,7 +226,7 @@ jfunez:
ycd:
login: ycd
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=29682e4b6ac7d5293742ccf818188394b9a82972&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/62724709?u=f1e7bae394a315da950912c92dc861a8eaf95d4c&v=4
url: https://github.com/ycd
mariacamilagl:
login: mariacamilagl
@@ -233,11 +263,6 @@ Zssaer:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/45691504?u=4c0c195f25cb5ac6af32acfb0ab35427682938d2&v=4
url: https://github.com/Zssaer
-wdh99:
- login: wdh99
- count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/108172295?u=8a8fb95d5afe3e0fa33257b2aecae88d436249eb&v=4
- url: https://github.com/wdh99
ChuyuChoyeon:
login: ChuyuChoyeon
count: 3
@@ -256,12 +281,12 @@ mojtabapaso:
hsuanchi:
login: hsuanchi
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=0b094ae292292fee093818e37ceb645c114d2bff&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/24913710?u=7d25a398e478b6e63503bf6f26c54efa9e0da07b&v=4
url: https://github.com/hsuanchi
alejsdev:
login: alejsdev
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=356f39ff3f0211c720b06d3dbb060e98884085e3&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/90076947?u=638c65283ac9e9e2c3a0f9d1e3370db4b8a2c58d&v=4
url: https://github.com/alejsdev
riroan:
login: riroan
@@ -281,7 +306,7 @@ pe-brian:
maxscheijen:
login: maxscheijen
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/47034840?u=eb98f37882528ea349ca4e5255fa64ac3fef0294&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/47034840?v=4
url: https://github.com/maxscheijen
ilacftemp:
login: ilacftemp
@@ -313,11 +338,26 @@ nahyunkeem:
count: 3
avatarUrl: https://avatars.githubusercontent.com/u/174440096?u=e12401d492eee58570f8914d0872b52e421a776e&v=4
url: https://github.com/nahyunkeem
-alv2017:
- login: alv2017
+timothy-jeong:
+ login: timothy-jeong
count: 3
- avatarUrl: https://avatars.githubusercontent.com/u/31544722?v=4
- url: https://github.com/alv2017
+ avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=db3d0cea2f5fab64d810113c5039a369699a2774&v=4
+ url: https://github.com/timothy-jeong
+gerry-sabar:
+ login: gerry-sabar
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4
+ url: https://github.com/gerry-sabar
+Rishat-F:
+ login: Rishat-F
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/66554797?v=4
+ url: https://github.com/Rishat-F
+ruzia:
+ login: ruzia
+ count: 3
+ avatarUrl: https://avatars.githubusercontent.com/u/24503?v=4
+ url: https://github.com/ruzia
izaguerreiro:
login: izaguerreiro
count: 2
@@ -446,8 +486,13 @@ choi-haram:
imtiaz101325:
login: imtiaz101325
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/54007087?u=7a210ee38a0a30b7536226419b3b799620ad57d9&v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/54007087?u=194d972b501b9ea9d2ddeaed757c492936e0121a&v=4
url: https://github.com/imtiaz101325
+fabianfalon:
+ login: fabianfalon
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/3700760?u=95f69e31280b17ac22299cdcd345323b142fe0af&v=4
+ url: https://github.com/fabianfalon
waketzheng:
login: waketzheng
count: 2
@@ -476,15 +521,25 @@ andersonrocha0:
saeye:
login: saeye
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/62229734?v=4
+ avatarUrl: https://avatars.githubusercontent.com/u/62229734?u=312d619db2588b60d5d5bde65260a2f44fdc6c76&v=4
url: https://github.com/saeye
-timothy-jeong:
- login: timothy-jeong
+11kkw:
+ login: 11kkw
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/53824764?u=659311b6f6aeb0fbb8b527723fd4c83642f04327&v=4
- url: https://github.com/timothy-jeong
-gerry-sabar:
- login: gerry-sabar
+ avatarUrl: https://avatars.githubusercontent.com/u/21125286?v=4
+ url: https://github.com/11kkw
+yes0ng:
+ login: yes0ng
count: 2
- avatarUrl: https://avatars.githubusercontent.com/u/1120123?v=4
- url: https://github.com/gerry-sabar
+ avatarUrl: https://avatars.githubusercontent.com/u/25501794?u=3aed18b0d491e0220a167a1e9e58bea3638c6707&v=4
+ url: https://github.com/yes0ng
+EgorOnishchuk:
+ login: EgorOnishchuk
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/120256301?v=4
+ url: https://github.com/EgorOnishchuk
+EdmilsonRodrigues:
+ login: EdmilsonRodrigues
+ count: 2
+ avatarUrl: https://avatars.githubusercontent.com/u/62777025?u=217d6f3cd6cc750bb8818a3af7726c8d74eb7c2d&v=4
+ url: https://github.com/EdmilsonRodrigues
diff --git a/docs/en/docs/advanced/generate-clients.md b/docs/en/docs/advanced/generate-clients.md
index 3b9dc83f04..55e6a08b15 100644
--- a/docs/en/docs/advanced/generate-clients.md
+++ b/docs/en/docs/advanced/generate-clients.md
@@ -22,9 +22,9 @@ And it shows their true commitment to FastAPI and its **community** (you), as th
For example, you might want to try:
-* Speakeasy
+* Speakeasy
* Stainless
-* liblab
+* liblab
There are also several other companies offering similar services that you can search and find online. đ¤
diff --git a/docs/en/docs/advanced/index.md b/docs/en/docs/advanced/index.md
index 36f0720c0e..47385e2c69 100644
--- a/docs/en/docs/advanced/index.md
+++ b/docs/en/docs/advanced/index.md
@@ -19,18 +19,3 @@ And it's possible that for your use case, the solution is in one of them.
You could still use most of the features in **FastAPI** with the knowledge from the main [Tutorial - User Guide](../tutorial/index.md){.internal-link target=_blank}.
And the next sections assume you already read it, and assume that you know those main ideas.
-
-## External Courses
-
-Although the [Tutorial - User Guide](../tutorial/index.md){.internal-link target=_blank} and this **Advanced User Guide** are written as a guided tutorial (like a book) and should be enough for you to **learn FastAPI**, you might want to complement it with additional courses.
-
-Or it might be the case that you just prefer to take other courses because they adapt better to your learning style.
-
-Some course providers ⨠[**sponsor FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} â¨, this ensures the continued and healthy **development** of FastAPI and its **ecosystem**.
-
-And it shows their true commitment to FastAPI and its **community** (you), as they not only want to provide you a **good learning experience** but also want to make sure you have a **good and healthy framework**, FastAPI. đ
-
-You might want to try their courses:
-
-* Talk Python Training
-* Test-Driven Development
diff --git a/docs/en/docs/advanced/response-directly.md b/docs/en/docs/advanced/response-directly.md
index 691b1e7cdd..759b762b5d 100644
--- a/docs/en/docs/advanced/response-directly.md
+++ b/docs/en/docs/advanced/response-directly.md
@@ -58,7 +58,7 @@ You could put your XML content in a string, put that in a `Response`, and return
## Notes
-When you return a `Response` directly its data is not validated, converted (serialized), nor documented automatically.
+When you return a `Response` directly its data is not validated, converted (serialized), or documented automatically.
But you can still document it as described in [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}.
diff --git a/docs/en/docs/async.md b/docs/en/docs/async.md
index 63bd8ca685..8207ec4807 100644
--- a/docs/en/docs/async.md
+++ b/docs/en/docs/async.md
@@ -40,7 +40,7 @@ def results():
---
-If your application (somehow) doesn't have to communicate with anything else and wait for it to respond, use `async def`.
+If your application (somehow) doesn't have to communicate with anything else and wait for it to respond, use `async def`, even if you don't need to use `await` inside.
---
diff --git a/docs/en/docs/contributing.md b/docs/en/docs/contributing.md
index 1b70a0ea93..2583fd1fb9 100644
--- a/docs/en/docs/contributing.md
+++ b/docs/en/docs/contributing.md
@@ -181,6 +181,28 @@ as Uvicorn by default will use the port `8000`, the documentation on port `8008`
### Translations
+/// warning | Attention
+
+**Update on Translations**
+
+We're updating the way we handle documentation translations.
+
+Until now, we invited community members to translate pages via pull requests, which were then reviewed by at least two native speakers. While this has helped bring FastAPI to many more users, weâve also run into several challenges - some languages have only a few translated pages, others are outdated and hard to maintain over time.
+To improve this, weâre working on automation tools đ¤ to manage translations more efficiently. Once ready, documentation will be machine-translated and still reviewed by at least two native speakers â
before publishing. This will allow us to keep translations up-to-date while reducing the review burden on maintainers.
+
+Whatâs changing now:
+
+* đĢ Weâre no longer accepting new community-submitted translation PRs.
+
+* âŗ Existing open PRs will be reviewed and can still be merged if completed within the next 3 weeks (since July 11 2025).
+
+* đ In the future, we will only support languages where at least three active native speakers are available to review and maintain translations.
+
+This transition will help us keep translations more consistent and timely while better supporting our contributors đ. Thank you to everyone who has contributed so far â your help has been invaluable! đ
+
+///
+
+
Help with translations is VERY MUCH appreciated! And it can't be done without the help from the community. đ đ
Here are the steps to help with translations.
@@ -293,30 +315,47 @@ Now you can translate it all and see how it looks as you save the file.
Some of these files are updated very frequently and a translation would always be behind, or they include the main content from English source files, etc.
+#### Request a New Language
+
+Let's say that you want to request translations for a language that is not yet translated, not even some pages. For example, Latin.
+
+If there is no discussion for that language, you can start by requesting the new language. For that, you can follow these steps:
+
+* Create a new discussion following the template.
+* Get a few native speakers to comment on the discussion and commit to help review translations for that language.
+
+Once there are several people in the discussion, the FastAPI team can evaluate it and can make it an official translation.
+
+Then the docs will be automatically translated using AI, and the team of native speakers can review the translation, and help tweak the AI prompts.
+
+Once there's a new translation, for example if docs are updated or there's a new section, there will be a comment in the same discussion with the link to the new translation to review.
+
#### New Language
-Let's say that you want to add translations for a language that is not yet translated, not even some pages.
+/// note
-Let's say you want to add translations for Creole, and it's not yet there in the docs.
+These steps will be performed by the FastAPI team.
-Checking the link from above, the code for "Creole" is `ht`.
+///
-The next step is to run the script to generate a new translation directory:
+Checking the link from above (List of ISO 639-1 codes), you can see that the 2-letter code for Latin is `la`.
+
+Now you can create a new directory for the new language, running the following script:
-
+
@@ -146,7 +146,7 @@ $ pip install "fastapi[standard]"
### Create it
-* Create a file `main.py` with:
+Create a file `main.py` with:
```Python
from typing import Union
@@ -468,15 +468,20 @@ Used by Starlette:
*
jinja2 - Required if you want to use the default template configuration.
* python-multipart - Required if you want to support form "parsing", with `request.form()`.
-Used by FastAPI / Starlette:
+Used by FastAPI:
* uvicorn - for the server that loads and serves your application. This includes `uvicorn[standard]`, which includes some dependencies (e.g. `uvloop`) needed for high performance serving.
-* `fastapi-cli` - to provide the `fastapi` command.
+* `fastapi-cli[standard]` - to provide the `fastapi` command.
+ * This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to FastAPI Cloud.
### Without `standard` Dependencies
If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`.
+### Without `fastapi-cloud-cli`
+
+If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`.
+
### Additional Optional Dependencies
There are some additional dependencies you might want to install.
diff --git a/docs/en/docs/release-notes.md b/docs/en/docs/release-notes.md
index ad8b85d0ef..b57ff80f0a 100644
--- a/docs/en/docs/release-notes.md
+++ b/docs/en/docs/release-notes.md
@@ -9,6 +9,363 @@ hide:
### Docs
+* đ Add discussion template for new language translation requests. PR [#13535](https://github.com/fastapi/fastapi/pull/13535) by [@alejsdev](https://github.com/alejsdev).
+
+### Translations
+
+* đ Update Portuguese Translation for `docs/pt/docs/async.md`. PR [#13863](https://github.com/fastapi/fastapi/pull/13863) by [@EdmilsonRodrigues](https://github.com/EdmilsonRodrigues).
+* đ Fix highlight line in `docs/ja/docs/tutorial/body.md`. PR [#13927](https://github.com/fastapi/fastapi/pull/13927) by [@KoyoMiyazaki](https://github.com/KoyoMiyazaki).
+* đ Add Persian translation for `docs/fa/docs/environment-variables.md`. PR [#13923](https://github.com/fastapi/fastapi/pull/13923) by [@Mohammad222PR](https://github.com/Mohammad222PR).
+* đ Add Persian translation for `docs/fa/docs/python-types.md`. PR [#13524](https://github.com/fastapi/fastapi/pull/13524) by [@Mohammad222PR](https://github.com/Mohammad222PR).
+* đ Update Portuguese Translation for `docs/pt/docs/project-generation.md`. PR [#13875](https://github.com/fastapi/fastapi/pull/13875) by [@EdmilsonRodrigues](https://github.com/EdmilsonRodrigues).
+* đ Add Persian translation for `docs/fa/docs/async.md`. PR [#13541](https://github.com/fastapi/fastapi/pull/13541) by [@Mohammad222PR](https://github.com/Mohammad222PR).
+* đ Add Bangali translation for `docs/bn/about/index.md`. PR [#13882](https://github.com/fastapi/fastapi/pull/13882) by [@sajjadrahman56](https://github.com/sajjadrahman56).
+
+### Internal
+
+* đĨ Update FastAPI People - Experts. PR [#13963](https://github.com/fastapi/fastapi/pull/13963) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump ruff from 0.11.2 to 0.12.7. PR [#13957](https://github.com/fastapi/fastapi/pull/13957) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump cairosvg from 2.7.1 to 2.8.2. PR [#13959](https://github.com/fastapi/fastapi/pull/13959) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump pydantic-ai from 0.0.30 to 0.4.10. PR [#13958](https://github.com/fastapi/fastapi/pull/13958) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13962](https://github.com/fastapi/fastapi/pull/13962) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump mkdocs-material from 9.6.15 to 9.6.16. PR [#13961](https://github.com/fastapi/fastapi/pull/13961) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump tiangolo/latest-changes from 0.3.2 to 0.4.0. PR [#13952](https://github.com/fastapi/fastapi/pull/13952) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đĨ Update FastAPI People - Sponsors. PR [#13956](https://github.com/fastapi/fastapi/pull/13956) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13955](https://github.com/fastapi/fastapi/pull/13955) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: Databento link and sponsors_badge data. PR [#13954](https://github.com/fastapi/fastapi/pull/13954) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: Add Railway. PR [#13953](https://github.com/fastapi/fastapi/pull/13953) by [@tiangolo](https://github.com/tiangolo).
+* âī¸ Update translate script, update prompt to minimize generated diff. PR [#13947](https://github.com/fastapi/fastapi/pull/13947) by [@YuriiMotov](https://github.com/YuriiMotov).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13943](https://github.com/fastapi/fastapi/pull/13943) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âī¸ Tweak translate script and CI. PR [#13939](https://github.com/fastapi/fastapi/pull/13939) by [@tiangolo](https://github.com/tiangolo).
+* đˇ Add CI to translate with LLMs. PR [#13937](https://github.com/fastapi/fastapi/pull/13937) by [@tiangolo](https://github.com/tiangolo).
+* âī¸ Update translate script, show and update outdated translations. PR [#13933](https://github.com/fastapi/fastapi/pull/13933) by [@tiangolo](https://github.com/tiangolo).
+* đ¨ Refactor translate script with extra feedback (prints). PR [#13932](https://github.com/fastapi/fastapi/pull/13932) by [@tiangolo](https://github.com/tiangolo).
+* đ¨ Update translations script to remove old (removed) files. PR [#13928](https://github.com/fastapi/fastapi/pull/13928) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13894](https://github.com/fastapi/fastapi/pull/13894) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âŦ Update httpx requirement to >=0.23.0,<0.29.0. PR [#13114](https://github.com/fastapi/fastapi/pull/13114) by [@yan12125](https://github.com/yan12125).
+* đ§ Update sponsors: Add Mobb. PR [#13916](https://github.com/fastapi/fastapi/pull/13916) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Experts. PR [#13889](https://github.com/fastapi/fastapi/pull/13889) by [@tiangolo](https://github.com/tiangolo).
+* đ¨ Update FastAPI People sleep interval, use external settings. PR [#13888](https://github.com/fastapi/fastapi/pull/13888) by [@tiangolo](https://github.com/tiangolo).
+
+## 0.116.1
+
+### Upgrades
+
+* âŦī¸ Upgrade Starlette supported version range to `>=0.40.0,<0.48.0`. PR [#13884](https://github.com/fastapi/fastapi/pull/13884) by [@tiangolo](https://github.com/tiangolo).
+
+### Docs
+
+* đ Add notification about impending changes in Translations to `docs/en/docs/contributing.md`. PR [#13886](https://github.com/fastapi/fastapi/pull/13886) by [@YuriiMotov](https://github.com/YuriiMotov).
+
+### Internal
+
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13871](https://github.com/fastapi/fastapi/pull/13871) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+
+## 0.116.0
+
+### Features
+
+* ⨠Add support for deploying to FastAPI Cloud with `fastapi deploy`. PR [#13870](https://github.com/fastapi/fastapi/pull/13870) by [@tiangolo](https://github.com/tiangolo).
+
+Installing `fastapi[standard]` now includes `fastapi-cloud-cli`.
+
+This will allow you to deploy to [FastAPI Cloud](https://fastapicloud.com) with the `fastapi deploy` command.
+
+If you want to install `fastapi` with the standard dependencies but without `fastapi-cloud-cli`, you can install instead `fastapi[standard-no-fastapi-cloud-cli]`.
+
+### Translations
+
+* đ Add Russian translation for `docs/ru/docs/advanced/response-directly.md`. PR [#13801](https://github.com/fastapi/fastapi/pull/13801) by [@NavesSapnis](https://github.com/NavesSapnis).
+* đ Add Russian translation for `docs/ru/docs/advanced/additional-status-codes.md`. PR [#13799](https://github.com/fastapi/fastapi/pull/13799) by [@NavesSapnis](https://github.com/NavesSapnis).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/body-updates.md`. PR [#13804](https://github.com/fastapi/fastapi/pull/13804) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+
+### Internal
+
+* âŦ Bump pillow from 11.1.0 to 11.3.0. PR [#13852](https://github.com/fastapi/fastapi/pull/13852) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đĨ Update FastAPI People - Sponsors. PR [#13846](https://github.com/fastapi/fastapi/pull/13846) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13848](https://github.com/fastapi/fastapi/pull/13848) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump mkdocs-material from 9.6.1 to 9.6.15. PR [#13849](https://github.com/fastapi/fastapi/pull/13849) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13843](https://github.com/fastapi/fastapi/pull/13843) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13845](https://github.com/fastapi/fastapi/pull/13845) by [@tiangolo](https://github.com/tiangolo).
+
+## 0.115.14
+
+### Fixes
+
+* đ Fix support for unions when using `Form`. PR [#13827](https://github.com/fastapi/fastapi/pull/13827) by [@patrick91](https://github.com/patrick91).
+
+### Docs
+
+* âī¸ Fix grammar mistake in `docs/en/docs/advanced/response-directly.md`. PR [#13800](https://github.com/fastapi/fastapi/pull/13800) by [@NavesSapnis](https://github.com/NavesSapnis).
+* đ Update Speakeasy URL to Speakeasy Sandbox. PR [#13697](https://github.com/fastapi/fastapi/pull/13697) by [@ndimares](https://github.com/ndimares).
+
+### Translations
+
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/response-model.md`. PR [#13792](https://github.com/fastapi/fastapi/pull/13792) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/security/index.md`. PR [#13805](https://github.com/fastapi/fastapi/pull/13805) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* âī¸ Fix typo in `docs/ja/docs/tutorial/encoder.md`. PR [#13815](https://github.com/fastapi/fastapi/pull/13815) by [@ruzia](https://github.com/ruzia).
+* âī¸ Fix typo in `docs/ja/docs/tutorial/handling-errors.md`. PR [#13814](https://github.com/fastapi/fastapi/pull/13814) by [@ruzia](https://github.com/ruzia).
+* âī¸ Fix typo in `docs/ja/docs/tutorial/body-fields.md`. PR [#13802](https://github.com/fastapi/fastapi/pull/13802) by [@ruzia](https://github.com/ruzia).
+* đ Add Russian translation for `docs/ru/docs/advanced/index.md`. PR [#13797](https://github.com/fastapi/fastapi/pull/13797) by [@NavesSapnis](https://github.com/NavesSapnis).
+
+### Internal
+
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13823](https://github.com/fastapi/fastapi/pull/13823) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+
+## 0.115.13
+
+### Fixes
+
+* đ Fix truncating the model's description with form feed (`\f`) character for Pydantic V2. PR [#13698](https://github.com/fastapi/fastapi/pull/13698) by [@YuriiMotov](https://github.com/YuriiMotov).
+
+### Refactors
+
+* ⨠Add `refreshUrl` parameter in `OAuth2PasswordBearer`. PR [#11460](https://github.com/fastapi/fastapi/pull/11460) by [@snosratiershad](https://github.com/snosratiershad).
+* đ¸ Set format to password for fields `password` and `client_secret` in `OAuth2PasswordRequestForm`, make docs show password fields for passwords. PR [#11032](https://github.com/fastapi/fastapi/pull/11032) by [@Thodoris1999](https://github.com/Thodoris1999).
+* â
Simplify tests for `settings`. PR [#13505](https://github.com/fastapi/fastapi/pull/13505) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* â
Simplify tests for `validate_response_recursive`. PR [#13507](https://github.com/fastapi/fastapi/pull/13507) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+
+### Upgrades
+
+* âŦī¸ Update ReDoc to version 2.x. PR [#9700](https://github.com/fastapi/fastapi/pull/9700) by [@joakimnordling](https://github.com/joakimnordling).
+
+### Docs
+
+* đ Add annotations to HTTP middleware example. PR [#11530](https://github.com/fastapi/fastapi/pull/11530) by [@Kilo59](https://github.com/Kilo59).
+* đ Clarify in CORS docs that wildcards and credentials are mutually exclusive. PR [#9829](https://github.com/fastapi/fastapi/pull/9829) by [@dfioravanti](https://github.com/dfioravanti).
+* âī¸ Fix typo in docstring. PR [#13532](https://github.com/fastapi/fastapi/pull/13532) by [@comp64](https://github.com/comp64).
+* đ Clarify guidance on using `async def` without `await`. PR [#13642](https://github.com/fastapi/fastapi/pull/13642) by [@swastikpradhan1999](https://github.com/swastikpradhan1999).
+* đ Update exclude-parameters-from-openapi documentation links. PR [#13600](https://github.com/fastapi/fastapi/pull/13600) by [@timonrieger](https://github.com/timonrieger).
+* đ Clarify the middleware execution order in docs. PR [#13699](https://github.com/fastapi/fastapi/pull/13699) by [@YuriiMotov](https://github.com/YuriiMotov).
+* đą Update Drawio diagrams SVGs, single file per diagram, sans-serif font. PR [#13706](https://github.com/fastapi/fastapi/pull/13706) by [@tiangolo](https://github.com/tiangolo).
+* đ Update docs for "Help FastAPI", simplify and reduce "sponsor" section. PR [#13670](https://github.com/fastapi/fastapi/pull/13670) by [@tiangolo](https://github.com/tiangolo).
+* đ Remove unnecessary bullet from docs. PR [#13641](https://github.com/fastapi/fastapi/pull/13641) by [@Adamowoc](https://github.com/Adamowoc).
+* âī¸ Fix syntax error in `docs/en/docs/tutorial/handling-errors.md`. PR [#13623](https://github.com/fastapi/fastapi/pull/13623) by [@gsheni](https://github.com/gsheni).
+* đ Fix typo in documentation. PR [#13599](https://github.com/fastapi/fastapi/pull/13599) by [@Taoup](https://github.com/Taoup).
+* đ Fix liblab client generation doc link. PR [#13571](https://github.com/fastapi/fastapi/pull/13571) by [@EFord36](https://github.com/EFord36).
+* âī¸ Fix talk information typo. PR [#13544](https://github.com/fastapi/fastapi/pull/13544) by [@blueswen](https://github.com/blueswen).
+* đ Add External Link: Taiwanese talk on FastAPI with observability . PR [#13527](https://github.com/fastapi/fastapi/pull/13527) by [@blueswen](https://github.com/blueswen).
+
+### Translations
+
+* đ Add Russian Translation for `docs/ru/docs/advanced/response-change-status-code.md`. PR [#13791](https://github.com/fastapi/fastapi/pull/13791) by [@NavesSapnis](https://github.com/NavesSapnis).
+* đ Add Persian translation for `docs/fa/docs/learn/index.md`. PR [#13518](https://github.com/fastapi/fastapi/pull/13518) by [@Mohammad222PR](https://github.com/Mohammad222PR).
+* đ Add Korean translation for `docs/ko/docs/advanced/sub-applications.md`. PR [#4543](https://github.com/fastapi/fastapi/pull/4543) by [@NinaHwang](https://github.com/NinaHwang).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/schema-extra-example.md`. PR [#13769](https://github.com/fastapi/fastapi/pull/13769) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* âī¸ Remove redundant words in docs/zh/docs/python-types.md. PR [#13774](https://github.com/fastapi/fastapi/pull/13774) by [@CharleeWa](https://github.com/CharleeWa).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/query-param-models.md`. PR [#13748](https://github.com/fastapi/fastapi/pull/13748) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Bengali translation for `docs/bn/docs/environment-variables.md`. PR [#13629](https://github.com/fastapi/fastapi/pull/13629) by [@SakibSibly](https://github.com/SakibSibly).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/query-params-str-validations.md` page. PR [#13546](https://github.com/fastapi/fastapi/pull/13546) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Russian translation for `docs/ru/docs/tutorial/cookie-param-models.md`. PR [#13616](https://github.com/fastapi/fastapi/pull/13616) by [@EgorOnishchuk](https://github.com/EgorOnishchuk).
+* đ Add Korean translation for `docs/ko/docs/tutorial/extra-models.md`. PR [#13063](https://github.com/fastapi/fastapi/pull/13063) by [@timothy-jeong](https://github.com/timothy-jeong).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/path-params-numeric-validations.md` page. PR [#13548](https://github.com/fastapi/fastapi/pull/13548) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/middleware.md` page. PR [#13520](https://github.com/fastapi/fastapi/pull/13520) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/background-tasks.md` page. PR [#13502](https://github.com/fastapi/fastapi/pull/13502) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/cors.md` page. PR [#13519](https://github.com/fastapi/fastapi/pull/13519) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Update Korean translation for `docs/ko/docs/advanced/events.md`. PR [#13487](https://github.com/fastapi/fastapi/pull/13487) by [@bom1215](https://github.com/bom1215).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/handling-errors.md` page. PR [#13420](https://github.com/fastapi/fastapi/pull/13420) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Russian translation for `docs/ru/docs/tutorial/request-form-models.md`. PR [#13552](https://github.com/fastapi/fastapi/pull/13552) by [@EgorOnishchuk](https://github.com/EgorOnishchuk).
+* đ Fix internal anchor link in Spanish deployment docs. PR [#13737](https://github.com/fastapi/fastapi/pull/13737) by [@fabianfalon](https://github.com/fabianfalon).
+* đ Update Korean translation for `docs/ko/docs/virtual-environments.md`. PR [#13630](https://github.com/fastapi/fastapi/pull/13630) by [@sungchan1](https://github.com/sungchan1).
+* đ Add Russian translation for `docs/ru/docs/tutorial/header-param-models.md`. PR [#13526](https://github.com/fastapi/fastapi/pull/13526) by [@minaton-ru](https://github.com/minaton-ru).
+* đ Update Chinese translation for `docs/zh/docs/tutorial/index.md`. PR [#13374](https://github.com/fastapi/fastapi/pull/13374) by [@Zhongheng-Cheng](https://github.com/Zhongheng-Cheng).
+* đ Update Chinese translation for `docs/zh/docs/deployment/manually.md`. PR [#13324](https://github.com/fastapi/fastapi/pull/13324) by [@Zhongheng-Cheng](https://github.com/Zhongheng-Cheng).
+* đ Update Chinese translation for `docs/zh/docs/deployment/server-workers.md`. PR [#13292](https://github.com/fastapi/fastapi/pull/13292) by [@Zhongheng-Cheng](https://github.com/Zhongheng-Cheng).
+* đ Update Chinese translation for `docs/zh/docs/tutorial/first-steps.md`. PR [#13348](https://github.com/fastapi/fastapi/pull/13348) by [@Zhongheng-Cheng](https://github.com/Zhongheng-Cheng).
+
+### Internal
+
+* đ¨ Resolve Pydantic deprecation warnings in internal script. PR [#13696](https://github.com/fastapi/fastapi/pull/13696) by [@emmanuel-ferdman](https://github.com/emmanuel-ferdman).
+* đ§ Update sponsors: remove Porter. PR [#13783](https://github.com/fastapi/fastapi/pull/13783) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13781](https://github.com/fastapi/fastapi/pull/13781) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13757](https://github.com/fastapi/fastapi/pull/13757) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âŦ Bump griffe-typingdoc from 0.2.7 to 0.2.8. PR [#13751](https://github.com/fastapi/fastapi/pull/13751) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đą Update sponsors: Dribia badge size. PR [#13773](https://github.com/fastapi/fastapi/pull/13773) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: add Dribia. PR [#13771](https://github.com/fastapi/fastapi/pull/13771) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump typer from 0.15.3 to 0.16.0. PR [#13752](https://github.com/fastapi/fastapi/pull/13752) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13754](https://github.com/fastapi/fastapi/pull/13754) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Sponsors. PR [#13750](https://github.com/fastapi/fastapi/pull/13750) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13749](https://github.com/fastapi/fastapi/pull/13749) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13736](https://github.com/fastapi/fastapi/pull/13736) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* đ§ Update sponsors: Add InterviewPal. PR [#13728](https://github.com/fastapi/fastapi/pull/13728) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Remove Google Analytics. PR [#13727](https://github.com/fastapi/fastapi/pull/13727) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: remove MongoDB. PR [#13725](https://github.com/fastapi/fastapi/pull/13725) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13711](https://github.com/fastapi/fastapi/pull/13711) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* đ§ Update sponsors: add Subtotal. PR [#13701](https://github.com/fastapi/fastapi/pull/13701) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: remove deepset / Haystack. PR [#13700](https://github.com/fastapi/fastapi/pull/13700) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13688](https://github.com/fastapi/fastapi/pull/13688) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* đĨ Update FastAPI People - Experts. PR [#13671](https://github.com/fastapi/fastapi/pull/13671) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump typer from 0.12.5 to 0.15.3. PR [#13666](https://github.com/fastapi/fastapi/pull/13666) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump sqlmodel from 0.0.23 to 0.0.24. PR [#13665](https://github.com/fastapi/fastapi/pull/13665) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đ§ Update Sponsors: Zuplo logo and alt text. PR [#13645](https://github.com/fastapi/fastapi/pull/13645) by [@martyndavies](https://github.com/martyndavies).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13667](https://github.com/fastapi/fastapi/pull/13667) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update links for LinkedIn and bottom. PR [#13669](https://github.com/fastapi/fastapi/pull/13669) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: remove Bump.sh and Coherence. PR [#13668](https://github.com/fastapi/fastapi/pull/13668) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Sponsors. PR [#13664](https://github.com/fastapi/fastapi/pull/13664) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13662](https://github.com/fastapi/fastapi/pull/13662) by [@tiangolo](https://github.com/tiangolo).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13656](https://github.com/fastapi/fastapi/pull/13656) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* â
Use `inline-snapshot` to support different Pydantic versions in the test suite. PR [#12534](https://github.com/fastapi/fastapi/pull/12534) by [@15r10nk](https://github.com/15r10nk).
+* âŦ Bump astral-sh/setup-uv from 5 to 6. PR [#13648](https://github.com/fastapi/fastapi/pull/13648) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13634](https://github.com/fastapi/fastapi/pull/13634) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13619](https://github.com/fastapi/fastapi/pull/13619) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#13594](https://github.com/fastapi/fastapi/pull/13594) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+* đĨ Update FastAPI People - Experts. PR [#13568](https://github.com/fastapi/fastapi/pull/13568) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13565](https://github.com/fastapi/fastapi/pull/13565) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Sponsors. PR [#13559](https://github.com/fastapi/fastapi/pull/13559) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13558](https://github.com/fastapi/fastapi/pull/13558) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump dirty-equals from 0.8.0 to 0.9.0. PR [#13561](https://github.com/fastapi/fastapi/pull/13561) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đ§ Clean up `docs/en/mkdocs.yml` configuration file. PR [#13542](https://github.com/fastapi/fastapi/pull/13542) by [@svlandeg](https://github.com/svlandeg).
+* âŦ [pre-commit.ci] pre-commit autoupdate. PR [#12986](https://github.com/fastapi/fastapi/pull/12986) by [@pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
+
+## 0.115.12
+
+### Fixes
+
+* đ Fix `convert_underscores=False` for header Pydantic models. PR [#13515](https://github.com/fastapi/fastapi/pull/13515) by [@tiangolo](https://github.com/tiangolo).
+
+### Docs
+
+* đ Update `docs/en/docs/tutorial/middleware.md`. PR [#13444](https://github.com/fastapi/fastapi/pull/13444) by [@Rishat-F](https://github.com/Rishat-F).
+* đĨ Update FastAPI People - Experts. PR [#13493](https://github.com/fastapi/fastapi/pull/13493) by [@tiangolo](https://github.com/tiangolo).
+
+### Translations
+
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/metadata.md` page. PR [#13459](https://github.com/fastapi/fastapi/pull/13459) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/response-status-code.md` page. PR [#13462](https://github.com/fastapi/fastapi/pull/13462) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/cookie-param-models.md` page. PR [#13460](https://github.com/fastapi/fastapi/pull/13460) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/header-param-models.md` page. PR [#13461](https://github.com/fastapi/fastapi/pull/13461) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Japanese translation for `docs/ja/docs/virtual-environments.md`. PR [#13304](https://github.com/fastapi/fastapi/pull/13304) by [@k94-ishi](https://github.com/k94-ishi).
+* đ Add Korean translation for `docs/ko/docs/tutorial/security/oauth2-jwt.md`. PR [#13333](https://github.com/fastapi/fastapi/pull/13333) by [@yes0ng](https://github.com/yes0ng).
+* đ Add Vietnamese translation for `docs/vi/docs/deployment/cloud.md`. PR [#13407](https://github.com/fastapi/fastapi/pull/13407) by [@ptt3199](https://github.com/ptt3199).
+
+### Internal
+
+* âŦ Bump pydantic-ai from 0.0.15 to 0.0.30. PR [#13438](https://github.com/fastapi/fastapi/pull/13438) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump sqlmodel from 0.0.22 to 0.0.23. PR [#13437](https://github.com/fastapi/fastapi/pull/13437) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump black from 24.10.0 to 25.1.0. PR [#13436](https://github.com/fastapi/fastapi/pull/13436) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump ruff to 0.9.4. PR [#13299](https://github.com/fastapi/fastapi/pull/13299) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đ§ Update sponsors: pause TestDriven. PR [#13446](https://github.com/fastapi/fastapi/pull/13446) by [@tiangolo](https://github.com/tiangolo).
+
+## 0.115.11
+
+### Fixes
+
+* đ Add docs examples and tests (support) for `Annotated` custom validations, like `AfterValidator`, revert [#13440](https://github.com/fastapi/fastapi/pull/13440). PR [#13442](https://github.com/fastapi/fastapi/pull/13442) by [@tiangolo](https://github.com/tiangolo).
+ * New docs: [Query Parameters and String Validations - Custom Validation](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#custom-validation).
+
+### Translations
+
+* đ Add Russian translation for `docs/ru/docs/tutorial/middleware.md`. PR [#13412](https://github.com/fastapi/fastapi/pull/13412) by [@alv2017](https://github.com/alv2017).
+
+### Internal
+
+* đĨ Update FastAPI GitHub topic repositories. PR [#13439](https://github.com/fastapi/fastapi/pull/13439) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13432](https://github.com/fastapi/fastapi/pull/13432) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Sponsors. PR [#13433](https://github.com/fastapi/fastapi/pull/13433) by [@tiangolo](https://github.com/tiangolo).
+
+## 0.115.10
+
+### Fixes
+
+* âģī¸ Update internal annotation usage for compatibility with Pydantic 2.11. PR [#13314](https://github.com/fastapi/fastapi/pull/13314) by [@Viicos](https://github.com/Viicos).
+
+### Upgrades
+
+* âŦī¸ Bump Starlette to allow up to 0.46.0: `>=0.40.0,<0.47.0`. PR [#13426](https://github.com/fastapi/fastapi/pull/13426) by [@musicinmybrain](https://github.com/musicinmybrain).
+
+### Translations
+
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/debugging.md`. PR [#13370](https://github.com/fastapi/fastapi/pull/13370) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/query-params.md`. PR [#13362](https://github.com/fastapi/fastapi/pull/13362) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/path-params.md`. PR [#13354](https://github.com/fastapi/fastapi/pull/13354) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Japanese translation for `docs/ja/docs/tutorial/cookie-param-models.md`. PR [#13330](https://github.com/fastapi/fastapi/pull/13330) by [@k94-ishi](https://github.com/k94-ishi).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/body-multiple-params.md`. PR [#13408](https://github.com/fastapi/fastapi/pull/13408) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Japanese translation for `docs/ja/docs/tutorial/query-param-models.md`. PR [#13323](https://github.com/fastapi/fastapi/pull/13323) by [@k94-ishi](https://github.com/k94-ishi).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/body-nested-models.md`. PR [#13409](https://github.com/fastapi/fastapi/pull/13409) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Vietnamese translation for `docs/vi/docs/deployment/versions.md`. PR [#13406](https://github.com/fastapi/fastapi/pull/13406) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Vietnamese translation for `docs/vi/docs/deployment/index.md`. PR [#13405](https://github.com/fastapi/fastapi/pull/13405) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/request-forms.md`. PR [#13383](https://github.com/fastapi/fastapi/pull/13383) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/testing.md`. PR [#13371](https://github.com/fastapi/fastapi/pull/13371) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+
+## 0.115.9
+
+### Fixes
+
+* đ Ensure that `HTTPDigest` only raises an exception when `auto_error is True`. PR [#2939](https://github.com/fastapi/fastapi/pull/2939) by [@arthurio](https://github.com/arthurio).
+
+### Refactors
+
+* â
Simplify tests for `query_params_str_validations`. PR [#13218](https://github.com/fastapi/fastapi/pull/13218) by [@alv2017](https://github.com/alv2017).
+* â
Simplify tests for `app_testing`. PR [#13220](https://github.com/fastapi/fastapi/pull/13220) by [@alv2017](https://github.com/alv2017).
+* â
Simplify tests for `dependency_testing`. PR [#13223](https://github.com/fastapi/fastapi/pull/13223) by [@alv2017](https://github.com/alv2017).
+
+### Docs
+
+* đą Update sponsors: CodeRabbit logo. PR [#13424](https://github.com/fastapi/fastapi/pull/13424) by [@tiangolo](https://github.com/tiangolo).
+* đŠē Unify the badges across all tutorial translations. PR [#13329](https://github.com/fastapi/fastapi/pull/13329) by [@svlandeg](https://github.com/svlandeg).
+* đ Fix typos in virtual environments documentation. PR [#13396](https://github.com/fastapi/fastapi/pull/13396) by [@bullet-ant](https://github.com/bullet-ant).
+* đ Fix issue with Swagger theme change example in the official tutorial. PR [#13289](https://github.com/fastapi/fastapi/pull/13289) by [@Zerohertz](https://github.com/Zerohertz).
+* đ Add more precise description of HTTP status code range in docs. PR [#13347](https://github.com/fastapi/fastapi/pull/13347) by [@DanielYang59](https://github.com/DanielYang59).
+* đĨ Remove manual type annotations in JWT tutorial to avoid typing expectations (JWT doesn't provide more types). PR [#13378](https://github.com/fastapi/fastapi/pull/13378) by [@tiangolo](https://github.com/tiangolo).
+* đ Update docs for Query Params and String Validations, remove obsolete Ellipsis docs (`...`). PR [#13377](https://github.com/fastapi/fastapi/pull/13377) by [@tiangolo](https://github.com/tiangolo).
+* âī¸ Remove duplicate title in docs `body-multiple-params`. PR [#13345](https://github.com/fastapi/fastapi/pull/13345) by [@DanielYang59](https://github.com/DanielYang59).
+* đ Fix test badge. PR [#13313](https://github.com/fastapi/fastapi/pull/13313) by [@esadek](https://github.com/esadek).
+
+### Translations
+
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/header-params.md`. PR [#13381](https://github.com/fastapi/fastapi/pull/13381) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/request-files.md`. PR [#13395](https://github.com/fastapi/fastapi/pull/13395) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/request-form-models.md`. PR [#13384](https://github.com/fastapi/fastapi/pull/13384) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/request-forms-and-files.md`. PR [#13386](https://github.com/fastapi/fastapi/pull/13386) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Update Korean translation for `docs/ko/docs/help-fastapi.md`. PR [#13262](https://github.com/fastapi/fastapi/pull/13262) by [@Zerohertz](https://github.com/Zerohertz).
+* đ Add Korean translation for `docs/ko/docs/advanced/custom-response.md`. PR [#13265](https://github.com/fastapi/fastapi/pull/13265) by [@11kkw](https://github.com/11kkw).
+* đ Update Korean translation for `docs/ko/docs/tutorial/security/simple-oauth2.md`. PR [#13335](https://github.com/fastapi/fastapi/pull/13335) by [@yes0ng](https://github.com/yes0ng).
+* đ Add Russian translation for `docs/ru/docs/advanced/response-cookies.md`. PR [#13327](https://github.com/fastapi/fastapi/pull/13327) by [@Stepakinoyan](https://github.com/Stepakinoyan).
+* đ Add Vietnamese translation for `docs/vi/docs/tutorial/static-files.md`. PR [#11291](https://github.com/fastapi/fastapi/pull/11291) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Korean translation for `docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md`. PR [#13257](https://github.com/fastapi/fastapi/pull/13257) by [@11kkw](https://github.com/11kkw).
+* đ Add Vietnamese translation for `docs/vi/docs/virtual-environments.md`. PR [#13282](https://github.com/fastapi/fastapi/pull/13282) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Ukrainian translation for `docs/uk/docs/tutorial/static-files.md`. PR [#13285](https://github.com/fastapi/fastapi/pull/13285) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Vietnamese translation for `docs/vi/docs/environment-variables.md`. PR [#13287](https://github.com/fastapi/fastapi/pull/13287) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Vietnamese translation for `docs/vi/docs/fastapi-cli.md`. PR [#13294](https://github.com/fastapi/fastapi/pull/13294) by [@ptt3199](https://github.com/ptt3199).
+* đ Add Ukrainian translation for `docs/uk/docs/features.md`. PR [#13308](https://github.com/fastapi/fastapi/pull/13308) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Add Ukrainian translation for `docs/uk/docs/learn/index.md`. PR [#13306](https://github.com/fastapi/fastapi/pull/13306) by [@valentinDruzhinin](https://github.com/valentinDruzhinin).
+* đ Update Portuguese Translation for `docs/pt/docs/deployment/https.md`. PR [#13317](https://github.com/fastapi/fastapi/pull/13317) by [@Joao-Pedro-P-Holanda](https://github.com/Joao-Pedro-P-Holanda).
+* đ Update Portuguese Translation for `docs/pt/docs/index.md`. PR [#13328](https://github.com/fastapi/fastapi/pull/13328) by [@ceb10n](https://github.com/ceb10n).
+* đ Add Russian translation for `docs/ru/docs/advanced/websockets.md`. PR [#13279](https://github.com/fastapi/fastapi/pull/13279) by [@Rishat-F](https://github.com/Rishat-F).
+
+### Internal
+
+* â
Fix a minor bug in the test `tests/test_modules_same_name_body/test_main.py`. PR [#13411](https://github.com/fastapi/fastapi/pull/13411) by [@alv2017](https://github.com/alv2017).
+* đˇ Use `wrangler-action` v3. PR [#13415](https://github.com/fastapi/fastapi/pull/13415) by [@joakimnordling](https://github.com/joakimnordling).
+* đ§ Update sponsors: add CodeRabbit. PR [#13402](https://github.com/fastapi/fastapi/pull/13402) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update team: Add Ludovico. PR [#13390](https://github.com/fastapi/fastapi/pull/13390) by [@tiangolo](https://github.com/tiangolo).
+* đ§ Update sponsors: Add LambdaTest. PR [#13389](https://github.com/fastapi/fastapi/pull/13389) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump cloudflare/wrangler-action from 3.13 to 3.14. PR [#13350](https://github.com/fastapi/fastapi/pull/13350) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump mkdocs-material from 9.5.18 to 9.6.1. PR [#13301](https://github.com/fastapi/fastapi/pull/13301) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* âŦ Bump pillow from 11.0.0 to 11.1.0. PR [#13300](https://github.com/fastapi/fastapi/pull/13300) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đĨ Update FastAPI People - Sponsors. PR [#13295](https://github.com/fastapi/fastapi/pull/13295) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Experts. PR [#13303](https://github.com/fastapi/fastapi/pull/13303) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI GitHub topic repositories. PR [#13302](https://github.com/fastapi/fastapi/pull/13302) by [@tiangolo](https://github.com/tiangolo).
+* đĨ Update FastAPI People - Contributors and Translators. PR [#13293](https://github.com/fastapi/fastapi/pull/13293) by [@tiangolo](https://github.com/tiangolo).
+* âŦ Bump inline-snapshot from 0.18.1 to 0.19.3. PR [#13298](https://github.com/fastapi/fastapi/pull/13298) by [@dependabot[bot]](https://github.com/apps/dependabot).
+* đ§ Update sponsors, add Permit. PR [#13288](https://github.com/fastapi/fastapi/pull/13288) by [@tiangolo](https://github.com/tiangolo).
+
+## 0.115.8
+
+### Fixes
+
+* đ Fix `OAuth2PasswordRequestForm` and `OAuth2PasswordRequestFormStrict` fixed `grant_type` "password" RegEx. PR [#9783](https://github.com/fastapi/fastapi/pull/9783) by [@skarfie123](https://github.com/skarfie123).
+
+### Refactors
+
+* â
Simplify tests for body_multiple_params . PR [#13237](https://github.com/fastapi/fastapi/pull/13237) by [@alejsdev](https://github.com/alejsdev).
+* âģī¸ Move duplicated code portion to a static method in the `APIKeyBase` super class. PR [#3142](https://github.com/fastapi/fastapi/pull/3142) by [@ShahriyarR](https://github.com/ShahriyarR).
+* â
Simplify tests for request_files. PR [#13182](https://github.com/fastapi/fastapi/pull/13182) by [@alejsdev](https://github.com/alejsdev).
+
+### Docs
+
+* đ Change the word "unwrap" to "unpack" in `docs/en/docs/tutorial/extra-models.md`. PR [#13061](https://github.com/fastapi/fastapi/pull/13061) by [@timothy-jeong](https://github.com/timothy-jeong).
+* đ Update Request Body's `tutorial002` to deal with `tax=0` case. PR [#13230](https://github.com/fastapi/fastapi/pull/13230) by [@togogh](https://github.com/togogh).
* đĨ Update FastAPI People - Experts. PR [#13269](https://github.com/fastapi/fastapi/pull/13269) by [@tiangolo](https://github.com/tiangolo).
### Translations
@@ -20,6 +377,7 @@ hide:
### Internal
+* âŦī¸ Add support for Python 3.13. PR [#13274](https://github.com/fastapi/fastapi/pull/13274) by [@tiangolo](https://github.com/tiangolo).
* âŦī¸ Upgrade AnyIO max version for tests, new range: `>=3.2.1,<5.0.0`. PR [#13273](https://github.com/fastapi/fastapi/pull/13273) by [@tiangolo](https://github.com/tiangolo).
* đ§ Update Sponsors badges. PR [#13271](https://github.com/fastapi/fastapi/pull/13271) by [@tiangolo](https://github.com/tiangolo).
* âģī¸ Fix `notify_translations.py` empty env var handling for PR label events vs workflow_dispatch. PR [#13272](https://github.com/fastapi/fastapi/pull/13272) by [@tiangolo](https://github.com/tiangolo).
diff --git a/docs/en/docs/tutorial/bigger-applications.md b/docs/en/docs/tutorial/bigger-applications.md
index 605ced0d3c..f5f29a1737 100644
--- a/docs/en/docs/tutorial/bigger-applications.md
+++ b/docs/en/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* There's also a subdirectory `app/internal/` with another file `__init__.py`, so it's another "Python subpackage": `app.internal`.
* And the file `app/internal/admin.py` is another submodule: `app.internal.admin`.
-
+
The same file structure with comments:
@@ -270,7 +270,7 @@ But that file doesn't exist, our dependencies are in a file at `app/dependencies
Remember how our app/file structure looks like:
-
+
---
diff --git a/docs/en/docs/tutorial/body-multiple-params.md b/docs/en/docs/tutorial/body-multiple-params.md
index 9fced96526..71b308bb4a 100644
--- a/docs/en/docs/tutorial/body-multiple-params.md
+++ b/docs/en/docs/tutorial/body-multiple-params.md
@@ -10,8 +10,6 @@ And you can also declare body parameters as optional, by setting the default to
{* ../../docs_src/body_multiple_params/tutorial001_an_py310.py hl[18:20] *}
-## Multiple body parameters
-
/// note
Notice that, in this case, the `item` that would be taken from the body is optional. As it has a `None` default value.
diff --git a/docs/en/docs/tutorial/cors.md b/docs/en/docs/tutorial/cors.md
index cf31cfcf5d..5ca4437b34 100644
--- a/docs/en/docs/tutorial/cors.md
+++ b/docs/en/docs/tutorial/cors.md
@@ -57,7 +57,10 @@ The following arguments are supported:
* `allow_origin_regex` - A regex string to match against origins that should be permitted to make cross-origin requests. e.g. `'https://.*\.example\.org'`.
* `allow_methods` - A list of HTTP methods that should be allowed for cross-origin requests. Defaults to `['GET']`. You can use `['*']` to allow all standard methods.
* `allow_headers` - A list of HTTP request headers that should be supported for cross-origin requests. Defaults to `[]`. You can use `['*']` to allow all headers. The `Accept`, `Accept-Language`, `Content-Language` and `Content-Type` headers are always allowed for simple CORS requests.
-* `allow_credentials` - Indicate that cookies should be supported for cross-origin requests. Defaults to `False`. Also, `allow_origins` cannot be set to `['*']` for credentials to be allowed, origins must be specified.
+* `allow_credentials` - Indicate that cookies should be supported for cross-origin requests. Defaults to `False`.
+
+ None of `allow_origins`, `allow_methods` and `allow_headers` can be set to `['*']` if `allow_credentials` is set to `True`. All of them must be explicitly specified.
+
* `expose_headers` - Indicate any response headers that should be made accessible to the browser. Defaults to `[]`.
* `max_age` - Sets a maximum time in seconds for browsers to cache CORS responses. Defaults to `600`.
diff --git a/docs/en/docs/tutorial/extra-models.md b/docs/en/docs/tutorial/extra-models.md
index 5fac3f69e0..ed1590ece1 100644
--- a/docs/en/docs/tutorial/extra-models.md
+++ b/docs/en/docs/tutorial/extra-models.md
@@ -70,9 +70,9 @@ we would get a Python `dict` with:
}
```
-#### Unwrapping a `dict`
+#### Unpacking a `dict`
-If we take a `dict` like `user_dict` and pass it to a function (or class) with `**user_dict`, Python will "unwrap" it. It will pass the keys and values of the `user_dict` directly as key-value arguments.
+If we take a `dict` like `user_dict` and pass it to a function (or class) with `**user_dict`, Python will "unpack" it. It will pass the keys and values of the `user_dict` directly as key-value arguments.
So, continuing with the `user_dict` from above, writing:
@@ -117,11 +117,11 @@ would be equivalent to:
UserInDB(**user_in.dict())
```
-...because `user_in.dict()` is a `dict`, and then we make Python "unwrap" it by passing it to `UserInDB` prefixed with `**`.
+...because `user_in.dict()` is a `dict`, and then we make Python "unpack" it by passing it to `UserInDB` prefixed with `**`.
So, we get a Pydantic model from the data in another Pydantic model.
-#### Unwrapping a `dict` and extra keywords
+#### Unpacking a `dict` and extra keywords
And then adding the extra keyword argument `hashed_password=hashed_password`, like in:
diff --git a/docs/en/docs/tutorial/handling-errors.md b/docs/en/docs/tutorial/handling-errors.md
index 4d969747f6..5b8e677e49 100644
--- a/docs/en/docs/tutorial/handling-errors.md
+++ b/docs/en/docs/tutorial/handling-errors.md
@@ -35,7 +35,7 @@ Because it's a Python exception, you don't `return` it, you `raise` it.
This also means that if you are inside a utility function that you are calling inside of your *path operation function*, and you raise the `HTTPException` from inside of that utility function, it won't run the rest of the code in the *path operation function*, it will terminate that request right away and send the HTTP error from the `HTTPException` to the client.
-The benefit of raising an exception over `return`ing a value will be more evident in the section about Dependencies and Security.
+The benefit of raising an exception over returning a value will be more evident in the section about Dependencies and Security.
In this example, when the client requests an item by an ID that doesn't exist, raise an exception with a status code of `404`:
@@ -252,4 +252,4 @@ If you want to use the exception along with the same default exception handlers
{* ../../docs_src/handling_errors/tutorial006.py hl[2:5,15,21] *}
-In this example you are just `print`ing the error with a very expressive message, but you get the idea. You can use the exception and then just reuse the default exception handlers.
+In this example you are just printing the error with a very expressive message, but you get the idea. You can use the exception and then just reuse the default exception handlers.
diff --git a/docs/en/docs/tutorial/header-param-models.md b/docs/en/docs/tutorial/header-param-models.md
index 73950a6680..4cdf097057 100644
--- a/docs/en/docs/tutorial/header-param-models.md
+++ b/docs/en/docs/tutorial/header-param-models.md
@@ -51,6 +51,22 @@ For example, if the client tries to send a `tool` header with a value of `plumbu
}
```
+## Disable Convert Underscores
+
+The same way as with regular header parameters, when you have underscore characters in the parameter names, they are **automatically converted to hyphens**.
+
+For example, if you have a header parameter `save_data` in the code, the expected HTTP header will be `save-data`, and it will show up like that in the docs.
+
+If for some reason you need to disable this automatic conversion, you can do it as well for Pydantic models for header parameters.
+
+{* ../../docs_src/header_param_models/tutorial003_an_py310.py hl[19] *}
+
+/// warning
+
+Before setting `convert_underscores` to `False`, bear in mind that some HTTP proxies and servers disallow the usage of headers with underscores.
+
+///
+
## Summary
You can use **Pydantic models** to declare **headers** in **FastAPI**. đ
diff --git a/docs/en/docs/tutorial/index.md b/docs/en/docs/tutorial/index.md
index 4fe38256c7..17f6fb6857 100644
--- a/docs/en/docs/tutorial/index.md
+++ b/docs/en/docs/tutorial/index.md
@@ -76,10 +76,12 @@ $ pip install "fastapi[standard]"
/// note
-When you install with `pip install "fastapi[standard]"` it comes with some default optional standard dependencies.
+When you install with `pip install "fastapi[standard]"` it comes with some default optional standard dependencies, including `fastapi-cloud-cli`, which allows you to deploy to FastAPI Cloud.
If you don't want to have those optional dependencies, you can instead install `pip install fastapi`.
+If you want to install the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`.
+
///
## Advanced User Guide
diff --git a/docs/en/docs/tutorial/middleware.md b/docs/en/docs/tutorial/middleware.md
index 53c47a0857..b7c03a3199 100644
--- a/docs/en/docs/tutorial/middleware.md
+++ b/docs/en/docs/tutorial/middleware.md
@@ -15,7 +15,7 @@ A "middleware" is a function that works with every **request** before it is proc
If you have dependencies with `yield`, the exit code will run *after* the middleware.
-If there were any background tasks (documented later), they will run *after* all the middleware.
+If there were any background tasks (covered in the [Background Tasks](background-tasks.md){.internal-link target=_blank} section, you will see it later), they will run *after* all the middleware.
///
@@ -65,6 +65,29 @@ Here we use ../../docs_src/query_params_str_validations/tutorial002_an_py310.py!}
-```
-
-////
-
-//// tab | Python 3.8+
-
-In versions of Python below Python 3.9 you import `Annotated` from `typing_extensions`.
-
-It will already be installed with FastAPI.
-
-```Python hl_lines="3-4"
-{!> ../../docs_src/query_params_str_validations/tutorial002_an.py!}
-```
-
-////
+{* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *}
/// info
@@ -145,54 +125,23 @@ As in this case (without using `Annotated`) we have to replace the default value
So:
-```Python
-q: Union[str, None] = Query(default=None)
-```
-
-...makes the parameter optional, with a default value of `None`, the same as:
-
-```Python
-q: Union[str, None] = None
-```
-
-And in Python 3.10 and above:
-
```Python
q: str | None = Query(default=None)
```
...makes the parameter optional, with a default value of `None`, the same as:
+
```Python
q: str | None = None
```
-But the `Query` versions declare it explicitly as being a query parameter.
-
-/// info
-
-Keep in mind that the most important part to make a parameter optional is the part:
-
-```Python
-= None
-```
-
-or the:
-
-```Python
-= Query(default=None)
-```
-
-as it will use that `None` as the default value, and that way make the parameter **not required**.
-
-The `Union[str, None]` part allows your editor to provide better support, but it is not what tells FastAPI that this parameter is not required.
-
-///
+But the `Query` version declares it explicitly as being a query parameter.
Then, we can pass more parameters to `Query`. In this case, the `max_length` parameter that applies to strings:
```Python
-q: Union[str, None] = Query(default=None, max_length=50)
+q: str | None = Query(default=None, max_length=50)
```
This will validate the data, show a clear error when the data is not valid, and document the parameter in the OpenAPI schema *path operation*.
@@ -201,7 +150,7 @@ This will validate the data, show a clear error when the data is not valid, and
Keep in mind that when using `Query` inside of `Annotated` you cannot use the `default` parameter for `Query`.
-Instead use the actual default value of the function parameter. Otherwise, it would be inconsistent.
+Instead, use the actual default value of the function parameter. Otherwise, it would be inconsistent.
For example, this is not allowed:
@@ -255,7 +204,7 @@ This specific regular expression pattern checks that the received parameter valu
If you feel lost with all these **"regular expression"** ideas, don't worry. They are a hard topic for many people. You can still do a lot of stuff without needing regular expressions yet.
-But whenever you need them and go and learn them, know that you can already use them directly in **FastAPI**.
+Now you know that whenever you need them you can use them in **FastAPI**.
### Pydantic v1 `regex` instead of `pattern`
@@ -296,7 +245,7 @@ q: str
instead of:
```Python
-q: Union[str, None] = None
+q: str | None = None
```
But we are now declaring it with `Query`, for example like:
@@ -304,15 +253,7 @@ But we are now declaring it with `Query`, for example like:
//// tab | Annotated
```Python
-q: Annotated[Union[str, None], Query(min_length=3)] = None
-```
-
-////
-
-//// tab | non-Annotated
-
-```Python
-q: Union[str, None] = Query(default=None, min_length=3)
+q: Annotated[str | None, Query(min_length=3)] = None
```
////
@@ -321,42 +262,14 @@ So, when you need to declare a value as required while using `Query`, you can si
{* ../../docs_src/query_params_str_validations/tutorial006_an_py39.py hl[9] *}
-### Required with Ellipsis (`...`)
-
-There's an alternative way to explicitly declare that a value is required. You can set the default to the literal value `...`:
-
-{* ../../docs_src/query_params_str_validations/tutorial006b_an_py39.py hl[9] *}
-
-/// info
-
-If you hadn't seen that `...` before: it is a special single value, it is part of Python and is called "Ellipsis".
-
-It is used by Pydantic and FastAPI to explicitly declare that a value is required.
-
-///
-
-This will let **FastAPI** know that this parameter is required.
-
### Required, can be `None`
You can declare that a parameter can accept `None`, but that it's still required. This would force clients to send a value, even if the value is `None`.
-To do that, you can declare that `None` is a valid type but still use `...` as the default:
+To do that, you can declare that `None` is a valid type but simply do not declare a default value:
{* ../../docs_src/query_params_str_validations/tutorial006c_an_py310.py hl[9] *}
-/// tip
-
-Pydantic, which is what powers all the data validation and serialization in FastAPI, has a special behavior when you use `Optional` or `Union[Something, None]` without a default value, you can read more about it in the Pydantic docs about Required fields.
-
-///
-
-/// tip
-
-Remember that in most of the cases, when something is required, you can simply omit the default, so you normally don't have to use `...`.
-
-///
-
## Query parameter list / multiple values
When you define a query parameter explicitly with `Query` you can also declare it to receive a list of values, or said in another way, to receive multiple values.
@@ -396,7 +309,7 @@ The interactive API docs will update accordingly, to allow multiple values:
### Query parameter list / multiple values with defaults
-And you can also define a default `list` of values if none are provided:
+You can also define a default `list` of values if none are provided:
{* ../../docs_src/query_params_str_validations/tutorial012_an_py39.py hl[9] *}
@@ -419,7 +332,7 @@ the default of `q` will be: `["foo", "bar"]` and your response will be:
#### Using just `list`
-You can also use `list` directly instead of `List[str]` (or `list[str]` in Python 3.9+):
+You can also use `list` directly instead of `list[str]`:
{* ../../docs_src/query_params_str_validations/tutorial013_an_py39.py hl[9] *}
@@ -427,7 +340,7 @@ You can also use `list` directly instead of `List[str]` (or `list[str]` in Pytho
Keep in mind that in this case, FastAPI won't check the contents of the list.
-For example, `List[int]` would check (and document) that the contents of the list are integers. But `list` alone wouldn't.
+For example, `list[int]` would check (and document) that the contents of the list are integers. But `list` alone wouldn't.
///
@@ -493,6 +406,68 @@ To exclude a query parameter from the generated OpenAPI schema (and thus, from t
{* ../../docs_src/query_params_str_validations/tutorial014_an_py310.py hl[10] *}
+## Custom Validation
+
+There could be cases where you need to do some **custom validation** that can't be done with the parameters shown above.
+
+In those cases, you can use a **custom validator function** that is applied after the normal validation (e.g. after validating that the value is a `str`).
+
+You can achieve that using Pydantic's `AfterValidator` inside of `Annotated`.
+
+/// tip
+
+Pydantic also has `BeforeValidator` and others. đ¤
+
+///
+
+For example, this custom validator checks that the item ID starts with `isbn-` for an ISBN book number or with `imdb-` for an IMDB movie URL ID:
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
+
+/// info
+
+This is available with Pydantic version 2 or above. đ
+
+///
+
+/// tip
+
+If you need to do any type of validation that requires communicating with any **external component**, like a database or another API, you should instead use **FastAPI Dependencies**, you will learn about them later.
+
+These custom validators are for things that can be checked with **only** the **same data** provided in the request.
+
+///
+
+### Understand that Code
+
+The important point is just using **`AfterValidator` with a function inside `Annotated`**. Feel free to skip this part. đ¤¸
+
+---
+
+But if you're curious about this specific code example and you're still entertained, here are some extra details.
+
+#### String with `value.startswith()`
+
+Did you notice? a string using `value.startswith()` can take a tuple, and it will check each value in the tuple:
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[16:19] hl[17] *}
+
+#### A Random Item
+
+With `data.items()` we get an iterable object with tuples containing the key and value for each dictionary item.
+
+We convert this iterable object into a proper `list` with `list(data.items())`.
+
+Then with `random.choice()` we can get a **random value** from the list, so, we get a tuple with `(id, name)`. It will be something like `("imdb-tt0371724", "The Hitchhiker's Guide to the Galaxy")`.
+
+Then we **assign those two values** of the tuple to the variables `id` and `name`.
+
+So, if the user didn't provide an item ID, they will still receive a random suggestion.
+
+...we do all this in a **single simple line**. đ¤¯ Don't you love Python? đ
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[22:30] hl[29] *}
+
## Recap
You can declare additional validations and metadata for your parameters.
@@ -510,6 +485,8 @@ Validations specific for strings:
* `max_length`
* `pattern`
+Custom validations using `AfterValidator`.
+
In these examples you saw how to declare validations for `str` values.
See the next chapters to learn how to declare validations for other types, like numbers.
diff --git a/docs/en/docs/tutorial/response-status-code.md b/docs/en/docs/tutorial/response-status-code.md
index 711042a466..41bf02a8f5 100644
--- a/docs/en/docs/tutorial/response-status-code.md
+++ b/docs/en/docs/tutorial/response-status-code.md
@@ -53,16 +53,16 @@ These status codes have a name associated to recognize them, but the important p
In short:
-* `100` and above are for "Information". You rarely use them directly. Responses with these status codes cannot have a body.
-* **`200`** and above are for "Successful" responses. These are the ones you would use the most.
+* `100 - 199` are for "Information". You rarely use them directly. Responses with these status codes cannot have a body.
+* **`200 - 299`** are for "Successful" responses. These are the ones you would use the most.
* `200` is the default status code, which means everything was "OK".
* Another example would be `201`, "Created". It is commonly used after creating a new record in the database.
* A special case is `204`, "No Content". This response is used when there is no content to return to the client, and so the response must not have a body.
-* **`300`** and above are for "Redirection". Responses with these status codes may or may not have a body, except for `304`, "Not Modified", which must not have one.
-* **`400`** and above are for "Client error" responses. These are the second type you would probably use the most.
+* **`300 - 399`** are for "Redirection". Responses with these status codes may or may not have a body, except for `304`, "Not Modified", which must not have one.
+* **`400 - 499`** are for "Client error" responses. These are the second type you would probably use the most.
* An example is `404`, for a "Not Found" response.
* For generic errors from the client, you can just use `400`.
-* `500` and above are for server errors. You almost never use them directly. When something goes wrong at some part in your application code, or server, it will automatically return one of these status codes.
+* `500 - 599` are for server errors. You almost never use them directly. When something goes wrong at some part in your application code, or server, it will automatically return one of these status codes.
/// tip
diff --git a/docs/en/docs/virtual-environments.md b/docs/en/docs/virtual-environments.md
index b75be18c32..4f65b3b808 100644
--- a/docs/en/docs/virtual-environments.md
+++ b/docs/en/docs/virtual-environments.md
@@ -668,7 +668,7 @@ After activating the virtual environment, the `PATH` variable would look somethi
/home/user/code/awesome-project/.venv/bin:/usr/bin:/bin:/usr/sbin:/sbin
```
-That means that the system will now start looking first look for programs in:
+That means that the system will now start looking first for programs in:
```plaintext
/home/user/code/awesome-project/.venv/bin
@@ -692,7 +692,7 @@ and use that one.
C:\Users\user\code\awesome-project\.venv\Scripts;C:\Windows\System32
```
-That means that the system will now start looking first look for programs in:
+That means that the system will now start looking first for programs in:
```plaintext
C:\Users\user\code\awesome-project\.venv\Scripts
diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml
index e9a639d0b2..8a5ea13e0b 100644
--- a/docs/en/mkdocs.yml
+++ b/docs/en/mkdocs.yml
@@ -6,7 +6,7 @@ theme:
name: material
custom_dir: ../en/overrides
palette:
- - media: "(prefers-color-scheme)"
+ - media: (prefers-color-scheme)
toggle:
icon: material/lightbulb-auto
name: Switch to light mode
@@ -27,7 +27,6 @@ theme:
features:
- content.code.annotate
- content.code.copy
- # - content.code.select
- content.footnote.tooltips
- content.tabs.link
- content.tooltips
@@ -35,7 +34,6 @@ theme:
- navigation.indexes
- navigation.instant
- navigation.instant.prefetch
- # - navigation.instant.preview
- navigation.instant.progress
- navigation.path
- navigation.tabs
@@ -46,7 +44,6 @@ theme:
- search.share
- search.suggest
- toc.follow
-
icon:
repo: fontawesome/brands/github-alt
logo: img/icon-white.svg
@@ -55,11 +52,7 @@ theme:
repo_name: fastapi/fastapi
repo_url: https://github.com/fastapi/fastapi
plugins:
- # Material for MkDocs
- search:
- # Configured in mkdocs.insiders.yml
- # social:
- # Other plugins
+ search: null
macros:
include_yaml:
- external_links: ../en/data/external_links.yml
@@ -103,7 +96,6 @@ plugins:
signature_crossrefs: true
show_symbol_type_heading: true
show_symbol_type_toc: true
-
nav:
- FastAPI: index.md
- features.md
@@ -258,33 +250,27 @@ nav:
- benchmarks.md
- management.md
- release-notes.md
-
markdown_extensions:
- # Python Markdown
- abbr:
- attr_list:
- footnotes:
- md_in_html:
- tables:
+ abbr: null
+ attr_list: null
+ footnotes: null
+ md_in_html: null
+ tables: null
toc:
permalink: true
-
- # Python Markdown Extensions
- pymdownx.betterem:
- pymdownx.caret:
+ pymdownx.betterem: null
+ pymdownx.caret: null
pymdownx.highlight:
line_spans: __span
- pymdownx.inlinehilite:
- pymdownx.keys:
- pymdownx.mark:
+ pymdownx.inlinehilite: null
+ pymdownx.keys: null
+ pymdownx.mark: null
pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
- format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.tilde:
-
- # pymdownx blocks
+ format: !!python/name:pymdownx.superfences.fence_code_format ''
+ pymdownx.tilde: null
pymdownx.blocks.admonition:
types:
- note
@@ -295,34 +281,14 @@ markdown_extensions:
- tip
- hint
- warning
- # Custom types
- info
- check
- pymdownx.blocks.details:
+ pymdownx.blocks.details: null
pymdownx.blocks.tab:
- alternate_style: True
-
- # Other extensions
- mdx_include:
- markdown_include_variants:
-
+ alternate_style: true
+ mdx_include: null
+ markdown_include_variants: null
extra:
- analytics:
- provider: google
- property: G-YNEVN69SC3
- feedback:
- title: Was this page helpful?
- ratings:
- - icon: material/emoticon-happy-outline
- name: This page was helpful
- data: 1
- note: >-
- Thanks for your feedback!
- - icon: material/emoticon-sad-outline
- name: This page could be improved
- data: 0
- note: >-
- Thanks for your feedback!
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/fastapi/fastapi
@@ -331,14 +297,9 @@ extra:
- icon: fontawesome/brands/twitter
link: https://twitter.com/fastapi
- icon: fontawesome/brands/linkedin
- link: https://www.linkedin.com/in/tiangolo
- - icon: fontawesome/brands/dev
- link: https://dev.to/tiangolo
- - icon: fontawesome/brands/medium
- link: https://medium.com/@tiangolo
+ link: https://www.linkedin.com/company/fastapi
- icon: fontawesome/solid/globe
link: https://tiangolo.com
-
alternate:
- link: /
name: en - English
@@ -390,14 +351,11 @@ extra:
name: zh-hant - įšéĢ䏿
- link: /em/
name: đ
-
extra_css:
- css/termynal.css
- css/custom.css
-
extra_javascript:
- js/termynal.js
- js/custom.js
-
hooks:
- ../../scripts/mkdocs_hooks.py
diff --git a/docs/en/overrides/main.html b/docs/en/overrides/main.html
index b58ed88186..12585507d4 100644
--- a/docs/en/overrides/main.html
+++ b/docs/en/overrides/main.html
@@ -10,6 +10,13 @@
Follow @fastapi on Twitter to stay updated
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
diff --git a/docs/es/docs/tutorial/bigger-applications.md b/docs/es/docs/tutorial/bigger-applications.md
index 78165ef05f..c3d8f06860 100644
--- a/docs/es/docs/tutorial/bigger-applications.md
+++ b/docs/es/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* TambiÊn hay un subdirectorio `app/internal/` con otro archivo `__init__.py`, por lo que es otro "subpaquete de Python": `app.internal`.
* Y el archivo `app/internal/admin.py` es otro submÃŗdulo: `app.internal.admin`.
-
+
La misma estructura de archivos con comentarios:
@@ -270,7 +270,7 @@ Pero ese archivo no existe, nuestras dependencias estÃĄn en un archivo en `app/d
Recuerda cÃŗmo se ve nuestra estructura de aplicaciÃŗn/archivo:
-
+
---
diff --git a/docs/es/docs/tutorial/query-params-str-validations.md b/docs/es/docs/tutorial/query-params-str-validations.md
index f378b9dce2..9cb76156f0 100644
--- a/docs/es/docs/tutorial/query-params-str-validations.md
+++ b/docs/es/docs/tutorial/query-params-str-validations.md
@@ -321,22 +321,6 @@ Asà que, cuando necesites declarar un valor como requerido mientras usas `Query
{* ../../docs_src/query_params_str_validations/tutorial006_an_py39.py hl[9] *}
-### Requerido con Puntos suspensivos (`...`)
-
-Hay una manera alternativa de declarar explÃcitamente que un valor es requerido. Puedes establecer el valor por defecto al valor literal `...`:
-
-{* ../../docs_src/query_params_str_validations/tutorial006b_an_py39.py hl[9] *}
-
-/// info | InformaciÃŗn
-
-Si no habÃas visto eso `...` antes: es un valor especial Ãēnico, es parte de Python y se llama "Ellipsis".
-
-Se usa por Pydantic y FastAPI para declarar explÃcitamente que un valor es requerido.
-
-///
-
-Esto le permitirÃĄ a **FastAPI** saber que este parÃĄmetro es requerido.
-
### Requerido, puede ser `None`
Puedes declarar que un parÃĄmetro puede aceptar `None`, pero que aÃēn asà es requerido. Esto obligarÃa a los clientes a enviar un valor, incluso si el valor es `None`.
diff --git a/docs/es/llm-prompt.md b/docs/es/llm-prompt.md
index 3340dbc997..936ed9bba5 100644
--- a/docs/es/llm-prompt.md
+++ b/docs/es/llm-prompt.md
@@ -4,56 +4,6 @@ Use the informal grammar (use "tÃē" instead of "usted").
For instructions or titles in imperative, keep them in imperative, for example "Edit it" to "EdÃtalo".
-There are special blocks of notes, tips and others that look like:
-
-/// note
-
-To translate it, keep the same line and add the translation after a vertical bar:
-
-/// note | Nota
-
-Some examples:
-
-Source:
-
-/// tip
-
-Result:
-
-/// tip | Consejo
-
-Source:
-
-/// details | Preview
-
-Result:
-
-/// details | Vista previa
-
-Source:
-
-/// warning
-
-Result:
-
-/// warning | Advertencia
-
-Source:
-
-/// info
-
-Result:
-
-/// info | InformaciÃŗn
-
-Source:
-
-/// note | Technical Details
-
-Result:
-
-/// note | Detalles TÊcnicos
-
---
For the next terms, use the following translations:
diff --git a/docs/fa/docs/async.md b/docs/fa/docs/async.md
new file mode 100644
index 0000000000..e073748620
--- /dev/null
+++ b/docs/fa/docs/async.md
@@ -0,0 +1,444 @@
+# ŲŲ
âØ˛Ų
اŲÛ Ų async / await
+
+ØŦØ˛ØĻÛØ§ØĒ Ø¯Øą Ų
بਝ ØŗÛŲØĒÚŠØŗ `async def` Ø¨ØąØ§Û *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØą* Ų ÛŲ ÚŠŲ
ŲžÛØ´âØ˛Ų
ÛŲŲ Ø¯Øą Ų
بਝ ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§ŲØ ŲŲ
âØ˛Ų
اŲÛ Ų Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û.
+
+## ØšØŦŲŲ Ø¯Ø§ØąÛØ
+
+TL;DR:
+
+Ø§Ú¯Ų Ø§Ø˛ ÚŠØĒاب؎ŲŲŲâŲØ§Û ØŗŲŲ
âØ´ØŽØĩÛ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ ÚŠŲ Ø¨ŲØĒ Ų
ÛâÚ¯Ų Ø¨Ø§ `await` ØĩداشŲŲ ÚŠŲÛØ Ų
ØĢŲ:
+
+```Python
+results = await some_library()
+```
+
+اŲŲ ŲŲØĒØ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ØąŲ Ø¨Ø§ `async def` ØĒØšØąÛŲ ÚŠŲØ اÛŲØŦŲØąÛ:
+
+```Python hl_lines="2"
+@app.get('/')
+async def read_results():
+ results = await some_library()
+ return results
+```
+
+/// note
+
+ŲŲØˇ ØĒŲÛ ØĒŲØ§Ø¨ØšÛ ÚŠŲ Ø¨Ø§ `async def` ØŗØ§ØŽØĒŲ Ø´Ø¯Ų Ų
ÛâØĒŲŲÛ Ø§Ø˛ `await` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ.
+
+///
+
+---
+
+Ø§Ú¯Ų Ø§Ø˛ ÛŲ ÚŠØĒاب؎ŲŲŲ ØŗŲŲ
âØ´ØŽØĩ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ ÚŠŲ Ø¨Ø§ ÛŲ ÚÛØ˛Û (Ų
ØĢŲ Ø¯ÛØĒØ§Ø¨ÛØŗØ APIØ ØŗÛØŗØĒŲ
ŲØ§ÛŲ Ų ØēÛØąŲ) Ø§ØąØĒØ¨Ø§Øˇ Ø¯Ø§ØąŲ Ų Ø§Ø˛ `await` ŲžØ´ØĒÛØ¨Ø§ŲÛ ŲŲ
ÛâÚŠŲŲ (ÚŠŲ Ø§ŲØ§Ų Ø¨ØąØ§Û Ø¨ÛØ´ØĒØą ÚŠØĒاب؎ŲŲŲâŲØ§Û Ø¯ÛØĒØ§Ø¨ÛØŗ اÛŲØŦŲØąÛŲ)Ø Ø§ŲŲ ŲŲØĒ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ØąŲ ØšØ§Ø¯ÛØ ŲŲØˇ با `def` ØĒØšØąÛŲ ÚŠŲØ اÛŲØŦŲØąÛ:
+
+```Python hl_lines="2"
+@app.get('/')
+def results():
+ results = some_library()
+ return results
+```
+
+---
+
+Ø§Ú¯Ų Ø¨ØąŲØ§Ų
ŲâØ§ØĒ (Ø¨Ų ŲØą Ø¯ŲÛŲÛ) ŲØ§Ø˛Ų
ŲÛØŗØĒ با ÚÛØ˛ دÛÚ¯ŲâØ§Û Ø§ØąØĒØ¨Ø§Øˇ Ø¨ØąŲØąØ§Øą ÚŠŲŲ Ų Ų
ŲØĒØ¸Øą ØŦŲØ§Ø¨Ø´ بŲ
ŲŲŲØ Ø§Ø˛ `async def` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲ.
+
+---
+
+Ø§Ú¯Ų ŲŲ
ÛâØ¯ŲŲÛ ÚÛÚŠØ§Øą ÚŠŲÛØ Ø§Ø˛ `def` Ų
ØšŲ
ŲŲÛ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲ.
+
+---
+
+**ØĒŲØŦŲ**: Ų
ÛâØĒŲŲÛ ØĒŲÛ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ŲØą ÚŲØ¯Øą ÚŠŲ ŲØ§Ø˛Ų
Ø¯Ø§ØąÛ `def` Ų `async def` ØąŲ ŲØ§ØˇÛ ÚŠŲÛ Ų ŲØą ڊدŲŲ
ØąŲ Ø¨Ø§ Ø¨ŲØĒØąÛŲ Ú¯Ø˛ÛŲŲ Ø¨ØąØ§ØĒ ØĒØšØąÛŲ ÚŠŲÛ. FastAPI ØŽŲØ¯Ø´ ÚŠØ§Øą Ø¯ØąØŗØĒ ØąŲ Ø¨Ø§ŲØ§Ø´ŲŲ Ø§ŲØŦاŲ
Ų
ÛâØ¯Ų.
+
+Ø¨Ų ŲØą ØØ§ŲØ ØĒŲÛ ŲØą ڊدŲŲ
Ø§Ø˛ Ų
ŲŲØšÛØĒâŲØ§Û Ø¨Ø§ŲØ§Ø FastAPI ŲŲŲØ˛ ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ÚŠØ§Øą Ų
ÛâÚŠŲŲ Ų ØŽÛŲÛ ØŽÛŲÛ ØŗØąÛØš ŲØŗØĒ.
+
+ŲŲÛ Ø¨Ø§ Ø¯ŲØ¨Ø§Ų ÚŠØąØ¯Ų Ų
ØąØ§ØŲ Ø¨Ø§ŲØ§Ø Ų
ÛâØĒŲŲŲ ÛŲ ØŗØąÛ Ø¨ŲÛŲŲâØŗØ§Ø˛Û ØšŲ
ŲÚŠØąØ¯ ŲŲ
بڊŲŲ.
+
+## ØŦØ˛ØĻÛØ§ØĒ ŲŲÛ
+
+ŲØŗØŽŲâŲØ§Û Ų
Ø¯ØąŲ ŲžØ§ÛØĒŲŲ Ø§Ø˛ **"ڊد ŲØ§ŲŲ
âØ˛Ų
اŲ"** با ÚÛØ˛Û ÚŠŲ Ø¨ŲØ´ **"ÚŠØąŲØĒÛŲ"** Ų
ÛâÚ¯Ų ŲžØ´ØĒÛØ¨Ø§ŲÛ Ų
ÛâÚŠŲŲØ با ØŗÛŲØĒÚŠØŗ **`async` Ų `await`**.
+
+Ø¨ÛØ§Ûد اÛŲ ØŦŲ
ŲŲ ØąŲ ØĒÚŠŲâØĒÚŠŲ ØĒŲÛ Ø¨ØŽØ´âŲØ§Û Ø˛ÛØą Ø¨Ø¨ÛŲÛŲ
:
+
+* **ڊد ŲØ§ŲŲ
âØ˛Ų
اŲ**
+* **`async` Ų `await`**
+* **ÚŠØąŲØĒÛŲâŲØ§**
+
+## ڊد ŲØ§ŲŲ
âØ˛Ų
اŲ
+
+ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ÛØšŲÛ Ø˛Ø¨ŲŲ đŦ ÛŲ ØąØ§ŲÛ Ø¯Ø§ØąŲ ÚŠŲ Ø¨Ų ÚŠØ§Ų
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų đ¤ Ø¨Ú¯Ų ØĒŲÛ ÛŲ ØŦØ§Û ÚŠØ¯Ø Ø¨Ø§ÛØ¯ Ų
ŲØĒØ¸Øą بŲ
ŲŲŲ ØĒا *ÛŲ ÚÛØ˛ دÛÚ¯Ų* ÛŲ ØŦØ§Û Ø¯ÛÚ¯Ų ØĒŲ
ŲŲ
بشŲ. ŲØąØļ ÚŠŲ Ø§ŲŲ *ÛŲ ÚÛØ˛ دÛÚ¯Ų* Ø§ØŗŲ
Ø´ "ŲØ§ÛŲ-ØĸØąŲŲ
" đ Ø¨Ø§Ø´Ų.
+
+ŲžØŗØ ØĒŲÛ Ø§ŲŲ Ų
دØĒØ ÚŠØ§Ų
ŲžÛŲØĒØą Ų
ÛâØĒŲŲŲ Ø¨ØąŲ ÛŲ ÚŠØ§Øą دÛÚ¯Ų Ø¨ÚŠŲŲØ ØĒا ŲŲØĒÛ "ŲØ§ÛŲ-ØĸØąŲŲ
" đ ØĒŲ
ŲŲ
بشŲ.
+
+بؚدش ڊاŲ
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų đ¤ ŲØą ŲŲØĒ ŲØąØĩØĒÛ Ø¯Ø§Ø´ØĒŲ Ø¨Ø§Ø´Ų Ø¨ØąŲ
ÛâÚ¯ØąØ¯ŲØ ÚŲŲ Ø¯ŲØ¨Ø§ØąŲ Ų
ŲØĒØ¸ØąŲØ ÛØ§ ŲØą ŲŲØĒ ŲŲ
Ų ÚŠØ§ØąÛ ÚŠŲ Ø§ŲŲ ŲØØ¸Ų Ø¯Ø§Ø´ØĒŲ ØĒŲ
ŲŲ
ÚŠØąØ¯Ų. Ų Ų
ÛâØ¨ÛŲŲ ØĸÛØ§ ÚŠØ§ØąØ§ÛÛ ÚŠŲ Ų
ŲØĒØ¸ØąØ´ŲŲ Ø¨ŲØ¯Ų ØĒŲ
ŲŲ
Ø´Ø¯Ų ÛØ§ ŲŲØ Ų ŲØą ÚŠØ§ØąÛ ÚŠŲ Ø¨Ø§ÛØ¯ بڊŲŲ ØąŲ Ø§ŲØŦاŲ
Ų
ÛâØ¯Ų.
+
+Ø¨ØšØ¯Ø Ø§ŲŲ đ¤ Ø§ŲŲÛŲ ÚŠØ§ØąÛ ÚŠŲ ØĒŲ
ŲŲ
Ø´Ø¯Ų (Ų
ØĢŲØ§Ų "ŲØ§ÛŲ-ØĸØąŲŲ
" đ Ų
ا) ØąŲ Ø¨ØąŲ
ÛâØ¯Ø§ØąŲ Ų ŲØą ÚŠØ§ØąÛ ÚŠŲ Ø¨Ø§ÛØ¯ Ø¨Ø§ŲØ§Ø´ بڊŲŲ ØąŲ Ø§Ø¯Ø§Ų
Ų Ų
ÛâØ¯Ų.
+
+اÛŲ "Ų
ŲØĒØ¸Øą ÛŲ ÚÛØ˛ دÛÚ¯Ų Ø¨ŲØ¯Ų" Ų
ØšŲ
ŲŲØ§Ų Ø¨Ų ØšŲ
ŲÛØ§ØĒ I/O Ø§Ø´Ø§ØąŲ Ø¯Ø§ØąŲ ÚŠŲ ŲØŗØ¨ØĒØ§Ų "ØĸØąŲŲ
" ŲØŗØĒŲ (ŲØŗØ¨ØĒ Ø¨Ų ØŗØąØšØĒ ŲžØąØ¯Ø§Ø˛ŲØ¯Ų Ų ØØ§ŲØ¸Ų RAM)Ø Ų
ØĢŲ Ų
ŲØĒØ¸Øą Ų
ŲŲØ¯Ų Ø¨ØąØ§Û:
+
+* دادŲâŲØ§ÛÛ ÚŠŲ Ø§Ø˛ ÚŠŲØ§ÛŲØĒ Ø§Ø˛ ØˇØąÛŲ Ø´Ø¨ÚŠŲ ŲØąØŗØĒØ§Ø¯Ų Ų
ÛâØ´Ų
+* دادŲâŲØ§ÛÛ ÚŠŲ Ø¨ØąŲØ§Ų
ŲâØ§ØĒ ب਺ØĒØ§Ø¯Ų ØĒا Ø§Ø˛ ØˇØąÛŲ Ø´Ø¨ÚŠŲ Ø¨Ų ÚŠŲØ§ÛŲØĒ Ø¨ØąØŗŲ
+* Ų
ØØĒŲØ§Û ÛŲ ŲØ§ÛŲ ØĒŲÛ Ø¯ÛØŗÚŠ ÚŠŲ ØŗÛØŗØĒŲ
ب؎ŲŲØ¯Ø´ Ų Ø¨Ų Ø¨ØąŲØ§Ų
ŲâØ§ØĒ بدŲ
+* Ų
ØØĒŲØ§ÛÛ ÚŠŲ Ø¨ØąŲØ§Ų
ŲâØ§ØĒ Ø¨Ų ØŗÛØŗØĒŲ
Ø¯Ø§Ø¯Ų ØĒا ØĒŲÛ Ø¯ÛØŗÚŠ Ø¨ŲŲÛØŗŲ
+* ÛŲ ØšŲ
ŲÛØ§ØĒ API Ø§Ø˛ ØąØ§Ų Ø¯ŲØą
+* ÛŲ ØšŲ
ŲÛØ§ØĒ Ø¯ÛØĒØ§Ø¨ÛØŗ ÚŠŲ ØĒŲ
ŲŲ
بشŲ
+* ÛŲ ÚŠŲØĻØąÛ Ø¯ÛØĒØ§Ø¨ÛØŗ ÚŠŲ ŲØĒØ§ÛØŦØ´ Ø¨ØąÚ¯ØąØ¯Ų
+* Ų ØēÛØąŲ.
+
+ÚŲŲ Ø˛Ų
Ø§Ų Ø§ØŦØąØ§ Ø¨ÛØ´ØĒØą ØĩØąŲ Ø§ŲØĒØ¸Ø§Øą Ø¨ØąØ§Û ØšŲ
ŲÛØ§ØĒ I/O Ų
ÛâØ´ŲØ Ø¨ŲØ´ŲŲ Ų
ÛâÚ¯Ų ØšŲ
ŲÛØ§ØĒ "I/O bound".
+
+Ø¨ŲØ´ "ŲØ§ŲŲ
âØ˛Ų
اŲ" Ų
ÛâÚ¯Ų ÚŲŲ ÚŠØ§Ų
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų ŲØ§Ø˛Ų
ŲÛØŗØĒ با ÚŠØ§Øą ØĸØąŲŲ
"ŲŲ
âØ˛Ų
اŲ" Ø¨Ø§Ø´ŲØ Ų
ŲØĒØ¸Øą ŲØØ¸Ų Ø¯ŲÛŲ ØĒŲ
ŲŲ
Ø´Ø¯Ų ÚŠØ§Øą بŲ
ŲŲŲØ Ø¯Øą ØØ§ŲÛ ÚŠŲ ŲÛÚ ÚŠØ§ØąÛ ŲŲ
ÛâÚŠŲŲØ ØĒا ŲØĒÛØŦŲ ØąŲ Ø¨Ú¯ÛØąŲ Ų ÚŠØ§ØąØ´ ØąŲ Ø§Ø¯Ø§Ų
Ų Ø¨Ø¯Ų.
+
+Ø¨Ų ØŦØ§Ø´Ø ÚŲŲ ÛŲ ØŗÛØŗØĒŲ
"ŲØ§ŲŲ
âØ˛Ų
اŲ" ŲØŗØĒØ ŲŲØĒÛ ÚŠØ§Øą ØĒŲ
ŲŲ
Ø´Ø¯Ø Ų
ÛâØĒŲŲŲ ÛŲ ÚŠŲ
ØĒŲÛ ØĩŲ Ų
ŲØĒØ¸Øą بŲ
ŲŲŲ (ÚŲØ¯ Ų
ÛÚŠØąŲØĢØ§ŲÛŲ) ØĒا ڊاŲ
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų ŲØą ÚŠØ§ØąÛ ÚŠŲ ØąŲØĒŲ Ø¨ÚŠŲŲ ØąŲ ØĒŲ
ŲŲ
ÚŠŲŲØ Ų Ø¨ØšØ¯ Ø¨ØąÚ¯ØąØ¯Ų ŲØĒÛØŦŲ ØąŲ Ø¨Ú¯ÛØąŲ Ų Ø¨Ø§ŲØ§Ø´ ÚŠØ§Øą ÚŠŲŲ.
+
+Ø¨ØąØ§Û "ŲŲ
âØ˛Ų
اŲ" (Ø¨ØąØŽŲØ§Ų "ŲØ§ŲŲ
âØ˛Ų
اŲ") Ų
ØšŲ
ŲŲØ§Ų Ø§Ø˛ اØĩØˇŲØ§Ø "ØĒØąØĒÛØ¨Û" ŲŲ
Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲŲØ ÚŲŲ ÚŠØ§Ų
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų ŲŲ
Ų Ų
ØąØ§ØŲ ØąŲ Ø¨Ų ØĒØąØĒÛØ¨ Ø¯ŲØ¨Ø§Ų Ų
ÛâÚŠŲŲ ŲØ¨Ų Ø§Ø˛ اÛŲÚŠŲ Ø¨ØąŲ ØŗØąØ§Øē ÛŲ ÚŠØ§Øą دÛÚ¯ŲØ ØØĒÛ Ø§Ú¯Ų Ø§ŲŲ Ų
ØąØ§ØŲ شاŲ
Ų Ø§ŲØĒØ¸Ø§Øą باشŲ.
+
+### ŲŲ
âØ˛Ų
اŲÛ Ų Ø¨ØąÚ¯ØąŲØ§
+
+اÛŲ Ø§ÛØ¯Ų **ŲØ§ŲŲ
âØ˛Ų
اŲ** ÚŠŲ Ø¨Ø§ŲØ§ ØĒŲØļÛØ دادŲ
گاŲÛ Ø¨ŲØ´ **"ŲŲ
âØ˛Ų
اŲÛ"** ŲŲ
Ų
ÛâÚ¯Ų. با **"Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û"** ŲØąŲ Ø¯Ø§ØąŲ.
+
+**ŲŲ
âØ˛Ų
اŲÛ** Ų **Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û** ŲØą Ø¯Ų Ø¨Ų "اØĒŲØ§Ų Ø§ŲØĒØ§Ø¯Ų ÚÛØ˛Ø§Û Ų
ØŽØĒŲŲ ÚŠŲ
âŲØ¨ÛØ´ ŲŲ
Ø˛Ų
اŲ" ØąØ¨Øˇ Ø¯Ø§ØąŲ.
+
+ŲŲÛ ØŦØ˛ØĻÛØ§ØĒ بÛŲ *ŲŲ
âØ˛Ų
اŲÛ* Ų *Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û* ØŽÛŲÛ Ų
ØĒŲØ§ŲØĒŲ.
+
+Ø¨ØąØ§Û Ø¯ÛØ¯Ų ŲØąŲØ´Ø Ø§ÛŲ Ø¯Ø§ØŗØĒØ§Ų Ø¯Øą Ų
بਝ Ø¨ØąÚ¯ØąŲØ§ ØąŲ ØĒØĩŲØą ÚŠŲ:
+
+### Ø¨ØąÚ¯ØąŲØ§Û ŲŲ
âØ˛Ų
اŲ
+
+با ØšØ´ŲØĒ Ų
ÛâØąÛ ŲØŗØĒâŲŲØ¯ Ø¨Ú¯ÛØąÛŲØ ØĒŲÛ ØĩŲ ŲØ§ÛŲ
ÛØŗØĒÛ Ø¯Øą ØØ§ŲÛ ÚŠŲ ØĩŲØ¯ŲŲØ¯Ø§Øą ØŗŲØ§ØąØ´ ØĸدŲ
Ø§Û ØŦŲŲÛ ØĒŲ ØąŲ Ų
ÛâÚ¯ÛØąŲ. đ
+
+
+
+بؚد ŲŲØ¨ØĒ ØĒŲ Ų
ÛâØ´ŲØ ØŗŲØ§ØąØ´ Ø¯Ų ØĒا Ø¨ØąÚ¯Øą ØŽÛŲÛ Ø´ÛÚŠ Ø¨ØąØ§Û ØŽŲØ¯ØĒ Ų ØšØ´ŲØĒ Ų
ÛâØ¯Û. đđ
+
+
+
+ØĩŲØ¯ŲŲØ¯Ø§Øą ÛŲ ÚÛØ˛Û Ø¨Ų ØĸØ´ŲžØ˛ ØĒŲÛ ØĸØ´ŲžØ˛ØŽŲŲŲ Ų
ÛâÚ¯Ų ØĒا بدŲŲŲ Ø¨Ø§ÛØ¯ Ø¨ØąÚ¯ØąŲØ§Û ØĒŲ ØąŲ ØĸŲ
Ø§Ø¯Ų ÚŠŲŲ (Ú¯ØąÚŲ Ø§ŲØ§Ų Ø¯Ø§ØąŲ Ø¨ØąÚ¯ØąŲØ§Û Ų
Ø´ØĒØąÛØ§Û ŲØ¨ŲÛ ØąŲ Ø¯ØąØŗØĒ Ų
ÛâÚŠŲŲ).
+
+
+
+ŲžŲŲ ØąŲ Ų
ÛâØ¯Û. đ¸
+
+ØĩŲØ¯ŲŲØ¯Ø§Øą Ø´Ų
Ø§ØąŲ ŲŲØ¨ØĒØĒ ØąŲ Ø¨ŲØĒ Ų
ÛâØ¯Ų.
+
+
+
+ŲŲØĒÛ Ų
ŲØĒØ¸ØąÛØ Ø¨Ø§ ØšØ´ŲØĒ Ų
ÛâØąÛ ÛŲ Ų
ÛØ˛ Ø§ŲØĒØŽØ§Ø¨ Ų
ÛâÚŠŲÛØ Ų
ÛâØ´ÛŲÛ Ų ÚŠŲÛ Ø¨Ø§ ØšØ´ŲØĒ ØØąŲ Ų
ÛâØ˛ŲÛ (ÚŲŲ Ø¨ØąÚ¯ØąŲØ§ØĒ ØŽÛŲÛ Ø´ÛÚŠŲ Ų ØĸŲ
Ø§Ø¯Ų ÚŠØąØ¯ŲØ´ŲŲ ÛŲ ÚŠŲ
ØˇŲŲ Ų
ÛâÚŠØ´Ų).
+
+ŲŲØĒÛ ŲžØ´ØĒ Ų
ÛØ˛ با ØšØ´ŲØĒ ŲØ´ØŗØĒÛØ Ø¯Øą ØØ§ŲÛ ÚŠŲ Ų
ŲØĒØ¸Øą Ø¨ØąÚ¯ØąŲØ§ÛÛØ Ų
ÛâØĒŲŲÛ Ø§ŲŲ Ø˛Ų
Ø§Ų ØąŲ ØĩØąŲ ØĒØØŗÛŲ Ø§ÛŲ ÚŠŲÛ ÚŠŲ ØšØ´ŲØĒ ÚŲØ¯Øą Ø¨Ø§ØØ§ŲØ ŲØ§Ø˛ Ų Ø¨Ø§ŲŲØ´Ų â¨đâ¨.
+
+
+
+ŲŲØĒÛ Ų
ŲØĒØ¸ØąÛ Ų Ø¨Ø§ ØšØ´ŲØĒ ØØąŲ Ų
ÛâØ˛ŲÛØ ŲØą Ø§Ø˛ گاŲÛ Ø´Ų
Ø§ØąŲâØ§Û ÚŠŲ ØąŲ ŲžÛØ´ØŽŲŲ ŲØ´ŲŲ Ø¯Ø§Ø¯Ų Ų
ÛâØ´Ų ØąŲ ÚÚŠ Ų
ÛâÚŠŲÛ ÚŠŲ Ø¨Ø¨ÛŲÛ ŲŲØ¨ØĒØĒ Ø´Ø¯Ų ÛØ§ ŲŲ.
+
+بؚد ÛŲ ØŦاÛÛ Ø¨Ø§ŲØ§ØŽØąŲ ŲŲØ¨ØĒØĒ Ų
ÛâØ´Ų. Ų
ÛâØąÛ ŲžÛØ´ØŽŲŲØ Ø¨ØąÚ¯ØąŲØ§ØĒ ØąŲ Ų
ÛâÚ¯ÛØąÛ Ų Ø¨ØąŲ
ÛâÚ¯ØąØ¯Û ØŗØą Ų
ÛØ˛.
+
+
+
+ØĒŲ Ų ØšØ´ŲØĒ Ø¨ØąÚ¯ØąŲØ§ ØąŲ Ų
ÛâØŽŲØąÛŲ Ų ÛŲ ŲŲØĒ ØŽŲØ¨ باŲŲ
Ø¯Ø§ØąÛŲ. â¨
+
+
+
+/// info
+
+ØĒØĩاŲÛØą ŲØ´ŲÚ¯ Ø§Ø˛ ÚŠØĒØąÛŲØ§ ØĒاŲ
ŲžØŗŲŲ. đ¨
+
+///
+
+---
+
+ØĒØĩŲØą ÚŠŲ ØĒŲ ØĒŲÛ Ø§ÛŲ Ø¯Ø§ØŗØĒØ§Ų ÚŠØ§Ų
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų đ¤ ŲØŗØĒÛ.
+
+ŲŲØĒÛ ØĒŲÛ ØĩŲ ŲØŗØĒÛØ ŲŲØˇ بÛÚŠØ§ØąÛ đ´Ø Ų
ŲØĒØ¸Øą ŲŲØ¨ØĒØĒ ŲØŗØĒÛØ ÚŠØ§Øą ØŽÛŲÛ "Ų
ŲÛØ¯Û" ŲŲ
ÛâÚŠŲÛ. ŲŲÛ ØĩŲ ØŗØąÛØš ŲžÛØ´ Ų
ÛâØąŲ ÚŲŲ ØĩŲØ¯ŲŲØ¯Ø§Øą ŲŲØˇ ØŗŲØ§ØąØ´ Ų
ÛâÚ¯ÛØąŲ (ØĸŲ
ادشŲŲ ŲŲ
ÛâÚŠŲŲ)Ø ŲžØŗ اÛŲ ØŽŲØ¨Ų.
+
+Ø¨ØšØ¯Ø ŲŲØĒÛ ŲŲØ¨ØĒØĒ Ų
ÛâØ´ŲØ ÚŠØ§Øą "Ų
ŲÛØ¯" ŲØ§ŲØšÛ Ų
ÛâÚŠŲÛØ Ų
ŲŲ ØąŲ ŲžØąØ¯Ø§Ø˛Ø´ Ų
ÛâÚŠŲÛØ ØĒØĩŲ
ÛŲ
Ų
ÛâÚ¯ÛØąÛ ÚÛ Ų
ÛâØŽŲØ§ÛØ Ø§ŲØĒØŽØ§Ø¨ ØšØ´ŲØĒ ØąŲ Ų
ÛâÚ¯ÛØąÛØ ŲžŲŲ Ų
ÛâØ¯ÛØ ÚÚŠ Ų
ÛâÚŠŲÛ Ø§ØŗÚŠŲØ§Øŗ ÛØ§ ÚŠØ§ØąØĒ Ø¯ØąØŗØĒ ØąŲ Ø¯Ø§Ø¯ÛØ ÚÚŠ Ų
ÛâÚŠŲÛ Ø¯ØąØŗØĒ ØØŗØ§Ø¨ Ø´Ø¯ŲØ ÚÚŠ Ų
ÛâÚŠŲÛ ØŗŲØ§ØąØ´ ØĸÛØĒŲ
Ø§Û Ø¯ØąØŗØĒ ØąŲ Ø¯Ø§ØąŲ Ų ØēÛØąŲ.
+
+ŲŲÛ Ø¨ØšØ¯Ø Ú¯ØąÚŲ ŲŲŲØ˛ Ø¨ØąÚ¯ØąŲØ§ØĒ ØąŲ ŲØ¯Ø§ØąÛØ ÚŠØ§ØąØĒ با ØĩŲØ¯ŲŲØ¯Ø§Øą "Ų
ŲŲØĒØ§Ų Ų
ØĒŲŲŲ" ⸠Ų
ÛâØ´ŲØ ÚŲŲ Ø¨Ø§ÛØ¯ Ų
ŲØĒØ¸Øą بŲ
ŲŲÛ đ ØĒا Ø¨ØąÚ¯ØąŲØ§ØĒ ØĸŲ
Ø§Ø¯Ų Ø¨Ø´Ų.
+
+ŲŲÛ ŲŲØĒÛ Ø§Ø˛ ŲžÛØ´ØŽŲŲ Ø¯ŲØą Ų
ÛâØ´Û Ų Ø¨Ø§ Ø´Ų
Ø§ØąŲ ŲŲØ¨ØĒØĒ ØŗØą Ų
ÛØ˛ Ų
ÛâØ´ÛŲÛØ Ų
ÛâØĒŲŲÛ ØĒŲØŦŲØĒ ØąŲ đ Ø¨Ų ØšØ´ŲØĒ Ø¨Ø¯Û Ų "ÚŠØ§Øą" â¯ đ¤ ØąŲ اŲŲ Ø¨ÚŠŲÛ. بؚدش Ø¯ŲØ¨Ø§ØąŲ Ø¯Ø§ØąÛ ÛŲ ÚÛØ˛ ØŽÛŲÛ "Ų
ŲÛØ¯" Ø§ŲØŦاŲ
Ų
ÛâØ¯ÛØ Ų
ØĢŲ ŲØ§Øŗ Ø˛Ø¯Ų Ø¨Ø§ ØšØ´ŲØĒ đ.
+
+بؚد ØĩŲØ¯ŲŲØ¯Ø§Øą đ Ø¨Ø§ گذاشØĒŲ Ø´Ų
Ø§ØąŲâØ§ØĒ ØąŲ ŲŲ
Ø§ÛØ´Ú¯Øą ŲžÛØ´ØŽŲŲ Ų
ÛâÚ¯Ų "Ų
Ų Ø¨Ø§ Ø¯ØąØŗØĒ ÚŠØąØ¯Ų Ø¨ØąÚ¯ØąŲØ§ ØĒŲ
ŲŲ
ÚŠØąØ¯Ų
"Ø ŲŲÛ ØĒŲ Ų
ØĢŲ Ø¯ÛŲŲŲŲâŲØ§ ŲŲØĒÛ Ø´Ų
Ø§ØąŲâØ§ØĒ ØąŲ ŲŲ
Ø§ÛØ´Ú¯Øą Ų
ÛØ§Ø¯ ŲŲØąÛ ŲŲ
ÛâŲžØąÛ. Ų
ÛâØ¯ŲŲÛ ÚŠØŗÛ Ø¨ØąÚ¯ØąŲØ§ØĒ ØąŲ ŲŲ
ÛâØ¯Ø˛Ø¯Ų ÚŲŲ Ø´Ų
Ø§ØąŲ ŲŲØ¨ØĒØĒ ØąŲ Ø¯Ø§ØąÛØ Ų Ø§ŲŲØ§ ŲŲ
Ų
Ø§Ų ØŽŲØ¯Ø´ŲŲ ØąŲ Ø¯Ø§ØąŲ.
+
+ŲžØŗ Ų
ŲØĒØ¸Øą Ų
ÛâŲ
ŲŲÛ ØĒا ØšØ´ŲØĒ Ø¯Ø§ØŗØĒØ§ŲØ´ ØąŲ ØĒŲ
ŲŲ
ÚŠŲŲ (ÚŠØ§Øą ŲØšŲÛ â¯ / ŲØ¸ÛŲŲâØ§Û ÚŠŲ Ø¯Ø§ØąŲ ŲžØąØ¯Ø§Ø˛Ø´ Ų
ÛâØ´Ų đ¤)Ø ØĸØąŲŲ
ŲØ¨ØŽŲد Ų
ÛâØ˛ŲÛ Ų Ų
ÛâÚ¯Û ÚŠŲ Ų
ÛâØąÛ Ø¨ØąÚ¯ØąŲØ§ ØąŲ Ø¨ÛØ§ØąÛ â¸.
+
+بؚد Ų
ÛâØąÛ ŲžÛØ´ØŽŲŲ đØ Ø¨Ų ÚŠØ§Øą اŲŲÛŲ ÚŠŲ ØØ§Ųا ØĒŲ
ŲŲ
Ø´Ø¯Ų â¯Ø Ø¨ØąÚ¯ØąŲØ§ ØąŲ Ų
ÛâÚ¯ÛØąÛØ ØĒØ´ÚŠØą Ų
ÛâÚŠŲÛ Ų Ų
ÛâØ¨ØąØ´ŲŲ ØŗØą Ų
ÛØ˛. اÛŲ Ų
ØąØŲŲ / ŲØ¸ÛŲŲ ØĒؚاŲ
Ų Ø¨Ø§ ŲžÛØ´ØŽŲŲ ØąŲ ØĒŲ
ŲŲ
Ų
ÛâÚŠŲŲ âš. اÛŲ Ø¨Ų ŲŲØ¨Ų ØŽŲØ¯Ø´ ÛŲ ŲØ¸ÛŲŲ ØŦØ¯ÛØ¯Ø "ØŽŲØąØ¯Ų Ø¨ØąÚ¯ØąŲØ§" đ â¯Ø Ų
ÛâØŗØ§Ø˛ŲØ ŲŲÛ Ø§ŲŲ ŲØ¨ŲÛ ÚŠŲ "Ú¯ØąŲØĒŲ Ø¨ØąÚ¯ØąŲØ§" Ø¨ŲØ¯ ØĒŲ
ŲŲ
Ø´Ø¯Ų âš.
+
+### Ø¨ØąÚ¯ØąŲØ§Û Ų
ŲØ§Ø˛Û
+
+ØØ§Ųا ŲØąØļ ÚŠŲ Ø§ÛŲØ§ "Ø¨ØąÚ¯ØąŲØ§Û ŲŲ
âØ˛Ų
اŲ" ŲÛØŗØĒŲØ بŲÚŠŲ "Ø¨ØąÚ¯ØąŲØ§Û Ų
ŲØ§Ø˛Û" ŲØŗØĒŲ.
+
+با ØšØ´ŲØĒ Ų
ÛâØąÛ ŲØŗØĒâŲŲØ¯ Ų
ŲØ§Ø˛Û Ø¨Ú¯ÛØąÛ.
+
+ØĒŲÛ ØĩŲ ŲØ§ÛŲ
ÛØŗØĒÛ Ø¯Øą ØØ§ŲÛ ÚŠŲ ÚŲØ¯ ØĒا (Ų
ØĢŲØ§Ų 8 ØĒا) ØĩŲØ¯ŲŲØ¯Ø§Øą ÚŠŲ ŲŲ
Ø˛Ų
Ø§Ų ØĸØ´ŲžØ˛ ŲŲ
ŲØŗØĒŲ ØŗŲØ§ØąØ´ ØĸدŲ
Ø§Û ØŦŲŲÛ ØĒŲ ØąŲ Ų
ÛâÚ¯ÛØąŲ.
+
+ŲŲ
Ų ŲØ¨Ų ØĒŲ Ų
ŲØĒØ¸ØąŲ Ø¨ØąÚ¯ØąŲØ§Ø´ŲŲ ØĸŲ
Ø§Ø¯Ų Ø¨Ø´Ų ŲØ¨Ų Ø§Ø˛ اÛŲÚŠŲ ŲžÛØ´ØŽŲŲ ØąŲ ØĒØąÚŠ ÚŠŲŲØ ÚŲŲ ŲØą ڊدŲŲ
Ø§Ø˛ 8 ØĒا ØĩŲØ¯ŲŲØ¯Ø§Øą Ų
ÛâØąŲ Ų Ø¨ØąÚ¯Øą ØąŲ ŲŲ
ŲŲ Ų
ŲŲØš Ø¯ØąØŗØĒ Ų
ÛâÚŠŲŲ ŲØ¨Ų Ø§Ø˛ اÛŲÚŠŲ ØŗŲØ§ØąØ´ Ø¨ØšØ¯Û ØąŲ Ø¨Ú¯ÛØąŲ.
+
+
+
+Ø¨Ø§ŲØ§ØŽØąŲ ŲŲØ¨ØĒ ØĒŲ Ų
ÛâØ´ŲØ ØŗŲØ§ØąØ´ Ø¯Ų ØĒا Ø¨ØąÚ¯Øą ØŽÛŲÛ Ø´ÛÚŠ Ø¨ØąØ§Û ØŽŲØ¯ØĒ Ų ØšØ´ŲØĒ Ų
ÛâØ¯Û.
+
+ŲžŲŲ ØąŲ Ų
ÛâØ¯Û đ¸.
+
+
+
+ØĩŲØ¯ŲŲØ¯Ø§Øą Ų
ÛâØąŲ ØĸØ´ŲžØ˛ØŽŲŲŲ.
+
+Ų
ŲØĒØ¸Øą Ų
ÛâŲ
ŲŲÛØ ØŦŲŲÛ ŲžÛØ´ØŽŲŲ ŲØ§ÛØŗØĒØ§Ø¯Û đØ ÚŠŲ ÚŠØŗÛ ŲØ¨Ų Ø§Ø˛ ØĒŲ Ø¨ØąÚ¯ØąŲØ§ØĒ ØąŲ ŲÚ¯ÛØąŲØ ÚŲŲ Ø´Ų
Ø§ØąŲ ŲŲØ¨ØĒ ŲÛØŗØĒ.
+
+
+
+ÚŲŲ ØĒŲ Ų ØšØ´ŲØĒ Ų
Ø´ØēŲŲ Ø§ÛŲ ŲØŗØĒÛŲ ÚŠŲ ŲØ°Ø§ØąÛŲ ÚŠØŗÛ ØŦŲŲØĒŲŲ Ø¨ÛØ§Ø¯ Ų ŲØą ŲŲØĒ Ø¨ØąÚ¯ØąŲØ§ ØąØŗÛØ¯Ų اŲŲØ§ ØąŲ Ø¨Ú¯ÛØąŲØ ŲŲ
ÛâØĒŲŲÛ Ø¨Ų ØšØ´ŲØĒ ØĒŲØŦŲ ÚŠŲÛ. đ
+
+اÛŲ ÚŠØ§Øą "ŲŲ
âØ˛Ų
اŲ" ŲØŗØĒØ ØĒŲ Ø¨Ø§ ØĩŲØ¯ŲŲØ¯Ø§Øą/ØĸØ´ŲžØ˛ đ¨âđŗ "ŲŲ
âØ˛Ų
اŲ" ŲØŗØĒÛ. Ø¨Ø§ÛØ¯ Ų
ŲØĒØ¸Øą بŲ
ŲŲÛ đ Ų Ø¯ØąØŗØĒ ŲŲ
ŲŲ ŲØØ¸Ų ÚŠŲ ØĩŲØ¯ŲŲØ¯Ø§Øą/ØĸØ´ŲžØ˛ đ¨âđŗ Ø¨ØąÚ¯ØąŲا ØąŲ ØĒŲ
ŲŲ
Ų
ÛâÚŠŲŲ Ų Ø¨ŲØĒ Ų
ÛâØ¯Ų Ø§ŲŲØŦا Ø¨Ø§Ø´ÛØ ŲÚ¯ØąŲŲ Ų
Ų
ÚŠŲŲ ÛÚŠÛ Ø¯ÛÚ¯Ų Ø§ŲŲØ§ ØąŲ Ø¨Ú¯ÛØąŲ.
+
+
+
+بؚد ØĩŲØ¯ŲŲØ¯Ø§Øą/ØĸØ´ŲžØ˛ØĒ đ¨âđŗ Ø¨Ø§ŲØ§ØŽØąŲ Ø¨ØšØ¯ Ø§Ø˛ ÛŲ Ų
دØĒ ØˇŲŲØ§ŲÛ Ø§ŲØĒØ¸Ø§Øą đ ØŦŲŲÛ ŲžÛØ´ØŽŲŲ Ø¨Ø§ Ø¨ØąÚ¯ØąŲØ§ØĒ Ø¨ØąŲ
ÛâÚ¯ØąØ¯Ų.
+
+
+
+Ø¨ØąÚ¯ØąŲØ§ØĒ ØąŲ Ų
ÛâÚ¯ÛØąÛ Ų Ø¨Ø§ ØšØ´ŲØĒ Ų
ÛâØąÛ ØŗØą Ų
ÛØ˛.
+
+ŲŲØˇ Ų
ÛâØŽŲØąÛŲØ´ŲŲØ Ų ØĒŲ
ŲŲ
Ų. âš
+
+
+
+ØØąŲ Ø˛Ø¯Ų ÛØ§ ŲØ§Øŗ Ø˛Ø¯Ų Ø˛ÛØ§Ø¯ ŲØ¨Ųد ÚŲŲ Ø¨ÛØ´ØĒØą ŲŲØĒ ØĩØąŲ Ø§ŲØĒØ¸Ø§Øą đ ØŦŲŲÛ ŲžÛØ´ØŽŲŲ Ø´Ø¯. đ
+
+/// info
+
+ØĒØĩاŲÛØą ŲØ´ŲÚ¯ Ø§Ø˛ ÚŠØĒØąÛŲØ§ ØĒاŲ
ŲžØŗŲŲ. đ¨
+
+///
+
+---
+
+ØĒŲÛ Ø§ÛŲ ØŗŲØ§ØąÛŲÛ Ø¨ØąÚ¯ØąŲØ§Û Ų
ŲØ§Ø˛ÛØ ØĒŲ ÛŲ ÚŠØ§Ų
ŲžÛŲØĒØą / Ø¨ØąŲØ§Ų
Ų đ¤ Ø¨Ø§ Ø¯Ų ØĒا ŲžØąØ¯Ø§Ø˛ŲØ¯Ų (ØĒŲ Ų ØšØ´ŲØĒ) ŲØŗØĒÛØ ŲØą Ø¯Ų Ų
ŲØĒØ¸Øą đ Ų ØĒŲØŦŲØ´ŲŲ â¯ ØąŲ Ø¨ØąØ§Û Ų
دØĒ ØˇŲŲØ§ŲÛ "Ø§ŲØĒØ¸Ø§Øą ØŦŲŲÛ ŲžÛØ´ØŽŲŲ" đ گذاشØĒŲ.
+
+ŲØŗØĒâŲŲØ¯ 8 ØĒا ŲžØąØ¯Ø§Ø˛ŲØ¯Ų (ØĩŲØ¯ŲŲØ¯Ø§Øą/ØĸØ´ŲžØ˛) Ø¯Ø§ØąŲ. Ø¯Øą ØØ§ŲÛ ÚŠŲ ŲØŗØĒâŲŲØ¯ Ø¨ØąÚ¯ØąŲØ§Û ŲŲ
âØ˛Ų
Ø§Ų Ø´Ø§ÛØ¯ ŲŲØˇ 2 ØĒا داشØĒŲ (ÛŲ ØĩŲØ¯ŲŲØ¯Ø§Øą Ų ÛŲ ØĸØ´ŲžØ˛).
+
+ŲŲÛ Ø¨Ø§ اÛŲ ØØ§ŲØ ØĒØŦØąØ¨Ų ŲŲØ§ÛÛ Ø¨ŲØĒØąÛŲ ŲÛØŗØĒ. đ
+
+---
+
+اÛŲ Ų
ØšØ§Ø¯Ų Ų
ŲØ§Ø˛Û Ø¯Ø§ØŗØĒØ§Ų Ø¨ØąÚ¯ØąŲØ§ Ø¨ŲØ¯. đ
+
+Ø¨ØąØ§Û ÛŲ Ų
ØĢØ§Ų "ŲØ§ŲØšÛâØĒØą" Ø§Ø˛ Ø˛ŲØ¯Ú¯ÛØ ÛŲ Ø¨Ø§ŲÚŠ ØąŲ ØĒØĩŲØą ÚŠŲ.
+
+ØĒا ŲŲ
ÛŲ ÚŲØ¯ ŲŲØĒ ŲžÛØ´Ø Ø¨ÛØ´ØĒØą باŲÚŠâŲØ§ ÚŲØ¯ ØĒا ØĩŲØ¯ŲŲØ¯Ø§Øą đ¨âđŧđ¨âđŧđ¨âđŧđ¨âđŧ داشØĒŲ Ų ÛŲ ØĩŲ Ø¨Ø˛ØąÚ¯ đđđđđđđđ.
+
+ŲŲ
Ų ØĩŲØ¯ŲŲØ¯Ø§ØąŲا ÚŠØ§Øą ØąŲ Ø¨Ø§ ÛŲ Ų
Ø´ØĒØąÛ Ø¨ØšØ¯ Ø§Ø˛ اŲŲ ÛÚŠÛ đ¨âđŧâ¯ Ø§ŲØŦاŲ
Ų
ÛâØ¯Ø§Ø¯Ų.
+
+Ų Ø¨Ø§ÛØ¯ ØĒŲÛ ØĩŲ đ Ų
دØĒ Ø˛ÛØ§Ø¯Û Ų
ŲØĒØ¸Øą بŲ
ŲŲÛ ŲÚ¯ØąŲŲ ŲŲØ¨ØĒØĒ ØąŲ Ø§Ø˛ Ø¯ØŗØĒ Ų
ÛâØ¯Û.
+
+Ø§ØØĒŲ
Ø§ŲØ§Ų ŲŲ
ÛâØŽŲØ§Û ØšØ´ŲØĒ đ ØąŲ Ø¨Ø§ ØŽŲØ¯ØĒ Ø¨Ø¨ØąÛ Ø¨Ø§ŲÚŠ đĻ Ø¨ØąØ§Û ÚŠØ§ØąØ§Û ØąŲØ˛Ų
ØąŲ.
+
+### ŲØĒÛØŦŲâÚ¯ÛØąÛ Ø¨ØąÚ¯ØąŲØ§
+
+ØĒŲÛ Ø§ÛŲ ØŗŲØ§ØąÛŲÛ "Ø¨ØąÚ¯ØąŲØ§Û ŲØŗØĒâŲŲØ¯ با ØšØ´ŲØĒ"Ø ÚŲŲ ÚŠŲÛ Ø§ŲØĒØ¸Ø§Øą đ ŲØŗØĒØ ØŽÛŲÛ Ų
ŲØˇŲÛâØĒØąŲ ÚŠŲ ÛŲ ØŗÛØŗØĒŲ
ŲŲ
âØ˛Ų
Ø§Ų â¸đ⯠داشØĒŲ Ø¨Ø§Ø´Û.
+
+اÛŲ Ø¨ØąØ§Û Ø¨ÛØ´ØĒØą Ø¨ØąŲØ§Ų
ŲâŲØ§Û ŲØ¨ ŲŲ
ØĩØ¯Ų Ų
ÛâÚŠŲŲ.
+
+ØŽÛŲÛ ØŽÛŲÛ ÚŠØ§ØąØ¨ØąØ ŲŲÛ ØŗØąŲØąØĒ Ų
ŲØĒØ¸Øą đ Ø§ØĒØĩØ§Ų ŲŲâÚŲØ¯Ø§Ų ØŽŲØ¨Ø´ŲŲ ŲØŗØĒ ØĒا Ø¯ØąØŽŲØ§ØŗØĒâŲØ§Ø´ŲŲ ØąŲ Ø¨ŲØąØŗØĒŲ.
+
+Ų Ø¨ØšØ¯ Ø¯ŲØ¨Ø§ØąŲ Ų
ŲØĒØ¸Øą đ ÚŠŲ ØŦŲØ§Ø¨âŲØ§ Ø¨ØąÚ¯ØąØ¯Ų.
+
+اÛŲ "Ø§ŲØĒØ¸Ø§Øą" đ ØĒŲÛ Ų
ÛÚŠØąŲØĢØ§ŲÛŲâŲØ§ Ø§ŲØ¯Ø§Ø˛ŲâÚ¯ÛØąÛ Ų
ÛâØ´ŲØ ŲŲÛ Ø¨Ø§ اÛŲ ØØ§ŲØ ØŦŲ
ؚش ÚŠŲ Ø¨ÚŠŲÛ ØĸØŽØąØ´ ÚŠŲÛ Ø§ŲØĒØ¸Ø§Øą Ų
ÛâØ´Ų.
+
+Ø¨ØąØ§Û ŲŲ
ÛŲ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų â¸đâ¯ Ø¨ØąØ§Û APIŲØ§Û ŲØ¨ ØŽÛŲÛ Ų
ŲØˇŲÛŲ.
+
+اÛŲ ŲŲØš ŲØ§ŲŲ
âØ˛Ų
اŲÛ ÚÛØ˛ÛŲ ÚŠŲ NodeJS ØąŲ Ų
ØØ¨Ųب ÚŠØąØ¯ (Ú¯ØąÚŲ NodeJS Ų
ŲØ§Ø˛Û ŲÛØŗØĒ) Ų ŲŲØˇŲ ŲŲØĒ Go بŲâØšŲŲØ§Ų ÛŲ Ø˛Ø¨ŲŲ Ø¨ØąŲØ§Ų
ŲâŲŲÛØŗÛŲ.
+
+Ų ŲŲ
ŲŲ ØŗØˇØ ØšŲ
ŲÚŠØąØ¯Û ŲØŗØĒ ÚŠŲ Ø¨Ø§ **FastAPI** Ų
ÛâÚ¯ÛØąÛ.
+
+Ų ÚŲŲ Ų
ÛâØĒŲŲÛ ŲŲ
âØ˛Ų
اŲÛ Ų Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û ØąŲ ŲŲ
Ø˛Ų
Ø§Ų Ø¯Ø§Ø´ØĒŲ Ø¨Ø§Ø´ÛØ ØšŲ
ŲÚŠØąØ¯ Ø¨Ø§ŲØ§ØĒØąÛ Ø§Ø˛ Ø¨ÛØ´ØĒØą ŲØąÛŲ
âŲØąÚŠâŲØ§Û ØĒØŗØĒâØ´Ø¯Ų NodeJS Ų
ÛâÚ¯ÛØąÛ Ų ŲŲ
âØĒØąØ§Ø˛ با GoØ ÚŠŲ ÛŲ Ø˛Ø¨ŲŲ ÚŠØ§Ų
ŲžØ§ÛŲâØ´Ø¯Ų ŲØ˛Ø¯ÛÚŠ Ø¨Ų C ŲØŗØĒ (ŲŲ
Ų Ø§ÛŲØ§ Ø¨Ų ŲØˇŲ Starlette).
+
+### ØĸÛØ§ ŲŲ
âØ˛Ų
اŲÛ Ø§Ø˛ Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û Ø¨ŲØĒØąŲØ
+
+ŲŲ! اÛŲ ŲØĒÛØŦŲ Ø¯Ø§ØŗØĒØ§Ų ŲÛØŗØĒ.
+
+ŲŲ
âØ˛Ų
اŲÛ Ø¨Ø§ Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û ŲØąŲ Ø¯Ø§ØąŲ. Ų ØĒŲÛ **ØŗŲØ§ØąÛŲŲØ§Û ؎اØĩ** ÚŠŲ ÚŠŲÛ Ø§ŲØĒØ¸Ø§Øą Ø¯Ø§ØąŲ Ø¨ŲØĒØąŲ. Ø¨Ų ŲŲ
ÛŲ ØŽØ§ØˇØąØ Ų
ØšŲ
ŲŲØ§Ų Ø¨ØąØ§Û ØĒŲØŗØšŲ Ø¨ØąŲØ§Ų
ŲâŲØ§Û ŲØ¨ ØŽÛŲÛ Ø§Ø˛ Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û Ø¨ŲØĒØąŲ. ŲŲÛ ŲŲ Ø¨ØąØ§Û ŲŲ
ŲâÚÛØ˛.
+
+Ø¨ØąØ§Û Ø§ÛŲÚŠŲ ÛŲ ØĒØšØ§Ø¯Ų Ø¨Ø°Ø§ØąÛŲ
Ø Ø§ÛŲ Ø¯Ø§ØŗØĒØ§Ų ÚŠŲØĒØ§Ų ØąŲ ØĒØĩŲØą ÚŠŲ:
+
+> Ø¨Ø§ÛØ¯ ÛŲ ØŽŲŲŲ Ø¨Ø˛ØąÚ¯ Ų ÚŠØĢÛŲ ØąŲ ØĒŲ
ÛØ˛ ÚŠŲÛ.
+
+*ØĸØąŲØ ÚŠŲ Ø¯Ø§ØŗØĒØ§Ų ŲŲ
ÛŲŲ*.
+
+---
+
+ŲÛÚ Ø§ŲØĒØ¸Ø§ØąÛ đ Ø§ŲŲØŦا ŲÛØŗØĒØ ŲŲØˇ ÚŠŲÛ ÚŠØ§Øą Ø¨ØąØ§Û Ø§ŲØŦاŲ
Ø¯Ø§Ø¯Ų ØĒŲÛ ØŦØ§ŲØ§Û Ų
ØŽØĒŲŲ ØŽŲŲŲ.
+
+Ų
ÛâØĒŲŲÛ Ų
ØĢŲ Ų
ØĢØ§Ų Ø¨ØąÚ¯ØąŲØ§ ŲŲØ¨ØĒ Ø¨Ø°Ø§ØąÛØ اŲŲ ŲžØ°ÛØąØ§ÛÛØ بؚد ØĸØ´ŲžØ˛ØŽŲŲŲØ ŲŲÛ ÚŲŲ Ų
ŲØĒØ¸Øą ÚÛØ˛Û ŲÛØŗØĒÛ đØ ŲŲØˇ Ø¯Ø§ØąÛ ØĒŲ
ÛØ˛ Ų
ÛâÚŠŲÛ Ų ØĒŲ
ÛØ˛ Ų
ÛâÚŠŲÛØ ŲŲØ¨ØĒâŲØ§ ŲÛÚ ØĒØŖØĢÛØąÛ ŲØ¯Ø§ØąŲ.
+
+با ŲŲØ¨ØĒ ÛØ§ بدŲŲ ŲŲØ¨ØĒ (ŲŲ
âØ˛Ų
اŲÛ) ŲŲ
ŲŲ ŲØ¯Øą ØˇŲŲ Ų
ÛâÚŠØ´Ų ØĒا ØĒŲ
ŲŲ
Ø´ ÚŠŲÛ Ų ŲŲ
ŲŲ Ų
ŲØ¯Ø§Øą ÚŠØ§Øą ØąŲ ÚŠØąØ¯Û.
+
+ŲŲÛ ØĒŲÛ Ø§ÛŲ Ų
ŲŲØšÛØĒØ Ø§Ú¯Ų Ø¨ØĒŲŲÛ Ø§ŲŲ 8 ØĒا ØĩŲØ¯ŲŲØ¯Ø§Øą/ØĸØ´ŲžØ˛/ØØ§Ųا-ØĒŲ
ÛØ˛ÚŠØ§Øą ØąŲ Ø¨ÛØ§ØąÛØ Ų ŲØą ڊدŲŲ
Ø´ŲŲ (بŲâØšŲØ§ŲŲ ØŽŲØ¯ØĒ) ÛŲ ŲØŗŲ
ØĒ Ø§Ø˛ ØŽŲŲŲ ØąŲ ØĒŲ
ÛØ˛ ÚŠŲŲØ Ų
ÛâØĒŲŲÛ ŲŲ
Ų ÚŠØ§Øą ØąŲ **Ų
ŲØ§Ø˛Û** Ø§ŲØŦاŲ
Ø¨Ø¯ÛØ با ÚŠŲ
ÚŠ اØļاŲÛØ Ų ØŽÛŲÛ Ø˛ŲØ¯ØĒØą ØĒŲ
ŲŲ
Ø´ ÚŠŲÛ.
+
+ØĒŲÛ Ø§ÛŲ ØŗŲØ§ØąÛŲØ ŲØą ڊدŲŲ
Ø§Ø˛ ØĒŲ
ÛØ˛ÚŠØ§ØąŲا (Ø§Ø˛ ØŦŲ
ŲŲ ØŽŲØ¯ØĒ) ÛŲ ŲžØąØ¯Ø§Ø˛ŲØ¯ŲâØŗØĒ ÚŠŲ ÚŠØ§Øą ØŽŲØ¯Ø´ ØąŲ Ų
ÛâÚŠŲŲ.
+
+Ų ÚŲŲ Ø¨ÛØ´ØĒØą Ø˛Ų
Ø§Ų Ø§ØŦØąØ§ ØĩØąŲ ÚŠØ§Øą ŲØ§ŲØšÛ Ų
ÛâØ´Ų (Ø¨Ų ØŦØ§Û Ø§ŲØĒØ¸Ø§Øą)Ø Ų ÚŠØ§Øą ØĒŲÛ ÚŠØ§Ų
ŲžÛŲØĒØą Ø¨Ø§ CPU Ø§ŲØŦاŲ
Ų
ÛâØ´ŲØ Ø¨Ų Ø§ÛŲ Ų
Ø´ÚŠŲØ§ØĒ Ų
ÛâÚ¯Ų "CPU bound".
+
+---
+
+Ų
ØĢاŲâŲØ§Û ØąØ§ÛØŦ ØšŲ
ŲÛØ§ØĒ CPU bound ÚÛØ˛Ø§ÛÛ ŲØŗØĒŲ ÚŠŲ ŲÛØ§Ø˛ Ø¨Ų ŲžØąØ¯Ø§Ø˛Ø´ ØąÛØ§ØļÛ ŲžÛÚÛØ¯Ų Ø¯Ø§ØąŲ.
+
+Ų
ØĢŲØ§Ų:
+
+* ŲžØąØ¯Ø§Ø˛Ø´ **Øĩدا** ÛØ§ **ØĒØĩŲÛØą**.
+* **بÛŲØ§ÛÛ ÚŠØ§Ų
ŲžÛŲØĒØąÛ**: ÛŲ ØĒØĩŲÛØą Ø§Ø˛ Ų
ÛŲÛŲŲâŲØ§ ŲžÛÚŠØŗŲ ØĒØ´ÚŠÛŲ Ø´Ø¯ŲØ ŲØą ŲžÛÚŠØŗŲ 3 ØĒا Ų
ŲØ¯Ø§Øą / ØąŲÚ¯ Ø¯Ø§ØąŲØ ŲžØąØ¯Ø§Ø˛Ø´Ø´ Ų
ØšŲ
ŲŲØ§Ų ŲÛØ§Ø˛ Ø¯Ø§ØąŲ ÚÛØ˛Û ØąŲ ØąŲ Ø§ŲŲ ŲžÛÚŠØŗŲâŲØ§ ŲŲ
Ø˛Ų
Ø§Ų ØØŗØ§Ø¨ ÚŠŲÛ.
+* **ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲ**: Ų
ØšŲ
ŲŲØ§Ų ÚŠŲÛ ØļØąØ¨ "Ų
اØĒØąÛØŗ" Ų "Ø¨ØąØ¯Ø§Øą" ŲØ§Ø˛Ų
Ø¯Ø§ØąŲ. ÛŲ ØŦدŲŲ Ø¨Ø˛ØąÚ¯ ŲžØą Ø§Ø˛ ؚدد ØąŲ ØĒØĩŲØą ÚŠŲ ÚŠŲ ŲŲ
ŲâØ´ŲŲ ØąŲ ŲŲ
Ø˛Ų
Ø§Ų ØļØąØ¨ Ų
ÛâÚŠŲÛ.
+* **ÛØ§Ø¯Ú¯ÛØąÛ ØšŲ
ÛŲ**: اÛŲ ÛŲ Ø˛ÛØąØ´Ø§ØŽŲ Ø§Ø˛ ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲŲØ ŲžØŗ ŲŲ
ŲŲ ŲØļÛŲ ØĩØ¯Ų Ų
ÛâÚŠŲŲ. ŲŲØˇ اÛŲ ÚŠŲ ÛŲ ØŦدŲŲ ØšØ¯Ø¯ Ø¨ØąØ§Û ØļØąØ¨ ÚŠØąØ¯Ų ŲÛØŗØĒØ Ø¨ŲÚŠŲ ÛŲ Ų
ØŦŲ
ŲØšŲ Ø¨Ø˛ØąÚ¯ Ø§Ø˛ اŲŲØ§ ŲØŗØĒØ Ų ØĒŲÛ ØŽÛŲÛ Ų
ŲØ§ØąØ¯ Ø§Ø˛ ÛŲ ŲžØąØ¯Ø§Ø˛ŲØ¯Ų ؎اØĩ Ø¨ØąØ§Û ØŗØ§ØŽØĒ Ų / ÛØ§ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ اÛŲ Ų
دŲâŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ.
+
+### ŲŲ
âØ˛Ų
اŲÛ + Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û: ŲØ¨ + ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲ
+
+با **FastAPI** Ų
ÛâØĒŲŲÛ Ø§Ø˛ ŲŲ
âØ˛Ų
اŲÛ ÚŠŲ Ø¨ØąØ§Û ØĒŲØŗØšŲ ŲØ¨ ØŽÛŲÛ ØąØ§ÛØŦŲ (ŲŲ
ŲŲ ØŦØ°Ø§Ø¨ÛØĒ Ø§ØĩŲÛ NodeJS) Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ.
+
+ŲŲÛ Ų
ÛâØĒŲŲÛ Ø§Ø˛ ŲŲØ§Ûد Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û Ų ÚŲØ¯ŲžØąØ¯Ø§Ø˛Ø´Û (اØŦØąØ§Û ÚŲØ¯ ŲžØąŲØŗŲ بŲâØĩŲØąØĒ Ų
ŲØ§Ø˛Û) Ø¨ØąØ§Û ÚŠØ§ØąØ§Û **CPU bound** Ų
ØĢŲ ØŗÛØŗØĒŲ
âŲØ§Û ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲ ŲŲ
Ø¨ŲØąŲ Ø¨Ø¨ØąÛ.
+
+اÛŲØ بŲâØšŲØ§ŲŲ Ø§ÛŲ ŲØ§ŲØšÛØĒ ØŗØ§Ø¯Ų ÚŠŲ ŲžØ§ÛØĒŲŲ Ø˛Ø¨ŲŲ Ø§ØĩŲÛ Ø¨ØąØ§Û **ØšŲŲ
دادŲ**Ø ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲ Ų Ø¨ŲâØŽØĩŲØĩ ÛØ§Ø¯Ú¯ÛØąÛ ØšŲ
ÛŲŲØ باؚØĢ Ų
ÛâØ´Ų FastAPI ÛŲ Ø§ŲØĒØŽØ§Ø¨ ØŽÛŲÛ ØŽŲØ¨ Ø¨ØąØ§Û APIŲØ§ Ų Ø¨ØąŲØ§Ų
ŲâŲØ§Û ŲØ¨ ØšŲŲ
Ø¯Ø§Ø¯Ų / ÛØ§Ø¯Ú¯ÛØąÛ Ų
اشÛŲ Ø¨Ø§Ø´Ų (بÛŲ ØŽÛŲÛ ÚÛØ˛Ø§Û دÛÚ¯Ų).
+
+Ø¨ØąØ§Û Ø¯ÛØ¯Ų اÛŲÚŠŲ ÚØˇŲØą ØĒŲÛ Ų
ØÛØˇ ŲØ§ŲØšÛ Ø¨Ų Ø§ÛŲ Ų
ŲØ§Ø˛ÛâØŗØ§Ø˛Û Ø¨ØąØŗÛØ ب؎ش [Ø§ØŗØĒŲØąØ§Øą](deployment/index.md){.internal-link target=_blank} ØąŲ Ø¨Ø¨ÛŲ.
+
+## `async` Ų `await`
+
+ŲØŗØŽŲâŲØ§Û Ų
Ø¯ØąŲ ŲžØ§ÛØĒŲŲ ÛŲ ØąØ§Ų ØŽÛŲÛ ØŗØ§Ø¯Ų Ų ŲØ§Ø¨ŲâŲŲŲ
Ø¨ØąØ§Û ØĒØšØąÛŲ ÚŠØ¯ ŲØ§ŲŲ
âØ˛Ų
Ø§Ų Ø¯Ø§ØąŲ. اÛŲ Ø¨Ø§ØšØĢ Ų
ÛâØ´Ų Ų
ØĢŲ ÚŠØ¯ "ØĒØąØĒÛØ¨Û" Ų
ØšŲ
ŲŲÛ Ø¨Ų ŲØ¸Øą Ø¨ÛØ§Ø¯ Ų ØĒŲÛ ŲØØ¸ŲâŲØ§Û Ø¯ØąØŗØĒ "Ø§ŲØĒØ¸Ø§Øą" ØąŲ Ø¨ØąØ§ØĒ Ø§ŲØŦاŲ
بدŲ.
+
+ŲŲØĒÛ ÛŲ ØšŲ
ŲÛØ§ØĒÛ ŲØŗØĒ ÚŠŲ ŲØ¨Ų Ø§Ø˛ Ø¯Ø§Ø¯Ų ŲØĒÛØŦŲâŲØ§ ŲÛØ§Ø˛ Ø¨Ų Ø§ŲØĒØ¸Ø§Øą Ø¯Ø§ØąŲ Ų Ø§Ø˛ اÛŲ ŲØ§Ø¨ŲÛØĒâŲØ§Û ØŦØ¯ÛØ¯ ŲžØ§ÛØĒŲŲ ŲžØ´ØĒÛØ¨Ø§ŲÛ Ų
ÛâÚŠŲŲØ Ų
ÛâØĒŲŲÛ Ø§ÛŲØŦŲØąÛ ڊدŲŲÛØŗÛØ´ ÚŠŲÛ:
+
+```Python
+burgers = await get_burgers(2)
+```
+
+ŲÚŠØĒŲ ÚŠŲÛØ¯Û اÛŲØŦا `await` ŲØŗØĒ. Ø¨Ų ŲžØ§ÛØĒŲŲ Ų
ÛâÚ¯Ų ÚŠŲ Ø¨Ø§ÛØ¯ ⸠Ų
ŲØĒØ¸Øą بŲ
ŲŲŲ ØĒا `get_burgers(2)` ÚŠØ§ØąØ´ đ ØĒŲ
ŲŲ
Ø¨Ø´Ų ŲØ¨Ų Ø§Ø˛ اÛŲÚŠŲ ŲØĒÛØŦŲâŲØ§ ØąŲ ØĒŲÛ `burgers` Ø°ØŽÛØąŲ ÚŠŲŲ. با اÛŲØ ŲžØ§ÛØĒŲŲ Ų
ÛâØ¯ŲŲŲ ÚŠŲ Ų
ÛâØĒŲŲŲ Ø¨ØąŲ ÛŲ ÚŠØ§Øą دÛÚ¯Ų đ ⯠ØĒŲÛ Ø§ÛŲ Ų
دØĒ بڊŲŲ (Ų
ØĢŲ Ú¯ØąŲØĒŲ ÛŲ Ø¯ØąØŽŲØ§ØŗØĒ دÛÚ¯Ų).
+
+Ø¨ØąØ§Û Ø§ÛŲÚŠŲ `await` ÚŠØ§Øą ÚŠŲŲØ Ø¨Ø§ÛØ¯ ØĒŲÛ ÛŲ ØĒابؚ Ø¨Ø§Ø´Ų ÚŠŲ Ø§Ø˛ اÛŲ ŲØ§ŲŲ
âØ˛Ų
اŲÛ ŲžØ´ØĒÛØ¨Ø§ŲÛ ÚŠŲŲ. Ø¨ØąØ§Û Ø§ÛŲ ÚŠØ§ØąØ ŲŲØˇ با `async def` ØĒØšØąÛŲØ´ Ų
ÛâÚŠŲÛ:
+
+```Python hl_lines="1"
+async def get_burgers(number: int):
+ # ÛŲ ØŗØąÛ ÚŠØ§Øą ŲØ§ŲŲ
âØ˛Ų
Ø§Ų Ø¨ØąØ§Û ØŗØ§ØŽØĒŲ Ø¨ØąÚ¯ØąŲØ§ Ø§ŲØŦاŲ
بدŲ
+ return burgers
+```
+
+...Ø¨Ų ØŦØ§Û `def`:
+
+```Python hl_lines="2"
+# اÛŲ ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ŲÛØŗØĒ
+def get_sequential_burgers(number: int):
+ # ÛŲ ØŗØąÛ ÚŠØ§Øą ØĒØąØĒÛØ¨Û Ø¨ØąØ§Û ØŗØ§ØŽØĒŲ Ø¨ØąÚ¯ØąŲØ§ Ø§ŲØŦاŲ
بدŲ
+ return burgers
+```
+
+با `async def`Ø ŲžØ§ÛØĒŲŲ Ų
ÛâØ¯ŲŲŲ ÚŠŲ ØĒŲÛ Ø§ŲŲ ØĒابؚ Ø¨Ø§ÛØ¯ ØŲØ§ØŗØ´ Ø¨Ų ØšØ¨Ø§ØąØĒâŲØ§Û `await` Ø¨Ø§Ø´ŲØ Ų Ų
ÛâØĒŲŲŲ Ø§ØŦØąØ§Û Ø§ŲŲ ØĒابؚ ØąŲ "Ų
ŲŲØĒØ§Ų Ų
ØĒŲŲŲ" ⸠ڊŲŲ Ų Ø¨ØąŲ ÛŲ ÚŠØ§Øą دÛÚ¯Ų đ ŲØ¨Ų Ø§Ø˛ Ø¨ØąÚ¯Ø´ØĒŲ Ø¨ÚŠŲŲ.
+
+ŲŲØĒÛ Ų
ÛâØŽŲØ§Û ÛŲ ØĒابؚ `async def` ØąŲ Øĩدا ÚŠŲÛØ Ø¨Ø§ÛØ¯ "Ų
ŲØĒØ¸ØąØ´" بŲ
ŲŲÛ. ŲžØŗ اÛŲ ÚŠØ§Øą ŲŲ
ÛâÚŠŲŲ:
+
+```Python
+# اÛŲ ÚŠØ§Øą ŲŲ
ÛâÚŠŲŲØ ÚŲŲ get_burgers با async def ØĒØšØąÛŲ Ø´Ø¯Ų
+burgers = get_burgers(2)
+```
+
+---
+
+ŲžØŗØ Ø§Ú¯Ų Ø§Ø˛ ÛŲ ÚŠØĒاب؎ŲŲŲ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ ÚŠŲ Ø¨ŲØĒ Ų
ÛâÚ¯Ų Ų
ÛâØĒŲŲÛ Ø¨Ø§ `await` Øĩداش ÚŠŲÛØ Ø¨Ø§ÛØ¯ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ÚŠŲ Ø§Ø˛Ø´ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲŲ ØąŲ Ø¨Ø§ `async def` Ø¨ØŗØ§Ø˛ÛØ Ų
ØĢŲ:
+
+```Python hl_lines="2-3"
+@app.get('/burgers')
+async def read_burgers():
+ burgers = await get_burgers(2)
+ return burgers
+```
+
+### ØŦØ˛ØĻÛØ§ØĒ ŲŲÛâØĒØą
+
+Ø´Ø§ÛØ¯ Ų
ØĒŲØŦŲ Ø´Ø¯Ų Ø¨Ø§Ø´Û ÚŠŲ `await` ŲŲØˇ ØĒŲÛ ØĒŲØ§Ø¨ØšÛ ÚŠŲ Ø¨Ø§ `async def` ØĒØšØąÛŲ Ø´Ø¯Ų Ų
ÛâØĒŲŲŲ Ø§ØŗØĒŲØ§Ø¯Ų بشŲ.
+
+ŲŲÛ Ø¯Øą ØšÛŲ ØØ§ŲØ ØĒŲØ§Ø¨ØšÛ ÚŠŲ Ø¨Ø§ `async def` ØĒØšØąÛŲ Ø´Ø¯Ų Ø¨Ø§ÛØ¯ "Ų
ŲØĒØ¸Øą"Ø´ŲŲ Ø¨Ų
ŲŲÛ. ŲžØŗ ØĒŲØ§Ø¨Øš با `async def` ŲŲØˇ ØĒŲÛ ØĒŲØ§Ø¨ØšÛ ÚŠŲ Ø¨Ø§ `async def` ØĒØšØąÛŲ Ø´Ø¯Ų Ų
ÛâØĒŲŲŲ Øĩدا Ø˛Ø¯Ų Ø¨Ø´Ų.
+
+ØØ§ŲØ§Ø ŲØļÛŲ Ų
ØąØē Ų ØĒØŽŲ
âŲ
ØąØē ÚÛŲØ ÚØˇŲØą اŲŲÛŲ ØĒابؚ `async` ØąŲ Øĩدا Ų
ÛâÚŠŲÛØ
+
+Ø§Ú¯Ų Ø¨Ø§ **FastAPI** ÚŠØ§Øą Ų
ÛâÚŠŲÛØ ŲØ§Ø˛Ų
ŲÛØŗØĒ ŲÚ¯ØąØ§Ų Ø§ÛŲ Ø¨Ø§Ø´ÛØ ÚŲŲ Ø§ŲŲ "اŲŲÛŲ" ØĒØ§Ø¨ØšØ *ØĒابؚ ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ŲØŗØĒØ Ų FastAPI Ų
ÛâØ¯ŲŲŲ ÚØˇŲØą ÚŠØ§Øą Ø¯ØąØŗØĒ ØąŲ Ø¨ÚŠŲŲ.
+
+ŲŲÛ Ø§Ú¯Ų Ø¨ØŽŲØ§Û بدŲŲ FastAPI Ø§Ø˛ `async` / `await` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛØ اÛŲŲ
Ų
Ų
ÚŠŲŲ.
+
+### ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØŽŲØ¯ØĒ ØąŲ Ø¨ŲŲÛØŗ
+
+Starlette (Ų **FastAPI**) Ø¨Øą ŲžØ§ÛŲ AnyIO ŲØŗØĒŲØ ÚŠŲ Ø¨Ø§ØšØĢ Ų
ÛâØ´Ų Ø¨Ø§ ÚŠØĒاب؎ŲŲŲ Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯ ŲžØ§ÛØĒŲŲ asyncio Ų Trio ØŗØ§Ø˛Ú¯Ø§Øą باشŲ.
+
+بŲâØŽØĩŲØĩØ Ų
ÛâØĒŲŲÛ Ų
ØŗØĒŲÛŲ
Ø§Ų Ø§Ø˛ AnyIO Ø¨ØąØ§Û Ų
ŲØ§ØąØ¯ Ø§ØŗØĒŲØ§Ø¯Ų ŲžÛØ´ØąŲØĒŲ ŲŲ
âØ˛Ų
اŲÛ ÚŠŲ ŲÛØ§Ø˛ Ø¨Ų Ø§ŲÚ¯ŲŲØ§Û ŲžÛÚÛØ¯ŲâØĒØą ØĒŲÛ ÚŠØ¯ ØŽŲØ¯ØĒ Ø¯Ø§ØąŲ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ.
+
+Ų ØØĒÛ Ø§Ú¯Ų Ø§Ø˛ FastAPI Ø§ØŗØĒŲØ§Ø¯Ų ŲÚŠŲÛØ Ų
ÛâØĒŲŲÛ Ø¨ØąŲØ§Ų
ŲâŲØ§Û ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØŽŲØ¯ØĒ ØąŲ Ø¨Ø§ AnyIO بŲŲÛØŗÛ ØĒا ØŽÛŲÛ ØŗØ§Ø˛Ú¯Ø§Øą Ø¨Ø§Ø´Ų Ų ŲŲØ§Ûدش ØąŲ Ø¨Ú¯ÛØąÛ (Ų
ØĢŲ *ŲŲ
âØ˛Ų
اŲÛ ØŗØ§ØŽØĒØ§ØąÛØ§ŲØĒŲ*).
+
+Ų
Ų ÛŲ ÚŠØĒاب؎ŲŲŲ Ø¯ÛÚ¯Ų ØąŲÛ AnyIO ØŗØ§ØŽØĒŲ
Ø ÛŲ ŲØ§ÛŲ ŲØ§Ø˛ÚŠ ØąŲØ´Ø ØĒا ÛŲ ÚŠŲ
annotationŲØ§Û ŲŲØš ØąŲ Ø¨ŲØĒØą ÚŠŲŲ
Ų **ØĒÚŠŲ
ÛŲ ØŽŲØ¯ÚŠØ§Øą** Ø¨ŲØĒØąØ **ØŽØˇØ§ŲØ§Û Ø¯ØąŲŲâØŽØˇÛ** Ų ØēÛØąŲ Ø¨Ú¯ÛØąŲ
. ÛŲ Ų
ŲØ¯Ų
Ų Ų ØĸŲ
ŲØ˛Ø´ ØŗØ§Ø¯Ų ŲŲ
Ø¯Ø§ØąŲ ÚŠŲ Ø¨ŲØĒ ÚŠŲ
ÚŠ Ų
ÛâÚŠŲŲ **بŲŲŲ
Û** Ų **ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØŽŲØ¯ØĒ ØąŲ Ø¨ŲŲÛØŗÛ**: Asyncer. Ø§Ú¯Ų Ø¨ØŽŲØ§Û **ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØąŲ Ø¨Ø§ ڊد Ų
ØšŲ
ŲŲÛ** (Ø¨ŲØ§ÚŠâÚŠŲŲØ¯Ų/ŲŲ
âØ˛Ų
اŲ) ØĒØąÚŠÛØ¨ ÚŠŲÛ ØŽÛŲÛ Ø¨ŲâØ¯ØąØ¯ØĒ Ų
ÛâØŽŲØąŲ.
+
+### Ø´ÚŠŲâŲØ§Û دÛÚ¯Ų ÚŠØ¯ ŲØ§ŲŲ
âØ˛Ų
اŲ
+
+اÛŲ ØŗØ¨ÚŠ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `async` Ų `await` ØĒŲÛ Ø˛Ø¨ŲŲ ŲØŗØ¨ØĒØ§Ų ØŦØ¯ÛØ¯Ų.
+
+ŲŲÛ ÚŠØ§Øą با ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØąŲ ØŽÛŲÛ ØŗØ§Ø¯ŲâØĒØą Ų
ÛâÚŠŲŲ.
+
+ŲŲ
ÛŲ ØŗÛŲØĒÚŠØŗ (ÛØ§ ØĒŲØąÛØ¨Ø§Ų ÛÚŠØŗØ§Ų) Ø§ØŽÛØąØ§Ų ØĒŲÛ ŲØŗØŽŲâŲØ§Û Ų
Ø¯ØąŲ ØŦØ§ŲØ§Ø§ØŗÚŠØąÛŲžØĒ (ØĒŲÛ Ų
ØąŲØąÚ¯Øą Ų NodeJS) ŲŲ
اØļاŲŲ Ø´Ø¯Ų.
+
+ŲŲÛ ŲØ¨Ų Ø§Ø˛ اŲŲØ Ų
Ø¯ÛØąÛØĒ ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų ØŽÛŲÛ ŲžÛÚÛØ¯ŲâØĒØą Ų ØŗØŽØĒâØĒØą Ø¨ŲØ¯.
+
+ØĒŲÛ ŲØŗØŽŲâŲØ§Û ŲØ¨ŲÛ ŲžØ§ÛØĒŲŲØ Ų
ÛâØĒŲŲØŗØĒÛ Ø§Ø˛ ŲØŽâŲØ§ ÛØ§ Gevent Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ. ŲŲÛ ÚŠØ¯ ØŽÛŲÛ ŲžÛÚÛØ¯ŲâØĒØą Ų
ÛâØ´Ų Ø¨ØąØ§Û ŲŲŲ
ÛØ¯ŲØ Ø¯ÛØ¨Ø§Ú¯ ÚŠØąØ¯Ų Ų ŲÚŠØą ÚŠØąØ¯Ų Ø¨ŲØ´.
+
+ØĒŲÛ ŲØŗØŽŲâŲØ§Û ŲØ¨ŲÛ NodeJS / ØŦØ§ŲØ§Ø§ØŗÚŠØąÛŲžØĒ Ų
ØąŲØąÚ¯ØąØ Ø§Ø˛ "ڊاŲâØ¨ÚŠâŲØ§" Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠØąØ¯Û. ÚŠŲ Ų
ÛâØąØŗÛØ¯ Ø¨Ų ØŦŲØ§Ų ڊاŲâØ¨ÚŠâŲØ§.
+
+## ÚŠØąŲØĒÛŲâŲØ§
+
+**ÚŠØąŲØĒÛŲ** ŲŲØˇ ÛŲ Ø§ØĩØˇŲØ§Ø ØŽÛŲÛ Ø´ÛÚŠ Ø¨ØąØ§Û ÚÛØ˛ÛŲ ÚŠŲ ÛŲ ØĒابؚ `async def` Ø¨ØąŲ
ÛâÚ¯ØąØ¯ŲŲŲ. ŲžØ§ÛØĒŲŲ Ų
ÛâØ¯ŲŲŲ ÚŠŲ Ø§ÛŲ ÛŲ ÚÛØ˛Û Ų
ØĢŲ ØĒابؚ ŲØŗØĒØ Ų
ÛâØĒŲŲŲ Ø´ØąŲØš Ø¨Ø´Ų Ų ÛŲ ØŦاÛÛ ØĒŲ
ŲŲ
Ø¨Ø´ŲØ ŲŲÛ Ų
Ų
ÚŠŲŲ Ø¯Ø§ØŽŲØ´ ŲŲ
Ų
ŲŲŲ â¸ Ø¨Ø´ŲØ ŲØą ŲŲØĒ ÛŲ `await` ØĒŲØ´ باشŲ.
+
+ŲŲÛ ŲŲ
Ų Ø§ÛŲ ŲØ§Ø¨ŲÛØĒ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ ڊد ŲØ§ŲŲ
âØ˛Ų
Ø§Ų Ø¨Ø§ `async` Ų `await` ØŽÛŲÛ ŲŲØĒØ§ ØŽŲØ§ØĩŲ Ų
ÛâØ´Ų Ø¨Ų Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ "ÚŠØąŲØĒÛŲâŲØ§". اÛŲ ŲØ§Ø¨Ų Ų
ŲØ§ÛØŗŲ Ø¨Ø§ ŲÛÚÚ¯Û Ø§ØĩŲÛ GoØ ÛØšŲÛ "GoroutineŲØ§" ŲØŗØĒ.
+
+## ŲØĒÛØŦŲâÚ¯ÛØąÛ
+
+Ø¨ÛØ§Ûد ŲŲ
ŲŲ ØŦŲ
ŲŲ Ø§Ø˛ Ø¨Ø§ŲØ§ ØąŲ Ø¨Ø¨ÛŲÛŲ
:
+
+> ŲØŗØŽŲâŲØ§Û Ų
Ø¯ØąŲ ŲžØ§ÛØĒŲŲ Ø§Ø˛ **"ڊد ŲØ§ŲŲ
âØ˛Ų
اŲ"** با ÚÛØ˛Û ÚŠŲ Ø¨ŲØ´ **"ÚŠØąŲØĒÛŲ"** Ų
ÛâÚ¯Ų ŲžØ´ØĒÛØ¨Ø§ŲÛ Ų
ÛâÚŠŲŲØ با ØŗÛŲØĒÚŠØŗ **`async` Ų `await`**.
+
+ØØ§Ųا Ø¨Ø§ÛØ¯ Ø¨ÛØ´ØĒØą Ø¨ØąØ§ØĒ Ų
ØšŲÛ Ø¨Ø¯Ų. â¨
+
+ŲŲ
Ų Ø§ÛŲØ§ ÚÛØ˛ÛŲ ÚŠŲ Ø¨Ų FastAPI (Ø§Ø˛ ØˇØąÛŲ Starlette) ŲØ¯ØąØĒ Ų
ÛâØ¯Ų Ų Ø¨Ø§ØšØĢ Ų
ÛâØ´Ų ØšŲ
ŲÚŠØąØ¯ ÚØ´Ų
Ú¯ÛØąÛ داشØĒŲ Ø¨Ø§Ø´Ų.
+
+## ØŦØ˛ØĻÛØ§ØĒ ØŽÛŲÛ ŲŲÛ
+
+/// warning
+
+Ø§ØØĒŲ
Ø§ŲØ§Ų Ų
ÛâØĒŲŲÛ Ø§ÛŲŲ ØąØ¯ ÚŠŲÛ.
+
+اÛŲØ§ ØŦØ˛ØĻÛØ§ØĒ ØŽÛŲÛ ŲŲÛ Ø§Ø˛ ŲØŲŲ ÚŠØ§Øą **FastAPI** Ø˛ÛØą ŲžŲØŗØĒŲâØŗØĒ.
+
+Ø§Ú¯Ų ÛŲ ÚŠŲ
Ø¯Ø§ŲØ´ ŲŲÛ (ÚŠØąŲØĒÛŲâŲØ§Ø ŲØŽâŲØ§Ø Ø¨ŲØ§ÚŠ ÚŠØąØ¯Ų Ų ØēÛØąŲ) Ø¯Ø§ØąÛ Ų ÚŠŲØŦڊاŲÛ ÚŠŲ FastAPI ÚØˇŲØą `async def` ØąŲ Ø¯Øą Ų
ŲØ§Ø¨Ų `def` Ų
ØšŲ
ŲŲÛ Ų
Ø¯ÛØąÛØĒ Ų
ÛâÚŠŲŲØ اداŲ
Ų Ø¨Ø¯Ų.
+
+///
+
+### ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØą
+
+ŲŲØĒÛ ÛŲ *ØĒابؚ ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØą* ØąŲ Ø¨Ø§ `def` Ų
ØšŲ
ŲŲÛ Ø¨Ų ØŦØ§Û `async def` ØĒØšØąÛŲ Ų
ÛâÚŠŲÛØ ØĒŲÛ ÛŲ Ø§ØŗØĒØŽØą ŲØŽ ØŽØ§ØąØŦÛ Ø§ØŦØąØ§ Ų
ÛâØ´Ų ÚŠŲ Ø¨ØšØ¯Ø´ Ų
ŲØĒØ¸ØąØ´ Ų
ÛâŲ
ŲŲŲØ Ø¨Ų ØŦØ§Û Ø§ÛŲÚŠŲ Ų
ØŗØĒŲÛŲ
Øĩداش ÚŠŲŲ (ÚŲŲ ØŗØąŲØą ØąŲ Ø¨ŲØ§ÚŠ Ų
ÛâÚŠŲŲ).
+
+Ø§Ú¯Ų Ø§Ø˛ ÛŲ ŲØąÛŲ
âŲØąÚŠ ŲØ§ŲŲ
âØ˛Ų
Ø§Ų Ø¯ÛÚ¯Ų Ų
ÛØ§Û ÚŠŲ Ø¨Ų ØąŲØ´ Ø¨Ø§ŲØ§ ÚŠØ§Øą ŲŲ
ÛâÚŠŲŲ Ų ØšØ§Ø¯ØĒ Ø¯Ø§ØąÛ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØą* ØŗØ§Ø¯Ų ŲŲØˇ Ų
ØØ§ØŗØ¨Ø§ØĒÛ ØąŲ Ø¨Ø§ `def` Ų
ØšŲ
ŲŲÛ Ø¨ØąØ§Û ÛŲ ØŗŲØ¯ ÚŠŲÚÛÚŠ ØšŲ
ŲÚŠØąØ¯ (ØØ¯Ųد 100 ŲØ§ŲŲØĢØ§ŲÛŲ) ØĒØšØąÛŲ ÚŠŲÛØ ØĒŲØŦŲ ÚŠŲ ÚŠŲ ØĒŲÛ **FastAPI** اØĢØąØ´ ڊاŲ
ŲØ§Ų Ø¨ØąØšÚŠØŗŲ. ØĒŲÛ Ø§ÛŲ Ų
ŲØ§ØąØ¯Ø Ø¨ŲØĒØąŲ Ø§Ø˛ `async def` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ Ų
Ú¯Ų Ø§ÛŲÚŠŲ *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØąØĒ* ÚŠØ¯Û Ø¯Ø§Ø´ØĒŲ Ø¨Ø§Ø´Ų ÚŠŲ ØšŲ
ŲÛØ§ØĒ I/O Ø¨ŲØ§ÚŠâÚŠŲŲØ¯Ų Ø§ŲØŦاŲ
بدŲ.
+
+با اÛŲ ØØ§ŲØ ØĒŲÛ ŲØą Ø¯Ų Ų
ŲŲØšÛØĒØ Ø§ØØĒŲ
Ø§ŲØ´ Ø˛ÛØ§Ø¯Ų ÚŠŲ **FastAPI** ŲŲŲØ˛ [ØŗØąÛØšâØĒØą](index.md#performance){.internal-link target=_blank} Ø§Ø˛ ŲØąÛŲ
âŲØąÚŠ ŲØ¨ŲÛâØ§ØĒ Ø¨Ø§Ø´Ų (ÛØ§ ØØ¯Ø§ŲŲ ŲØ§Ø¨Ų Ų
ŲØ§ÛØŗŲ Ø¨Ø§ŲØ§Ø´).
+
+### ŲØ§Ø¨ØŗØĒÚ¯ÛâŲØ§
+
+ŲŲ
ÛŲ Ø¨ØąØ§Û [ŲØ§Ø¨ØŗØĒÚ¯ÛâŲØ§](tutorial/dependencies/index.md){.internal-link target=_blank} ŲŲ
ØĩØ¯Ų Ų
ÛâÚŠŲŲ. Ø§Ú¯Ų ÛŲ ŲØ§Ø¨ØŗØĒÚ¯Û ÛŲ ØĒابؚ `def` Ų
ØšŲ
ŲŲÛ Ø¨Ų ØŦØ§Û `async def` Ø¨Ø§Ø´ŲØ ØĒŲÛ Ø§ØŗØĒØŽØą ŲØŽ ØŽØ§ØąØŦÛ Ø§ØŦØąØ§ Ų
ÛâØ´Ų.
+
+### Ø˛ÛØąŲØ§Ø¨ØŗØĒÚ¯ÛâŲØ§
+
+Ų
ÛâØĒŲŲÛ ÚŲØ¯ ØĒا ŲØ§Ø¨ØŗØĒÚ¯Û Ų [Ø˛ÛØąŲØ§Ø¨ØŗØĒÚ¯Û](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} داشØĒŲ Ø¨Ø§Ø´Û ÚŠŲ ŲŲ
دÛÚ¯Ų ØąŲ ŲÛØ§Ø˛ Ø¯Ø§ØąŲ (بŲâØšŲŲØ§Ų ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ØĒØšØąÛŲ ØĒابؚ)Ø Ø¨ØšØļÛâŲØ§Ø´ŲŲ Ų
Ų
ÚŠŲŲ Ø¨Ø§ `async def` ØŗØ§ØŽØĒŲ Ø¨Ø´Ų Ų Ø¨ØšØļÛâŲØ§ با `def` Ų
ØšŲ
ŲŲÛ. Ø¨Ø§Ø˛Ų
ÚŠØ§Øą Ų
ÛâÚŠŲŲØ Ų Ø§ŲŲØ§ÛÛ ÚŠŲ Ø¨Ø§ `def` Ų
ØšŲ
ŲŲÛ ØŗØ§ØŽØĒŲ Ø´Ø¯Ų ØĒŲÛ ÛŲ ŲØŽ ØŽØ§ØąØŦÛ (Ø§Ø˛ Ø§ØŗØĒØŽØą ŲØŽ) Øĩدا Ø˛Ø¯Ų Ų
ÛâØ´Ų Ø¨Ų ØŦØ§Û Ø§ÛŲÚŠŲ "Ų
ŲØĒØ¸ØąØ´ŲŲ" بŲ
ŲŲŲ.
+
+### ØĒŲØ§Ø¨Øš ÚŠØ§ØąØ¨ØąØ¯Û Ø¯ÛÚ¯Ų
+
+ŲØą ØĒØ§Ø¨Øš ÚŠØ§ØąØ¨ØąØ¯Û Ø¯ÛÚ¯ŲâØ§Û ÚŠŲ Ų
ØŗØĒŲÛŲ
ØŽŲØ¯ØĒ Øĩداش Ų
ÛâÚŠŲÛ Ų
ÛâØĒŲŲŲ Ø¨Ø§ `def` Ų
ØšŲ
ŲŲÛ ÛØ§ `async def` ØŗØ§ØŽØĒŲ Ø¨Ø´Ų Ų FastAPI ØąŲ ŲØŲŲ ØĩØ¯Ø§Ø˛Ø¯ŲØ´ ØĒØŖØĢÛØą ŲŲ
ÛâØ°Ø§ØąŲ.
+
+اÛŲ Ø¨ØąØŽŲØ§Ų ØĒŲØ§Ø¨ØšÛ ŲØŗØĒ ÚŠŲ FastAPI Ø¨ØąØ§ØĒ ØĩداشŲŲ Ų
ÛâÚŠŲŲ: *ØĒŲØ§Ø¨Øš ØšŲ
ŲÛØ§ØĒ Ų
ØŗÛØą* Ų ŲØ§Ø¨ØŗØĒÚ¯ÛâŲØ§.
+
+Ø§Ú¯Ų ØĒابؚ ÚŠØ§ØąØ¨ØąØ¯ÛØĒ ÛŲ ØĒابؚ Ų
ØšŲ
ŲŲÛ Ø¨Ø§ `def` Ø¨Ø§Ø´ŲØ Ų
ØŗØĒŲÛŲ
Øĩداش Ų
ÛâÚŠŲŲ (ŲŲ
ŲŲâØˇŲØą ÚŠŲ ØĒŲÛ ÚŠØ¯ØĒ ŲŲØ´ØĒÛ)Ø ŲŲ ØĒŲÛ Ø§ØŗØĒØŽØą ŲØŽØ Ø§Ú¯Ų ØĒابؚ با `async def` ØŗØ§ØŽØĒŲ Ø´Ø¯Ų Ø¨Ø§Ø´ŲØ Ø¨Ø§ÛØ¯ ŲŲØĒÛ ØĒŲÛ ÚŠØ¯ØĒ Øĩداش Ų
ÛâÚŠŲÛ `await`Ø´ ÚŠŲÛ.
+
+---
+
+Ø¯ŲØ¨Ø§ØąŲØ Ø§ÛŲØ§ ØŦØ˛ØĻÛØ§ØĒ ØŽÛŲÛ ŲŲÛ ŲØŗØĒŲ ÚŠŲ Ø§ØØĒŲ
Ø§ŲØ§Ų Ø§Ú¯Ų Ø¯ŲØ¨Ø§ŲØ´ŲŲ Ø§ŲŲ
Ø¯Ų Ø¨Ø§Ø´Û Ø¨ØąØ§ØĒ Ų
ŲÛØ¯ باشŲ.
+
+ŲÚ¯ØąŲŲØ با ØąØ§ŲŲŲ
اÛÛâŲØ§Û ب؎ش Ø¨Ø§ŲØ§ Ø¨Ø§ÛØ¯ ØŽŲØ¨ باشÛ: ØšØŦŲŲ Ø¯Ø§ØąÛØ.
diff --git a/docs/fa/docs/environment-variables.md b/docs/fa/docs/environment-variables.md
new file mode 100644
index 0000000000..75309ce1fe
--- /dev/null
+++ b/docs/fa/docs/environment-variables.md
@@ -0,0 +1,298 @@
+# Ų
ØĒØēÛØąŲØ§Û Ų
ØÛØˇÛ
+
+/// tip
+
+Ø§Ú¯Ų Ø§Ø˛ ŲØ¨Ų Ų
ÛâØ¯ŲŲÛ Ų
ØĒØēÛØąŲØ§Û Ų
ØÛØˇÛ ÚÛ ŲØŗØĒŲ Ų ÚØˇŲØą Ø§Ø˛Ø´ŲŲ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâØ´ŲØ Ų
ÛâØĒŲŲÛ Ø§ÛŲ Ø¨ØŽØ´ ØąŲ ØąØ¯ ÚŠŲÛ.
+
+///
+
+ÛŲ Ų
ØĒØēÛØą Ų
ØÛØˇÛ (ÚŠŲ Ø¨ŲØ´ "**env var**" ŲŲ
Ų
ÛâÚ¯Ų) ÛŲ Ų
ØĒØēÛØąÛŲ ÚŠŲ **ØŽØ§ØąØŦ** Ø§Ø˛ ڊد ŲžØ§ÛØĒŲŲØ ØĒŲÛ **ØŗÛØŗØĒŲ
âØšØ§Ų
Ų** Ø˛ŲØ¯Ú¯Û Ų
ÛâÚŠŲŲ Ų Ų
ÛâØĒŲŲŲ ØĒŲØŗØˇ ڊد ŲžØ§ÛØĒŲŲØĒ (ÛØ§ Ø¨ØąŲØ§Ų
ŲâŲØ§Û دÛÚ¯Ų) ØŽŲŲØ¯Ų بشŲ.
+
+Ų
ØĒØēÛØąŲØ§Û Ų
ØÛØˇÛ Ų
ÛâØĒŲŲŲ Ø¨ØąØ§Û Ų
Ø¯ÛØąÛØĒ **ØĒŲØ¸ÛŲ
اØĒ** Ø¨ØąŲØ§Ų
ŲØ بŲâØšŲŲØ§Ų Ø¨ØŽØ´Û Ø§Ø˛ **ŲØĩب** ŲžØ§ÛØĒŲŲ Ų ØēÛØąŲ Ų
ŲÛØ¯ باشŲ.
+
+## ØŗØ§ØŽØĒ Ų Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ Ų
ØĒØēÛØąŲØ§Û Ų
ØÛØˇÛ
+
+Ų
ÛâØĒŲŲÛ Ų
ØĒØēÛØąŲØ§Û Ų
ØÛØˇÛ ØąŲ ØĒŲÛ **Ø´Ų (ØĒØąŲ
ÛŲØ§Ų)** **Ø¨ØŗØ§Ø˛Û** Ų Ø§Ø˛Ø´ŲŲ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛØ بدŲŲ Ø§ÛŲÚŠŲ Ø¨Ų ŲžØ§ÛØĒŲŲ ŲÛØ§Ø˛ داشØĒŲ Ø¨Ø§Ø´Û:
+
+//// tab | ŲÛŲŲÚŠØŗØ Ų
ÚŠâØ§ŲØ§ØŗØ ŲÛŲØ¯ŲØ˛ بش
+
+
-
-
+
+
-
-
+
+
diff --git a/docs/fa/docs/learn/index.md b/docs/fa/docs/learn/index.md
new file mode 100644
index 0000000000..06aa7f00e7
--- /dev/null
+++ b/docs/fa/docs/learn/index.md
@@ -0,0 +1,5 @@
+# ÛØ§Ø¯Ú¯ÛØąÛ
+
+اÛŲØŦا ب؎شâŲØ§Û Ų
ŲØ¯Ų
اØĒÛ Ų ØĸŲ
ŲØ˛Ø´âŲØ§ÛÛ ŲØŗØĒŲ ÚŠŲ Ø¨ØąØ§Û ÛØ§Ø¯Ú¯ÛØąÛ **FastAPI** Ø¨ŲØĒ ÚŠŲ
ÚŠ Ų
ÛâÚŠŲŲ.
+
+Ų
ÛâØĒŲŲÛ Ø§ÛŲŲ ÛŲ **ÚŠØĒاب**Ø ÛŲ **Ø¯ŲØąŲ ØĸŲ
ŲØ˛Ø´Û**Ø ÛØ§ ØąØ§Ų **ØąØŗŲ
Û** Ų ŲžÛØ´ŲŲØ§Ø¯Û Ø¨ØąØ§Û ÛØ§Ø¯Ú¯ÛØąÛ FastAPI Ø¯Øą ŲØ¸Øą Ø¨Ú¯ÛØąÛ. đ
diff --git a/docs/fa/docs/python-types.md b/docs/fa/docs/python-types.md
new file mode 100644
index 0000000000..c428acbf74
--- /dev/null
+++ b/docs/fa/docs/python-types.md
@@ -0,0 +1,578 @@
+# Ų
ŲØ¯Ų
ŲâØ§Û Ø¨Øą اŲŲØ§Øš ŲŲØš Ø¯Øą ŲžØ§ÛØĒŲŲ
+
+ŲžØ§ÛØĒŲŲ Ø§Ø˛ "ŲŲØšâŲŲ
ا"ŲØ§Û ا؎ØĒÛØ§ØąÛ (ÚŠŲ Ø¨ŲØ´ŲŲ "type hints" ÛØ§ "type annotations" ŲŲ
Ų
ÛâÚ¯Ų) ŲžØ´ØĒÛØ¨Ø§ŲÛ Ų
ÛâÚŠŲŲ.
+
+اÛŲ **"ŲŲØšâŲŲ
Ø§ŲØ§"** ÛØ§ annotationŲØ§ ÛŲ ØŗÛŲØĒÚŠØŗ ؎اØĩ ŲØŗØĒŲ ÚŠŲ Ø¨ŲØĒ Ø§ØŦØ§Ø˛Ų Ų
ÛâØ¯Ų ŲŲØš ÛŲ Ų
ØĒØēÛØą ØąŲ Ų
Ø´ØŽØĩ ÚŠŲÛ.
+
+با Ų
Ø´ØŽØĩ ÚŠØąØ¯Ų ŲŲØš Ų
ØĒØēÛØąŲØ§Ø ŲÛØąØ§ÛØ´Ú¯ØąŲا Ų Ø§Ø¨Ø˛Ø§ØąŲØ§ Ų
ÛâØĒŲŲŲ ŲžØ´ØĒÛØ¨Ø§ŲÛ Ø¨ŲØĒØąÛ Ø¨ŲØĒ Ø¨Ø¯Ų.
+
+اÛŲ ŲŲØˇ ÛŲ **ØĸŲ
ŲØ˛Ø´ ØŗØąÛØš / ÛØ§Ø¯ØĸŲØąÛ** Ø¯Øą Ų
بਝ ŲŲØšâŲŲ
Ø§ŲØ§Û ŲžØ§ÛØĒŲŲŲ. ŲŲØˇ ØØ¯Ø§ŲŲ ÚÛØ˛Ø§ÛÛ ÚŠŲ Ø¨ØąØ§Û Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛Ø´ŲŲ Ø¨Ø§ **FastAPI** ŲØ§Ø˛Ų
Ų ØąŲ ŲžŲØ´Ø´ Ų
ÛâØ¯Ų... ÚŠŲ Ø¯Øą ŲØ§ŲØš ØŽÛŲÛ ÚŠŲ
Ų.
+
+**FastAPI** ڊاŲ
ŲØ§Ų Ø¨Øą ŲžØ§ÛŲ Ø§ÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ØŗØĒ Ų Ø§ÛŲ Ø¨ŲØ´ ÚŠŲÛ Ų
Ø˛ÛØĒ Ų ŲØ§ÛØ¯Ų Ų
ÛâØ¯Ų.
+
+ŲŲÛ ØØĒÛ Ø§Ú¯Ų ŲÛÚâŲŲØĒ Ø§Ø˛ **FastAPI** Ø§ØŗØĒŲØ§Ø¯Ų ŲÚŠŲÛØ Ø¨Ø§Ø˛Ų
ÛØ§Ø¯Ú¯ÛØąÛ ÛŲ ÚŠŲ
Ø¯Øą Ų
ŲØąØ¯Ø´ŲŲ Ø¨Ų ŲŲØšØĒŲ.
+
+/// note
+
+Ø§Ú¯Ų ØØąŲŲâØ§Û ŲžØ§ÛØĒŲŲÛ Ų ŲŲ
ŲâÚÛØ˛ ØąŲ Ø¯Øą Ų
بਝ ŲŲØšâŲŲ
Ø§ŲØ§ Ų
ÛâØ¯ŲŲÛØ Ø¨ØąŲ ØŗØąØ§Øē ŲØĩŲ Ø¨ØšØ¯Û.
+
+///
+
+## اŲÚ¯ÛØ˛Ų
+
+Ø¨ÛØ§Ûد با ÛŲ Ų
ØĢØ§Ų ØŗØ§Ø¯Ų Ø´ØąŲØš ÚŠŲÛŲ
:
+
+{* ../../docs_src/python_types/tutorial001.py *}
+
+ŲŲØĒÛ Ø§ÛŲ Ø¨ØąŲØ§Ų
Ų ØąŲ Ø§ØŦØąØ§ ÚŠŲÛØ ØŽØąŲØŦÛ Ø§ÛŲŲ:
+
+```
+John Doe
+```
+
+اÛŲ ØĒابؚ اÛŲ ÚŠØ§ØąØ§ ØąŲ Ų
ÛâÚŠŲŲ:
+
+* ÛŲ `first_name` Ų `last_name` Ų
ÛâÚ¯ÛØąŲ.
+* ØØąŲ اŲŲ ŲØą ڊدŲŲ
ØąŲ Ø¨Ø§ `title()` Ø¨Ø˛ØąÚ¯ Ų
ÛâÚŠŲŲ.
+* ØĒØąÚŠÛØ¨Ø´ŲŲ Ų
ÛâÚŠŲŲ Ø¨Ø§ ÛŲ ŲØ§ØĩŲŲ ŲØŗØˇØ´ŲŲ.
+
+{* ../../docs_src/python_types/tutorial001.py hl[2] *}
+
+### ŲÛØąØ§ÛØ´Ø´ ÚŠŲ
+
+اÛŲ ÛŲ Ø¨ØąŲØ§Ų
Ų ØŽÛŲÛ ØŗØ§Ø¯ŲâØŗØĒ.
+
+ŲŲÛ ØØ§Ųا ØĒØĩŲØą ÚŠŲ Ø¯Ø§ØąÛ Ø§Ø˛ ØĩŲØą Ų
ÛâŲŲÛØŗÛØ´.
+
+ÛŲ ØŦاÛÛ Ø´ØąŲØš ÚŠØąØ¯Û Ø¨Ų ØĒØšØąÛŲ ØĒØ§Ø¨ØšØ ŲžØ§ØąØ§Ų
ØĒØąŲØ§ØĒ ØĸŲ
ادŲâØŗØĒ...
+
+ŲŲÛ Ø¨ØšØ¯ Ø¨Ø§ÛØ¯ "اŲŲ Ų
ØĒØ¯Û ÚŠŲ ØØąŲ اŲŲ ØąŲ Ø¨Ø˛ØąÚ¯ Ų
ÛâÚŠŲŲ" ØąŲ Øĩدا ÚŠŲÛ.
+
+ØĸÛØ§ Ø§ØŗŲ
Ø´ `upper` Ø¨ŲØ¯Ø ÛØ§ `uppercase`Ø Ø´Ø§ÛØ¯ `first_uppercase`Ø ÛØ§ `capitalize`Ø
+
+Ø¨ØšØ¯Ø Ø¨Ø§ Ø¯ŲØŗØĒ ŲØ¯ÛŲ
Û Ø¨ØąŲØ§Ų
ŲâŲŲÛØŗØ§Ø ØĒÚŠŲ
ÛŲ ØŽŲØ¯ÚŠØ§Øą ŲÛØąØ§ÛØ´Ú¯ØąØ اŲ
ØĒØØ§Ų Ų
ÛâÚŠŲÛ.
+
+ŲžØ§ØąØ§Ų
ØĒØą اŲŲ ØĒØ§Ø¨ØšØ `first_name` ØąŲ ØĒاÛŲž Ų
ÛâÚŠŲÛØ بؚد ÛŲ ŲŲØˇŲ (`.`) Ų
ÛâØ°Ø§ØąÛ Ų `Ctrl+Space` ØąŲ Ų
ÛâØ˛ŲÛ ØĒا ØĒÚŠŲ
ÛŲ ØŽŲØ¯ÚŠØ§Øą Ø¨ÛØ§Ø¯.
+
+ŲŲÛ Ų
ØĒØŖØŗŲØ§ŲŲØ ÚÛØ˛ Ų
ŲÛØ¯Û ŲŲ
ÛâÚ¯ÛØąÛ:
+
+
+
+### Ųب𠨧ØļاŲŲ ÚŠŲ
+
+Ø¨ÛØ§ ŲŲØˇ ÛŲ ØŽØˇ Ø§Ø˛ ŲØŗØŽŲ ŲØ¨ŲÛ ØąŲ ØĒØēÛÛØą Ø¨Ø¯ÛŲ
.
+
+دŲÛŲØ§Ų اÛŲ Ø¨ØŽØ´Ø ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ØĒابؚ ØąŲØ Ø§Ø˛:
+
+```Python
+ first_name, last_name
+```
+
+بŲ:
+
+```Python
+ first_name: str, last_name: str
+```
+
+ØšŲØļ Ų
ÛâÚŠŲÛŲ
.
+
+ŲŲ
ÛŲŲ.
+
+اÛŲØ§ ŲŲ
ŲŲ "ŲŲØšâŲŲ
Ø§ŲØ§" ŲØŗØĒŲ:
+
+{* ../../docs_src/python_types/tutorial002.py hl[1] *}
+
+اÛŲ Ø¨Ø§ ØĒØšØąÛŲ Ų
ŲØ¯Ø§Øą ŲžÛØ´âŲØąØļ ŲØąŲ Ø¯Ø§ØąŲØ Ų
ØĢŲ:
+
+```Python
+ first_name="john", last_name="doe"
+```
+
+ÛŲ ÚÛØ˛ Ų
ØĒŲØ§ŲØĒŲ.
+
+Ų
ا Ø§Ø˛ دŲŲŲØˇŲ (`:`) Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛŲ
Ø ŲŲ ØšŲØ§Ų
ØĒ Ų
ØŗØ§ŲÛ (`=`)â.
+
+Ų Ø§ØļاŲŲ ÚŠØąØ¯Ų ŲŲØšâŲŲ
Ø§ŲØ§ Ų
ØšŲ
ŲŲØ§Ų ÚÛØ˛Û ÚŠŲ Ø§ØĒŲØ§Ų Ų
ÛâØ§ŲØĒŲ ØąŲ Ø§Ø˛ ÚÛØ˛Û ÚŠŲ Ø¨Ø¯ŲŲ Ø§ŲŲØ§ Ų
ÛâØ§ŲØĒØ§Ø¯ ØĒØēÛÛØą ŲŲ
ÛâØ¯Ų.
+
+ŲŲÛ ØØ§ŲØ§Ø Ø¯ŲØ¨Ø§ØąŲ ØĒØĩŲØą ÚŠŲ ŲØŗØˇ ØŗØ§ØŽØĒŲ Ø§ŲŲ ØĒابؚ ŲØŗØĒÛØ ŲŲÛ Ø§ÛŲ Ø¨Ø§Øą با ŲŲØšâŲŲ
Ø§ŲØ§.
+
+ØĒŲÛ ŲŲ
ŲŲ ŲŲØˇŲØ ØŗØšÛ Ų
ÛâÚŠŲÛ ØĒÚŠŲ
ÛŲ ØŽŲØ¯ÚŠØ§Øą ØąŲ Ø¨Ø§ `Ctrl+Space` ŲØšØ§Ų ÚŠŲÛ Ų Ø§ÛŲŲ Ų
ÛâØ¨ÛŲÛ:
+
+
+
+با اÛŲØ Ų
ÛâØĒŲŲÛ Ø§ØŗÚŠØąŲŲ ÚŠŲÛØ Ú¯Ø˛ÛŲŲâŲØ§ ØąŲ Ø¨Ø¨ÛŲÛØ ØĒا ŲŲØĒÛ ÚŠŲ Ø§ŲŲ ÚÛØ˛Û ÚŠŲ "Ø¨Ų ŲØ¸ØąØĒ ØĸØ´ŲØ§ Ų
ÛØ§Ø¯" ØąŲ ŲžÛØ¯Ø§ ÚŠŲÛ:
+
+
+
+## اŲÚ¯ÛØ˛Ų Ø¨ÛØ´ØĒØą
+
+اÛŲ ØĒابؚ ØąŲ ÚÚŠ ÚŠŲØ Ø§ŲØ§Ų ŲŲØšâŲŲ
ا Ø¯Ø§ØąŲ:
+
+{* ../../docs_src/python_types/tutorial003.py hl[1] *}
+
+ÚŲŲ ŲÛØąØ§ÛØ´Ú¯Øą ŲŲØš Ų
ØĒØēÛØąŲا ØąŲ Ų
ÛâØ¯ŲŲŲØ ŲŲØˇ ØĒÚŠŲ
ÛŲ ØŽŲØ¯ÚŠØ§Øą ŲŲ
ÛâÚ¯ÛØąÛØ Ø¨ŲÚŠŲ ÚÚŠ ØŽØˇØ§ŲØ§ ŲŲ
Ø¯Ø§ØąÛ:
+
+
+
+ØØ§Ųا Ų
ÛâØ¯ŲŲÛ ÚŠŲ Ø¨Ø§ÛØ¯ Ø¯ØąØŗØĒØ´ ÚŠŲÛØ `age` ØąŲ Ø¨Ø§ `str(age)` Ø¨Ų ÛŲ ØąØ´ØĒŲ ØĒبدÛŲ ÚŠŲÛ:
+
+{* ../../docs_src/python_types/tutorial004.py hl[2] *}
+
+## ØĒØšØąÛŲ ŲŲØšâŲØ§
+
+ØĒØ§Ø˛Ų Ø§ØĩŲÛâØĒØąÛŲ ØŦا Ø¨ØąØ§Û ØĒØšØąÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ ØąŲ Ø¯ÛØ¯Û. بŲâØšŲŲØ§Ų ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ØĒابؚ.
+
+اÛŲ ŲŲ
اØĩŲÛâØĒØąÛŲ ØŦاÛÛŲ ÚŠŲ Ø¨Ø§ **FastAPI** Ø§Ø˛Ø´ŲŲ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ.
+
+### ŲŲØšâŲØ§Û ØŗØ§Ø¯Ų
+
+Ų
ÛâØĒŲŲÛ ŲŲ
Ų ŲŲØšâŲØ§Û Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯ ŲžØ§ÛØĒŲŲ ØąŲ ØĒØšØąÛŲ ÚŠŲÛØ ŲŲ ŲŲØˇ `str`.
+
+Ų
ØĢŲØ§Ų Ų
ÛâØĒŲŲÛ Ø§Ø˛ اÛŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ:
+
+* `int`
+* `float`
+* `bool`
+* `bytes`
+
+{* ../../docs_src/python_types/tutorial005.py hl[1] *}
+
+### ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û Ø¨Ø§ ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ŲŲØš
+
+ÛŲ ØŗØąÛ ØŗØ§ØŽØĒØ§Øą Ø¯Ø§Ø¯Ų ŲØŗØĒŲ ÚŠŲ Ų
ÛâØĒŲŲŲ Ų
ŲØ¯Ø§ØąŲØ§Û Ø¯ÛÚ¯Ų ØąŲ ŲÚ¯Ų Ø¯Ø§ØąŲØ Ų
ØĢŲ `dict`Ø `list`Ø `set` Ų `tuple`. Ų Ų
ŲØ¯Ø§ØąŲØ§Û Ø¯Ø§ØŽŲÛØ´ŲŲ ŲŲ
Ų
ÛâØĒŲŲŲ ŲŲØš ØŽŲØ¯Ø´ŲŲ ØąŲ Ø¯Ø§Ø´ØĒŲ Ø¨Ø§Ø´Ų.
+
+Ø¨Ų Ø§ÛŲ ŲŲØšâŲØ§ ÚŠŲ ŲŲØšâŲØ§Û دا؎ŲÛ Ø¯Ø§ØąŲ Ų
ÛâÚ¯Ų "**ØšŲ
ŲŲ
Û**" ÛØ§ "generic". Ų Ų
ÛâØ´Ų Ø§ŲŲØ§ ØąŲ ØĒØšØąÛŲ ÚŠØąØ¯Ø ØØĒÛ Ø¨Ø§ ŲŲØšâŲØ§Û دا؎ŲÛØ´ŲŲ.
+
+Ø¨ØąØ§Û ØĒØšØąÛŲ Ø§ÛŲ ŲŲØšâŲØ§ Ų ŲŲØšâŲØ§Û دا؎ŲÛØ´ŲŲØ Ų
ÛâØĒŲŲÛ Ø§Ø˛ Ų
اÚŲŲ Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯ ŲžØ§ÛØĒŲŲ `typing` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ. اÛŲ Ų
اÚŲŲ Ų
ØŽØĩŲØĩ ŲžØ´ØĒÛØ¨Ø§ŲÛ Ø§Ø˛ ŲŲØšâŲŲ
Ø§ŲØ§ØŗØĒ.
+
+#### ŲØŗØŽŲâŲØ§Û ØŦØ¯ÛØ¯ØĒØą ŲžØ§ÛØĒŲŲ
+
+ØŗÛŲØĒÚŠØŗ با Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `typing` با ŲŲ
Ų ŲØŗØŽŲâŲØ§Ø Ø§Ø˛ ŲžØ§ÛØĒŲŲ 3.6 ØĒا ØŦØ¯ÛØ¯ØĒØąÛŲâŲØ§Ø Ø§Ø˛ ØŦŲ
ŲŲ ŲžØ§ÛØĒŲŲ 3.9Ø 3.10 Ų ØēÛØąŲ **ØŗØ§Ø˛Ú¯Ø§ØąŲ**.
+
+با ŲžÛØ´ØąŲØĒ ŲžØ§ÛØĒŲŲØ **ŲØŗØŽŲâŲØ§Û ØŦØ¯ÛØ¯ØĒØą** ŲžØ´ØĒÛØ¨Ø§ŲÛ Ø¨ŲØĒØąÛ Ø¨ØąØ§Û Ø§ÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ Ø¯Ø§ØąŲ Ų ØĒŲÛ ØŽÛŲÛ Ų
ŲØ§ØąØ¯ ØØĒÛ ŲØ§Ø˛Ų
ŲÛØŗØĒ Ų
اÚŲŲ `typing` ØąŲ ŲØ§ØąØ¯ ÚŠŲÛ Ų Ø§Ø˛Ø´ Ø¨ØąØ§Û ØĒØšØąÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ.
+
+Ø§Ú¯Ų Ø¨ØĒŲŲÛ Ø¨ØąØ§Û ŲžØąŲÚŲâØ§ØĒ Ø§Ø˛ ÛŲ ŲØŗØŽŲ ØŦØ¯ÛØ¯ØĒØą ŲžØ§ÛØĒŲŲ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛØ Ų
ÛâØĒŲŲÛ Ø§Ø˛ اÛŲ ØŗØ§Ø¯Ú¯Û Ø§ØļاŲŲ Ø¨ŲØąŲ Ø¨Ø¨ØąÛ.
+
+ØĒŲÛ ŲŲ
Ų Ų
ØŗØĒŲØ¯Ø§ØĒØ Ų
ØĢاŲâŲØ§ÛÛ ŲØŗØĒŲ ÚŠŲ Ø¨Ø§ ŲØą ŲØŗØŽŲ ŲžØ§ÛØĒŲŲ ØŗØ§Ø˛Ú¯Ø§ØąŲ (ŲŲØĒÛ ØĒŲØ§ŲØĒÛ ŲØŗØĒ).
+
+Ų
ØĢŲØ§Ų "**Python 3.6+**" ÛØšŲÛ Ø¨Ø§ ŲžØ§ÛØĒŲŲ 3.6 ÛØ§ Ø¨Ø§ŲØ§ØĒØą (Ų
ØĢŲ 3.7Ø 3.8Ø 3.9Ø 3.10 Ų ØēÛØąŲ) ØŗØ§Ø˛Ú¯Ø§ØąŲ. Ų "**Python 3.9+**" ÛØšŲÛ Ø¨Ø§ ŲžØ§ÛØĒŲŲ 3.9 ÛØ§ Ø¨Ø§ŲØ§ØĒØą (Ų
ØĢŲ 3.10 Ų ØēÛØąŲ) ØŗØ§Ø˛Ú¯Ø§ØąŲ.
+
+Ø§Ú¯Ų Ø¨ØĒŲŲÛ Ø§Ø˛ **ØŦØ¯ÛØ¯ØĒØąÛŲ ŲØŗØŽŲâŲØ§Û ŲžØ§ÛØĒŲŲ** Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛØ Ø§Ø˛ Ų
ØĢاŲâŲØ§Û ŲØŗØŽŲ ØĸØŽØą Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲØ ÚŲŲ Ø§ŲŲØ§ **Ø¨ŲØĒØąÛŲ Ų ØŗØ§Ø¯ŲâØĒØąÛŲ ØŗÛŲØĒÚŠØŗ** ØąŲ Ø¯Ø§ØąŲØ Ų
ØĢŲØ§Ų "**Python 3.10+**".
+
+#### ŲÛØŗØĒ
+
+Ų
ØĢŲØ§ŲØ Ø¨ÛØ§ÛŲ
ÛŲ Ų
ØĒØēÛØą ØĒØšØąÛŲ ÚŠŲÛŲ
ÚŠŲ ÛŲ `list` Ø§Ø˛ `str` باشŲ.
+
+//// tab | Python 3.9+
+
+Ų
ØĒØēÛØą ØąŲ با ŲŲ
ŲŲ ØŗÛŲØĒÚŠØŗ دŲŲŲØˇŲ (`:`) ØĒØšØąÛŲ ÚŠŲ.
+
+بŲâØšŲŲØ§Ų ŲŲØšØ `list` ØąŲ Ø¨Ø°Ø§Øą.
+
+ÚŲŲ ŲÛØŗØĒ ÛŲ ŲŲØšŲ ÚŠŲ ŲŲØšâŲØ§Û دا؎ŲÛ Ø¯Ø§ØąŲØ اŲŲØ§ ØąŲ ØĒŲÛ ÚŠØąŲØ´ŲâŲØ§ Ų
ÛâØ°Ø§ØąÛ:
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial006_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+Ø§Ø˛ `typing`Ø `List` ØąŲ (با `L` Ø¨Ø˛ØąÚ¯) ŲØ§ØąØ¯ ÚŠŲ:
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial006.py!}
+```
+
+Ų
ØĒØēÛØą ØąŲ با ŲŲ
ŲŲ ØŗÛŲØĒÚŠØŗ دŲŲŲØˇŲ (`:`) ØĒØšØąÛŲ ÚŠŲ.
+
+بŲâØšŲŲØ§Ų ŲŲØšØ `List` ØąŲ ÚŠŲ Ø§Ø˛ `typing` ŲØ§ØąØ¯ ÚŠØąØ¯Û Ø¨Ø°Ø§Øą.
+
+ÚŲŲ ŲÛØŗØĒ ÛŲ ŲŲØšŲ ÚŠŲ ŲŲØšâŲØ§Û دا؎ŲÛ Ø¯Ø§ØąŲØ اŲŲØ§ ØąŲ ØĒŲÛ ÚŠØąŲØ´ŲâŲØ§ Ų
ÛâØ°Ø§ØąÛ:
+
+```Python hl_lines="4"
+{!> ../../docs_src/python_types/tutorial006.py!}
+```
+
+////
+
+/// info
+
+اŲŲ ŲŲØšâŲØ§Û دا؎ŲÛ ØĒŲÛ ÚŠØąŲØ´ŲâŲØ§ Ø¨ŲØ´ŲŲ "ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ŲŲØš" Ų
ÛâÚ¯Ų.
+
+ØĒŲÛ Ø§ÛŲ Ų
ŲØąØ¯Ø `str` ŲžØ§ØąØ§Ų
ØĒØą ŲŲØšÛŲ ÚŠŲ Ø¨Ų `List` (ÛØ§ `list` ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.9 Ų Ø¨Ø§ŲØ§ØĒØą) ŲžØ§Øŗ Ø¯Ø§Ø¯Ų Ø´Ø¯Ų.
+
+///
+
+ÛØšŲÛ: "Ų
ØĒØēÛØą `items` ÛŲ `list` ŲØŗØĒØ Ų ŲØą ڊدŲŲ
Ø§Ø˛ ØĸÛØĒŲ
âŲØ§Û اÛŲ ŲÛØŗØĒ ÛŲ `str` ŲØŗØĒŲ".
+
+/// tip
+
+Ø§Ú¯Ų Ø§Ø˛ ŲžØ§ÛØĒŲŲ 3.9 ÛØ§ Ø¨Ø§ŲØ§ØĒØą Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛØ ŲØ§Ø˛Ų
ŲÛØŗØĒ `List` ØąŲ Ø§Ø˛ `typing` ŲØ§ØąØ¯ ÚŠŲÛØ Ų
ÛâØĒŲŲÛ ŲŲ
ŲŲ ŲŲØš Ų
ØšŲ
ŲŲÛ `list` ØąŲ Ø¨Ų ØŦاش Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ.
+
+///
+
+با اÛŲ ÚŠØ§ØąØ ŲÛØąØ§ÛØ´Ú¯ØąØĒ ØØĒÛ ŲŲØĒÛ Ø¯Ø§ØąÛ ØĸÛØĒŲ
âŲØ§Û ŲÛØŗØĒ ØąŲ ŲžØąØ¯Ø§Ø˛Ø´ Ų
ÛâÚŠŲÛ Ø¨ŲØĒ ÚŠŲ
ÚŠ Ų
ÛâÚŠŲŲ:
+
+
+
+بدŲŲ ŲŲØšâŲØ§Ø ØąØŗÛØ¯Ų Ø¨Ų Ø§ÛŲ ØĒŲØąÛØ¨Ø§Ų ØēÛØąŲ
Ų
ÚŠŲŲ.
+
+ØĒŲØŦŲ ÚŠŲ ÚŠŲ Ų
ØĒØēÛØą `item` ÛÚŠÛ Ø§Ø˛ ØšŲØ§ØĩØą ØĒŲÛ ŲÛØŗØĒ `items` ŲØŗØĒ.
+
+Ų Ø¨Ø§ اÛŲ ØØ§ŲØ ŲÛØąØ§ÛØ´Ú¯Øą Ų
ÛâØ¯ŲŲŲ ÚŠŲ ÛŲ `str` ŲØŗØĒ Ų Ø¨ØąØ§Ø´ ŲžØ´ØĒÛØ¨Ø§ŲÛ Ų
ÛâØ¯Ų.
+
+#### ØĒØ§ŲžŲ Ų ØŗØĒ
+
+Ø¨ØąØ§Û ØĒØšØąÛŲ `tuple`ŲØ§ Ų `set`ŲØ§ ŲŲ
ŲŲ
ÛŲ ÚŠØ§Øą ØąŲ Ų
ÛâÚŠŲÛ:
+
+//// tab | Python 3.9+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial007_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial007.py!}
+```
+
+////
+
+ÛØšŲÛ:
+
+* Ų
ØĒØēÛØą `items_t` ÛŲ `tuple` با 3 ØĒا ØĸÛØĒŲ
ŲØ ÛŲ `int`Ø ÛŲ `int` دÛÚ¯ŲØ Ų ÛŲ `str`.
+* Ų
ØĒØēÛØą `items_s` ÛŲ `set` ŲØŗØĒØ Ų ŲØą ڊدŲŲ
Ø§Ø˛ ØĸÛØĒŲ
âŲØ§Ø´ Ø§Ø˛ ŲŲØš `bytes` ŲØŗØĒŲ.
+
+#### دÛÚŠØ´ŲØąÛ
+
+Ø¨ØąØ§Û ØĒØšØąÛŲ ÛŲ `dict`Ø 2 ØĒا ŲžØ§ØąØ§Ų
ØĒØą ŲŲØš Ų
ÛâØ¯ÛØ ÚŠŲ Ø¨Ø§ ڊاŲ
ا Ø§Ø˛ ŲŲ
ØŦدا شدŲ.
+
+ŲžØ§ØąØ§Ų
ØĒØą Ųب𠨧ŲŲ Ø¨ØąØ§Û ÚŠŲÛØ¯ŲØ§Û `dict` ŲØŗØĒ.
+
+ŲžØ§ØąØ§Ų
ØĒØą Ųب𠨝ŲŲ
Ø¨ØąØ§Û Ų
ŲØ¯Ø§ØąŲØ§Û `dict` ŲØŗØĒ:
+
+//// tab | Python 3.9+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial008_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial008.py!}
+```
+
+////
+
+ÛØšŲÛ:
+
+* Ų
ØĒØēÛØą `prices` ÛŲ `dict` ŲØŗØĒ:
+ * ÚŠŲÛØ¯ŲØ§Û Ø§ÛŲ `dict` Ø§Ø˛ ŲŲØš `str` ŲØŗØĒŲ (Ų
ØĢŲØ§Ų Ø§ØŗŲ
ŲØą ØĸÛØĒŲ
).
+ * Ų
ŲØ¯Ø§ØąŲØ§Û Ø§ÛŲ `dict` Ø§Ø˛ ŲŲØš `float` ŲØŗØĒŲ (Ų
ØĢŲØ§Ų ŲÛŲ
ØĒ ŲØą ØĸÛØĒŲ
).
+
+#### اØĒØØ§Ø¯ÛŲ
+
+Ų
ÛâØĒŲŲÛ ØĒØšØąÛŲ ÚŠŲÛ ÚŠŲ ÛŲ Ų
ØĒØēÛØą Ų
ÛâØĒŲŲŲ ŲØą ڊدŲŲ
Ø§Ø˛ **ÚŲØ¯ ØĒا ŲŲØš** Ø¨Ø§Ø´ŲØ Ų
ØĢŲØ§Ų ÛŲ `int` ÛØ§ ÛŲ `str`.
+
+ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.6 Ų Ø¨Ø§ŲØ§ØĒØą (Ø§Ø˛ ØŦŲ
ŲŲ ŲžØ§ÛØĒŲŲ 3.10) Ų
ÛâØĒŲŲÛ Ø§Ø˛ ŲŲØš `Union` ØĒŲÛ `typing` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ Ų ŲŲØšâŲØ§Û Ų
Ų
ÚŠŲ ØąŲ ØĒŲÛ ÚŠØąŲØ´ŲâŲØ§ Ø¨Ø°Ø§ØąÛ.
+
+ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.10 ÛŲ **ØŗÛŲØĒÚŠØŗ ØŦØ¯ÛØ¯** ŲŲ
ŲØŗØĒ ÚŠŲ Ų
ÛâØĒŲŲÛ ŲŲØšâŲØ§Û Ų
Ų
ÚŠŲ ØąŲ Ø¨Ø§ ÛŲ ØŽØˇ ØšŲ
ŲØ¯Û (`|`) ØŦدا ÚŠŲÛ.
+
+//// tab | Python 3.10+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial008b_py310.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial008b.py!}
+```
+
+////
+
+ØĒŲÛ ŲØą Ø¯Ų ØØ§ŲØĒ ÛØšŲÛ `item` Ų
ÛâØĒŲŲŲ ÛŲ `int` ÛØ§ ÛŲ `str` باشŲ.
+
+#### Ø´Ø§ÛØ¯ `None`
+
+Ų
ÛâØĒŲŲÛ ØĒØšØąÛŲ ÚŠŲÛ ÚŠŲ ÛŲ Ų
ŲØ¯Ø§Øą Ų
ÛâØĒŲŲŲ ÛŲ ŲŲØš Ø¨Ø§Ø´ŲØ Ų
ØĢŲØ§Ų `str`Ø ŲŲÛ Ų
ÛâØĒŲŲŲ `None` ŲŲ
باشŲ.
+
+ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.6 Ų Ø¨Ø§ŲØ§ØĒØą (Ø§Ø˛ ØŦŲ
ŲŲ ŲžØ§ÛØĒŲŲ 3.10) Ų
ÛâØĒŲŲÛ Ø¨Ø§ ŲØ§ØąØ¯ ÚŠØąØ¯Ų Ų Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `Optional` Ø§Ø˛ Ų
اÚŲŲ `typing` اÛŲŲ ØĒØšØąÛŲ ÚŠŲÛ.
+
+```Python hl_lines="1 4"
+{!../../docs_src/python_types/tutorial009.py!}
+```
+
+Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `Optional[str]` Ø¨Ų ØŦØ§Û ŲŲØˇ `str` Ø¨Ų ŲÛØąØ§ÛØ´Ú¯Øą ÚŠŲ
ÚŠ Ų
ÛâÚŠŲŲ ØŽØˇØ§ŲØ§ÛÛ ÚŠŲ Ų
Ų
ÚŠŲŲ ŲÚŠØą ÚŠŲÛ ÛŲ Ų
ŲØ¯Ø§Øą ŲŲ
ÛØ´Ų `str` ŲØŗØĒ ØąŲ ŲžÛØ¯Ø§ ÚŠŲŲØ Ø¯Øą ØØ§ŲÛ ÚŠŲ Ų
ÛâØĒŲŲŲ `None` ŲŲ
باشŲ.
+
+`Optional[Something]` Ø¯Øą ŲØ§ŲØš Ų
ÛØ§ŲâØ¨Øą Ø¨ØąØ§Û `Union[Something, None]` ŲØŗØĒØ Ø§ÛŲ Ø¯Ų ØĒا Ų
ؚادŲŲ.
+
+ÛØšŲÛ ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.10Ø Ų
ÛâØĒŲŲÛ Ø§Ø˛ `Something | None` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ:
+
+//// tab | Python 3.10+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial009_py310.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial009.py!}
+```
+
+////
+
+//// tab | Python 3.8+ ØŦاÛÚ¯Ø˛ÛŲ
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial009b.py!}
+```
+
+////
+
+#### Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `Union` ÛØ§ `Optional`
+
+Ø§Ú¯Ų Ø§Ø˛ ŲØŗØŽŲ ŲžØ§ÛØĒŲŲ Ø˛ÛØą 3.10 Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛØ ÛŲ ŲÚŠØĒŲ Ø§Ø˛ Ø¯ÛØ¯ ØŽÛŲÛ **Ø´ØŽØĩÛ** ØŽŲØ¯Ų
:
+
+* đ¨ Ø§Ø˛ `Optional[SomeType]` Ø§ØŗØĒŲØ§Ø¯Ų ŲÚŠŲ
+* Ø¨Ų ØŦاش ⨠**Ø§Ø˛ `Union[SomeType, None]` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲ** â¨.
+
+ŲØą Ø¯Ų Ų
ؚادŲŲ Ų Ø˛ÛØą ŲžŲØŗØĒŲ ÛÚŠÛâØ§ŲØ ŲŲÛ Ų
Ų `Union` ØąŲ Ø¨Ų `Optional` ØĒØąØŦÛØ Ų
ÛâØ¯Ų
ÚŲŲ ÚŠŲŲ
Ų "**ا؎ØĒÛØ§ØąÛ**" اŲÚ¯Ø§Øąæį¤ē Ų
ÛâÚŠŲŲ ÚŠŲ Ų
ŲØ¯Ø§Øą ا؎ØĒÛØ§ØąÛŲØ Ø¯Øą ØØ§ŲÛ ÚŠŲ Ø¯Øą ŲØ§ŲØš ÛØšŲÛ "Ų
ÛâØĒŲŲŲ `None` باشŲ"Ø ØØĒÛ Ø§Ú¯Ų Ø§ØŽØĒÛØ§ØąÛ ŲØ¨Ø§Ø´Ų Ų ŲŲŲØ˛ ŲØ§Ø˛Ų
باشŲ.
+
+ŲÚŠØą Ų
ÛâÚŠŲŲ
`Union[SomeType, None]` ŲØ§ØļØâØĒØą ŲØ´ŲŲ Ų
ÛâØ¯Ų ÚÛ Ų
ØšŲÛ Ų
ÛâØ¯Ų.
+
+ŲŲØˇ Ø¨ØØĢ ÚŠŲŲ
اØĒ Ų Ø§ØŗŲ
âŲØ§ØŗØĒ. ŲŲÛ Ø§ÛŲ ÚŠŲŲ
اØĒ Ų
ÛâØĒŲŲŲ ØąŲ ØˇØąØ˛ ŲÚŠØą ØĒŲ Ų ØĒÛŲ
ØĒ ŲØŗØ¨ØĒ Ø¨Ų ÚŠØ¯ ØĒØŖØĢÛØą Ø¨Ø°Ø§ØąŲ.
+
+بŲâØšŲŲØ§Ų Ų
ØĢØ§ŲØ اÛŲ ØĒابؚ ØąŲ Ø¨Ø¨ÛŲ:
+
+{* ../../docs_src/python_types/tutorial009c.py hl[1,4] *}
+
+ŲžØ§ØąØ§Ų
ØĒØą `name` بŲâØšŲŲØ§Ų `Optional[str]` ØĒØšØąÛŲ Ø´Ø¯ŲØ ŲŲÛ **ا؎ØĒÛØ§ØąÛ ŲÛØŗØĒ**Ø ŲŲ
ÛâØĒŲŲÛ ØĒابؚ ØąŲ Ø¨Ø¯ŲŲ ŲžØ§ØąØ§Ų
ØĒØą Øĩدا ÚŠŲÛ:
+
+```Python
+say_hi() # اŲŲ ŲŲØ اÛŲ ØŽØˇØ§ Ų
ÛâØ¯Ų! đą
+```
+
+ŲžØ§ØąØ§Ų
ØĒØą `name` **ŲŲŲØ˛ ŲØ§Ø˛Ų
Ų** (ŲŲ *ا؎ØĒÛØ§ØąÛ*) ÚŲŲ Ų
ŲØ¯Ø§Øą ŲžÛØ´âŲØąØļ ŲØ¯Ø§ØąŲ. با اÛŲ ØØ§ŲØ `name` Ų
ŲØ¯Ø§Øą `None` ØąŲ ŲØ¨ŲŲ Ų
ÛâÚŠŲŲ:
+
+```Python
+say_hi(name=None) # اÛŲ ÚŠØ§Øą Ų
ÛâÚŠŲŲØ None Ų
ØšØĒØ¨ØąŲ đ
+```
+
+ØŽØ¨Øą ØŽŲØ¨ اÛŲŲ ÚŠŲ ŲŲØĒÛ ØąŲ ŲžØ§ÛØĒŲŲ 3.10 Ø¨Ø§Ø´ÛØ ŲØ§Ø˛Ų
ŲÛØŗØĒ ŲÚ¯ØąØ§Ų Ø§ÛŲ Ø¨Ø§Ø´ÛØ ÚŲŲ Ų
ÛâØĒŲŲÛ Ø¨ŲâØŗØ§Ø¯Ú¯Û Ø§Ø˛ `|` Ø¨ØąØ§Û ØĒØšØąÛŲ Ø§ØĒØØ§Ø¯ÛŲ ŲŲØšâŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ:
+
+{* ../../docs_src/python_types/tutorial009c_py310.py hl[1,4] *}
+
+اŲŲ Ų
Ųب𠨝ÛÚ¯Ų ŲØ§Ø˛Ų
ŲÛØŗØĒ ŲÚ¯ØąØ§Ų Ø§ØŗŲ
âŲØ§ÛÛ Ų
ØĢŲ `Optional` Ų `Union` باشÛ. đ
+
+#### ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û
+
+اÛŲ ŲŲØšâŲØ§ÛÛ ÚŠŲ ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ŲŲØš ØąŲ ØĒŲÛ ÚŠØąŲØ´ŲâŲØ§ Ų
ÛâÚ¯ÛØąŲ Ø¨ŲØ´ŲŲ **ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û** ÛØ§ **Generics** Ų
ÛâÚ¯ŲØ Ų
ØĢŲØ§Ų:
+
+//// tab | Python 3.10+
+
+Ų
ÛâØĒŲŲÛ Ø§Ø˛ ŲŲ
ŲŲ ŲŲØšâŲØ§Û دا؎ŲÛ Ø¨ŲâØšŲŲØ§Ų ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ (با ÚŠØąŲØ´ŲâŲØ§ Ų ŲŲØšâŲØ§ Ø¯Ø§ØŽŲØ´ŲŲ):
+
+* `list`
+* `tuple`
+* `set`
+* `dict`
+
+Ų ŲŲ
ŲŲâØˇŲØą ÚŠŲ ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.8 Ø¨ŲØ¯Ø Ø§Ø˛ Ų
اÚŲŲ `typing`:
+
+* `Union`
+* `Optional` (ŲŲ
ŲŲâØˇŲØą ÚŠŲ ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.8 Ø¨ŲØ¯)
+* ...Ų Ø¨ŲÛŲ.
+
+ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.10Ø Ø¨ŲâØšŲŲØ§Ų ØŦاÛÚ¯Ø˛ÛŲ Ø¨ØąØ§Û Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û `Union` Ų `Optional`Ø Ų
ÛâØĒŲŲÛ Ø§Ø˛ ØŽØˇ ØšŲ
ŲØ¯Û (`|`) Ø¨ØąØ§Û ØĒØšØąÛŲ Ø§ØĒØØ§Ø¯ÛŲ ŲŲØšâŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛØ ÚŠŲ ØŽÛŲÛ Ø¨ŲØĒØą Ų ØŗØ§Ø¯ŲâØĒØąŲ.
+
+////
+
+//// tab | Python 3.9+
+
+Ų
ÛâØĒŲŲÛ Ø§Ø˛ ŲŲ
ŲŲ ŲŲØšâŲØ§Û دا؎ŲÛ Ø¨ŲâØšŲŲØ§Ų ŲŲØšâŲØ§Û ØšŲ
ŲŲ
Û Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ (با ÚŠØąŲØ´ŲâŲØ§ Ų ŲŲØšâŲØ§ Ø¯Ø§ØŽŲØ´ŲŲ):
+
+* `list`
+* `tuple`
+* `set`
+* `dict`
+
+Ų ŲŲ
ŲŲâØˇŲØą ÚŠŲ ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.8 Ø¨ŲØ¯Ø Ø§Ø˛ Ų
اÚŲŲ `typing`:
+
+* `Union`
+* `Optional`
+* ...Ų Ø¨ŲÛŲ.
+
+////
+
+//// tab | Python 3.8+
+
+* `List`
+* `Tuple`
+* `Set`
+* `Dict`
+* `Union`
+* `Optional`
+* ...Ų Ø¨ŲÛŲ.
+
+////
+
+### ÚŠŲØ§ØŗâŲØ§ بŲâØšŲŲØ§Ų ŲŲØš
+
+Ų
ÛâØĒŲŲÛ ÛŲ ÚŠŲØ§Øŗ ØąŲ ŲŲ
بŲâØšŲŲØ§Ų ŲŲØš ÛŲ Ų
ØĒØēÛØą ØĒØšØąÛŲ ÚŠŲÛ.
+
+ŲØąØļ ÚŠŲ ÛŲ ÚŠŲØ§Øŗ `Person` Ø¯Ø§ØąÛØ با ÛŲ ŲØ§Ų
:
+
+{* ../../docs_src/python_types/tutorial010.py hl[1:3] *}
+
+بؚد Ų
ÛâØĒŲŲÛ ÛŲ Ų
ØĒØēÛØą ØąŲ Ø§Ø˛ ŲŲØš `Person` ØĒØšØąÛŲ ÚŠŲÛ:
+
+{* ../../docs_src/python_types/tutorial010.py hl[6] *}
+
+Ų Ø¨ØšØ¯Ø Ø¯ŲØ¨Ø§ØąŲØ ŲŲ
Ų ŲžØ´ØĒÛØ¨Ø§ŲÛ ŲÛØąØ§ÛØ´Ú¯Øą ØąŲ Ø¯Ø§ØąÛ:
+
+
+
+ØĒŲØŦŲ ÚŠŲ ÚŠŲ Ø§ÛŲ ÛØšŲÛ "`one_person` ÛŲ **ŲŲ
ŲŲŲ** Ø§Ø˛ ÚŠŲØ§Øŗ `Person` ŲØŗØĒ".
+
+ÛØšŲÛ "`one_person` ØŽŲØ¯ **ÚŠŲØ§Øŗ** Ø¨Ų Ø§ØŗŲ
`Person` ŲÛØŗØĒ".
+
+## Ų
دŲâŲØ§Û Pydantic
+
+Pydantic ÛŲ ÚŠØĒاب؎ŲŲŲ ŲžØ§ÛØĒŲŲŲ Ø¨ØąØ§Û Ø§ØšØĒØ¨Ø§ØąØŗŲØŦÛ Ø¯Ø§Ø¯ŲâŲØ§.
+
+"Ø´ÚŠŲ" دادŲâŲØ§ ØąŲ Ø¨ŲâØšŲŲØ§Ų ÚŠŲØ§ØŗâŲØ§ÛÛ Ø¨Ø§ ŲÛÚÚ¯ÛâŲØ§ ØĒØšØąÛŲ Ų
ÛâÚŠŲÛ.
+
+Ų ŲØą ŲÛÚÚ¯Û ÛŲ ŲŲØš Ø¯Ø§ØąŲ.
+
+بؚد ÛŲ ŲŲ
ŲŲŲ Ø§Ø˛ اŲŲ ÚŠŲØ§Øŗ ØąŲ Ø¨Ø§ ÛŲ ØŗØąÛ Ų
ŲØ¯Ø§Øą Ų
ÛâØŗØ§Ø˛Û Ų Ø§ŲŲ Ų
ŲØ¯Ø§ØąŲا ØąŲ Ø§ØšØĒØ¨Ø§ØąØŗŲØŦÛ Ų
ÛâÚŠŲŲØ Ø¨Ų ŲŲØš Ų
ŲØ§ØŗØ¨ ØĒبدÛŲØ´ŲŲ Ų
ÛâÚŠŲŲ (Ø§Ú¯Ų ŲØ§Ø˛Ų
باشŲ) Ų ÛŲ Ø´ÛØĄ با ŲŲ
Ų Ø¯Ø§Ø¯ŲâŲØ§ Ø¨ŲØĒ Ų
ÛâØ¯Ų.
+
+Ų Ø¨Ø§ اŲŲ Ø´ÛØĄ ŲŲØ§ÛÛ ŲŲ
Ų ŲžØ´ØĒÛØ¨Ø§ŲÛ ŲÛØąØ§ÛØ´Ú¯Øą ØąŲ Ų
ÛâÚ¯ÛØąÛ.
+
+ÛŲ Ų
ØĢØ§Ų Ø§Ø˛ Ų
ØŗØĒŲØ¯Ø§ØĒ ØąØŗŲ
Û Pydantic:
+
+//// tab | Python 3.10+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011_py310.py!}
+```
+
+////
+
+//// tab | Python 3.9+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011.py!}
+```
+
+////
+
+/// info
+
+Ø¨ØąØ§Û Ø§ØˇŲØ§ØšØ§ØĒ Ø¨ÛØ´ØĒØą Ø¯Øą Ų
بਝ PydanticØ Ų
ØŗØĒŲØ¯Ø§ØĒØ´ ØąŲ ÚÚŠ ÚŠŲ.
+
+///
+
+**FastAPI** ڊاŲ
ŲØ§Ų Ø¨Øą ŲžØ§ÛŲ Pydantic ŲØŗØĒ.
+
+ØĒŲÛ [ØĸŲ
ŲØ˛Ø´ - ØąØ§ŲŲŲ
Ø§Û ÚŠØ§ØąØ¨Øą](tutorial/index.md){.internal-link target=_blank} ØŽÛŲÛ Ø¨ÛØ´ØĒØą Ø§Ø˛ اÛŲØ§ ØąŲ ØĒŲÛ ØšŲ
Ų Ų
ÛâØ¨ÛŲÛ.
+
+/// tip
+
+Pydantic ÛŲ ØąŲØĒØ§Øą ؎اØĩ Ø¯Ø§ØąŲ ŲŲØĒÛ Ø§Ø˛ `Optional` ÛØ§ `Union[Something, None]` بدŲŲ Ų
ŲØ¯Ø§Øą ŲžÛØ´âŲØąØļ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛØ Ų
ÛâØĒŲŲÛ ØĒŲÛ Ų
ØŗØĒŲØ¯Ø§ØĒ Pydantic Ø¯Øą Ų
بਝ ŲÛŲØ¯ŲØ§Û Ø§ØŽØĒÛØ§ØąÛ ŲØ§Ø˛Ų
Ø¨ÛØ´ØĒØą ب؎ŲŲÛ.
+
+///
+
+## ŲŲØšâŲŲ
Ø§ŲØ§ با AnnotationŲØ§Û Ų
ØĒØ§Ø¯ÛØĒØ§
+
+ŲžØ§ÛØĒŲŲ ÛŲ ŲØ§Ø¨ŲÛØĒ ŲŲ
Ø¯Ø§ØąŲ ÚŠŲ Ø¨ŲØĒ Ø§ØŦØ§Ø˛Ų Ų
ÛâØ¯Ų **Ų
ØĒØ§Ø¯ÛØĒØ§ اØļاŲÛ** ØąŲ ØĒŲÛ Ø§ÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ Ø¨Ø°Ø§ØąÛ Ø¨Ø§ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ `Annotated`.
+
+//// tab | Python 3.9+
+
+ØĒŲÛ ŲžØ§ÛØĒŲŲ 3.9Ø `Annotated` Ø¨ØŽØ´Û Ø§Ø˛ ÚŠØĒاب؎ŲŲŲ Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯ŲØ ŲžØŗ Ų
ÛâØĒŲŲÛ Ø§Ø˛ `typing` ŲØ§ØąØ¯Ø´ ÚŠŲÛ.
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial013_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+ØĒŲÛ ŲØŗØŽŲâŲØ§Û Ø˛ÛØą ŲžØ§ÛØĒŲŲ 3.9Ø `Annotated` ØąŲ Ø§Ø˛ `typing_extensions` ŲØ§ØąØ¯ Ų
ÛâÚŠŲÛ.
+
+با **FastAPI** Ø§Ø˛ ŲØ¨Ų ŲØĩب شدŲ.
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial013.py!}
+```
+
+////
+
+ØŽŲØ¯ ŲžØ§ÛØĒŲŲ Ø¨Ø§ اÛŲ `Annotated` ÚŠØ§ØąÛ ŲŲ
ÛâÚŠŲŲ. Ų Ø¨ØąØ§Û ŲÛØąØ§ÛØ´Ú¯ØąŲا Ų Ø§Ø¨Ø˛Ø§ØąŲØ§Û دÛÚ¯ŲØ ŲŲØš ŲŲŲØ˛ `str` ŲØŗØĒ.
+
+ŲŲÛ Ų
ÛâØĒŲŲÛ Ø§Ø˛ اÛŲ ŲØļØ§ ØĒŲÛ `Annotated` Ø§ØŗØĒŲØ§Ø¯Ų ÚŠŲÛ ØĒا Ø¨Ų **FastAPI** Ų
ØĒØ§Ø¯ÛØĒØ§Û اØļاŲÛ Ø¯Øą Ų
بਝ اÛŲÚŠŲ ÚØˇŲØą Ų
ÛâØŽŲØ§Û Ø¨ØąŲØ§Ų
ŲâØ§ØĒ ØąŲØĒØ§Øą ÚŠŲŲ Ø¨Ø¯Û.
+
+ŲÚŠØĒŲ Ų
ŲŲ
اÛŲŲ ÚŠŲ **اŲŲÛŲ *ŲžØ§ØąØ§Ų
ØĒØą ŲŲØš*** ÚŠŲ Ø¨Ų `Annotated` Ų
ÛâØ¯ÛØ **ŲŲØš ŲØ§ŲØšÛ** ŲØŗØĒ. بŲÛØ´ ŲŲØˇ Ų
ØĒØ§Ø¯ÛØĒØ§ Ø¨ØąØ§Û Ø§Ø¨Ø˛Ø§ØąŲØ§Û دÛÚ¯ŲâØŗØĒ.
+
+Ø§ŲØ§Ų ŲŲØˇ Ø¨Ø§ÛØ¯ بدŲŲÛ ÚŠŲ `Annotated` ŲØŦŲØ¯ Ø¯Ø§ØąŲØ Ų Ø§ÛŲÚŠŲ ŲžØ§ÛØĒŲŲ Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯Ų. đ
+
+Ø¨ØšØ¯Ø§Ų Ų
ÛâØ¨ÛŲÛ ÚŠŲ ÚŲØ¯Øą **ŲŲÛ** Ų
ÛâØĒŲŲŲ Ø¨Ø§Ø´Ų.
+
+/// tip
+
+اÛŲÚŠŲ Ø§ÛŲ **ŲžØ§ÛØĒŲŲ Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯Ų** ÛØšŲÛ ŲŲŲØ˛ **Ø¨ŲØĒØąÛŲ ØĒØŦØąØ¨Ų ØĒŲØŗØšŲâØ¯ŲŲØ¯Ų** ØąŲ ØĒŲÛ ŲÛØąØ§ÛØ´Ú¯ØąØĒØ Ø¨Ø§ Ø§Ø¨Ø˛Ø§ØąŲØ§ÛÛ ÚŠŲ Ø¨ØąØ§Û ØĒØŲÛŲ Ų Ø¨Ø§Ø˛ØŗØ§Ø˛Û ÚŠØ¯ØĒ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲÛ Ų ØēÛØąŲ Ų
ÛâÚ¯ÛØąÛ. â¨
+
+Ų ŲŲ
ÛŲâØˇŲØą ڊدØĒ با ØŽÛŲÛ Ø§Ø˛ Ø§Ø¨Ø˛Ø§ØąŲØ§ Ų ÚŠØĒاب؎ŲŲŲâŲØ§Û دÛÚ¯Ų ŲžØ§ÛØĒŲŲ ØŽÛŲÛ ØŗØ§Ø˛Ú¯Ø§Øą Ų
ÛâŲ
ŲŲŲ. đ
+
+///
+
+## ŲŲØšâŲŲ
Ø§ŲØ§ ØĒŲÛ **FastAPI**
+
+**FastAPI** Ø§Ø˛ اÛŲ ŲŲØšâŲŲ
Ø§ŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲŲ ØĒا ÚŲØ¯ ØĒا ÚŠØ§Øą بڊŲŲ.
+
+با **FastAPI** ŲžØ§ØąØ§Ų
ØĒØąŲØ§ ØąŲ Ø¨Ø§ ŲŲØšâŲŲ
Ø§ŲØ§ ØĒØšØąÛŲ Ų
ÛâÚŠŲÛ Ų Ø§ÛŲØ§ ØąŲ Ų
ÛâÚ¯ÛØąÛ:
+
+* **ŲžØ´ØĒÛØ¨Ø§ŲÛ ŲÛØąØ§ÛØ´Ú¯Øą**.
+* **ÚÚŠ ŲŲØšâŲØ§**.
+
+...Ų **FastAPI** Ø§Ø˛ ŲŲ
ŲŲ ØĒØšØąÛŲâŲØ§ Ø¨ØąØ§Û Ø§ÛŲØ§ Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâÚŠŲŲ:
+
+* **ØĒØšØąÛŲ ŲÛØ§Ø˛Ųا**: Ø§Ø˛ ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û Ų
ØŗÛØą Ø¯ØąØŽŲØ§ØŗØĒØ ŲžØ§ØąØ§Ų
ØĒØąŲØ§Û ÚŠŲØĻØąÛØ ŲØ¯ØąŲØ§Ø Ø¨Ø¯ŲŲâŲØ§Ø ŲØ§Ø¨ØŗØĒÚ¯ÛâŲØ§ Ų ØēÛØąŲ.
+* **ØĒبدÛŲ Ø¯Ø§Ø¯Ų**: Ø§Ø˛ Ø¯ØąØŽŲØ§ØŗØĒ Ø¨Ų ŲŲØš Ų
بਝ ŲÛØ§Ø˛.
+* **اؚØĒØ¨Ø§ØąØŗŲØŦÛ Ø¯Ø§Ø¯Ų**: ÚŠŲ Ø§Ø˛ ŲØą Ø¯ØąØŽŲØ§ØŗØĒ Ų
ÛØ§Ø¯:
+ * ØĒŲŲÛØ¯ **ØŽØˇØ§ŲØ§Û ØŽŲØ¯ÚŠØ§Øą** ÚŠŲ Ø¨Ų ÚŠŲØ§ÛŲØĒ Ø¨ØąŲ
ÛâÚ¯ØąØ¯Ų ŲŲØĒÛ Ø¯Ø§Ø¯Ų ŲØ§Ų
ØšØĒØ¨ØąŲ.
+* **Ų
ØŗØĒŲØ¯ØŗØ§Ø˛Û** API با Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ OpenAPI:
+ * ÚŠŲ Ø¨ØšØ¯Ø´ ØĒŲØŗØˇ ØąØ§Ø¨ØˇâŲØ§Û ÚŠØ§ØąØ¨ØąÛ Ų
ØŗØĒŲØ¯Ø§ØĒ ØĒؚاŲ
ŲÛ ØŽŲØ¯ÚŠØ§Øą Ø§ØŗØĒŲØ§Ø¯Ų Ų
ÛâØ´Ų.
+
+اÛŲØ§ Ø´Ø§ÛØ¯ ŲŲ
ŲâØ´ Ø§ŲØĒØ˛Ø§ØšÛ Ø¨Ų ŲØ¸Øą Ø¨ÛØ§Ø¯. ŲÚ¯ØąØ§Ų ŲØ¨Ø§Ø´. ŲŲ
Ų Ø§ÛŲØ§ ØąŲ ØĒŲÛ ØšŲ
Ų ØĒŲÛ [ØĸŲ
ŲØ˛Ø´ - ØąØ§ŲŲŲ
Ø§Û ÚŠØ§ØąØ¨Øą](tutorial/index.md){.internal-link target=_blank} Ų
ÛâØ¨ÛŲÛ.
+
+ŲÚŠØĒŲ Ų
ŲŲ
اÛŲŲ ÚŠŲ Ø¨Ø§ Ø§ØŗØĒŲØ§Ø¯Ų Ø§Ø˛ ŲŲØšâŲØ§Û Ø§ØŗØĒØ§ŲØ¯Ø§ØąØ¯ ŲžØ§ÛØĒŲŲØ ØĒŲÛ ÛŲ ØŦا (Ø¨Ų ØŦØ§Û Ø§ØļاŲŲ ÚŠØąØ¯Ų ÚŠŲØ§ØŗâŲØ§Û Ø¨ÛØ´ØĒØąØ Ø¯ÚŠŲØąØ§ØĒŲØąŲا Ų ØēÛØąŲ)Ø **FastAPI** ÚŠŲÛ Ø§Ø˛ ÚŠØ§Øą ØąŲ Ø¨ØąØ§ØĒ Ø§ŲØŦاŲ
Ų
ÛâØ¯Ų.
+
+/// info
+
+Ø§Ú¯Ų ŲŲ
Ų ØĸŲ
ŲØ˛Ø´ ØąŲ Ú¯Ø°ØąŲŲØ¯Û Ų Ø¨ØąÚ¯Ø´ØĒÛ ÚŠŲ Ø¨ÛØ´ØĒØą Ø¯Øą Ų
بਝ ŲŲØšâŲØ§ ببÛŲÛØ ÛŲ Ų
ŲØ¨Øš ØŽŲØ¨ "ØĒŲŲØ¨âŲØ§Ų
Ų" Ø§Ø˛ `mypy` ŲØŗØĒ.
+
+///
diff --git a/docs/fr/docs/index.md b/docs/fr/docs/index.md
index 6954290085..d25f7a939e 100644
--- a/docs/fr/docs/index.md
+++ b/docs/fr/docs/index.md
@@ -12,7 +12,7 @@
-
+
diff --git a/docs/he/docs/index.md b/docs/he/docs/index.md
index 6498d15e1c..bd166f205a 100644
--- a/docs/he/docs/index.md
+++ b/docs/he/docs/index.md
@@ -12,10 +12,10 @@
-
+
-
-
+
+
diff --git a/docs/hu/docs/index.md b/docs/hu/docs/index.md
index c6f596650e..45ff49c3ba 100644
--- a/docs/hu/docs/index.md
+++ b/docs/hu/docs/index.md
@@ -6,7 +6,7 @@
-
+
diff --git a/docs/id/docs/index.md b/docs/id/docs/index.md
index 7fdd1cc7ad..5fb0c4c9cf 100644
--- a/docs/id/docs/index.md
+++ b/docs/id/docs/index.md
@@ -12,7 +12,7 @@
-
FastAPI framework, alte prestazioni, facile da imparare, rapido da implementare, pronto per il rilascio in produzione
+
diff --git a/docs/it/docs/index.md b/docs/it/docs/index.md
index 8a1039bc51..dc8f5b8467 100644
--- a/docs/it/docs/index.md
+++ b/docs/it/docs/index.md
@@ -4,15 +4,19 @@
+
ãããĻããĄãããåãããˇãŗã§ã¯ãããĒããŽãĸããĒãąãŧãˇã§ãŗã¨ã¯åĨãĢã**äģãŽãããģãš**ãåŽčĄãããĻããã§ãããã
diff --git a/docs/ja/docs/deployment/https.md b/docs/ja/docs/deployment/https.md
index ac40b0982a..7b0f567aa5 100644
--- a/docs/ja/docs/deployment/https.md
+++ b/docs/ja/docs/deployment/https.md
@@ -92,7 +92,7 @@ DNSãĩãŧããŧã§ã¯ã**ååžããããĄã¤ãŗ**ãããĒããŽãĩãŧããŧ
DNSãĩãŧããŧã¯ãããŠãĻãļãĢįšåŽãŽ**IPãĸããŦãš**ãäŊŋį¨ãããããĢæį¤ēããžããããŽIPãĸããŦãšã¯ãDNSãĩãŧããŧã§č¨åŽãããããĒããŽãĩãŧããŧãäŊŋį¨ãããããĒãã¯IPãĸããŦãšãĢãĒããžãã
-
+
### TLS Handshake ãŽéå§
@@ -100,7 +100,7 @@ DNSãĩãŧããŧã¯ãããŠãĻãļãĢįšåŽãŽ**IPãĸããŦãš**ãäŊŋį¨ãã
éäŋĄãŽæåãŽé¨åã¯ãã¯ãŠã¤ãĸãŗãã¨ãĩãŧããŧéãŽæĨįļãįĸēįĢããäŊŋį¨ããæåˇéĩãĒãŠãæąēããã ãã§ãã
-
+
TLSæĨįļãįĸēįĢãããããŽã¯ãŠã¤ãĸãŗãã¨ãĩãŧããŧéãŽããŽããã¨ãã¯ã**TLSããŗããˇã§ã¤ã¯**ã¨åŧã°ããžãã
@@ -120,7 +120,7 @@ TLS Termination Proxyã¯ã1ã¤äģĨä¸ãŽ**TLSč¨ŧææ¸**īŧHTTPSč¨ŧææ¸īŧãĢ
äģåã¯ã`someapp.example.com`ãŽč¨ŧææ¸ãäŊŋããã¨ãĢãĒããžãã
-
+
ã¯ãŠã¤ãĸãŗãã¯ãããŽTLSč¨ŧææ¸ãįæããã¨ãŗããŖããŖīŧããŽå ´åã¯Let's Encryptã§ããããããĢã¤ããĻã¯åžčŋ°ããžãīŧããã§ãĢ**äŋĄé ŧ**ããĻãããããããŽč¨ŧææ¸ãæåšã§ãããã¨ã**æ¤č¨ŧ**ãããã¨ãã§ããžãã
@@ -142,19 +142,19 @@ TLS Termination Proxyã¯ã1ã¤äģĨä¸ãŽ**TLSč¨ŧææ¸**īŧHTTPSč¨ŧææ¸īŧãĢ
ããã§ãã¯ãŠã¤ãĸãŗãã¯**HTTPSãĒã¯ã¨ãšã**ãéäŋĄããžããããã¯ãæåˇåãããTLSãŗãã¯ãˇã§ãŗãäģããåãĒãHTTPãĒã¯ã¨ãšãã§ãã
-
+
### ãĒã¯ã¨ãšããŽåžŠåˇå
TLS Termination Proxy ã¯ãåæãåããĻããæåˇåãäŊŋį¨ããĻã**ãĒã¯ã¨ãšãã垊åˇå**ãã**ããŦãŧãŗ (垊åˇåããã) HTTP ãĒã¯ã¨ãšã** ããĸããĒãąãŧãˇã§ãŗãåŽčĄããĻãããããģãš (äžãã°ãFastAPI ãĸããĒãąãŧãˇã§ãŗãåŽčĄããĻãã Uvicorn ãæã¤ãããģãš) ãĢéäŋĄããžãã
-
+
### HTTP ãŦãšããŗãš
ãĸããĒãąãŧãˇã§ãŗã¯ãĒã¯ã¨ãšããåĻįãã**ããŦãŧãŗ(æåˇåãããĻããĒã)HTTPãŦãšããŗãš** ãTLS Termination ProxyãĢéäŋĄããžãã
-
+
### HTTPS ãŦãšããŗãš
@@ -162,7 +162,7 @@ TLS Termination Proxyã¯æŦĄãĢãäēåãĢåæãåããĻããæåˇ(`someap
ããŽåžããŠãĻãļã§ã¯ããŦãšããŗãšãæåšã§æŖããæåˇããŧã§æåˇåãããĻãããã¨ãĒãŠãæ¤č¨ŧããžãããããĻãããŠãĻãļã¯ãŦãšããŗãšã**垊åˇå**ããĻåĻįããžãã
-
+
ã¯ãŠã¤ãĸãŗãīŧããŠãĻãļīŧã¯ããŦãšããŗãšãæŖãããĩãŧããŧããæĨããã¨ãįĨããã¨ãã§ããžãã ãĒããĒããããŽãĩãŧããŧã¯ãäģĨåãĢ**HTTPSč¨ŧææ¸**ãäŊŋãŖãĻåæããæåˇãäŊŋãŖãĻããããã§ãã
@@ -172,7 +172,7 @@ TLS Termination Proxyã¯æŦĄãĢãäēåãĢåæãåããĻããæåˇ(`someap
įšåŽãŽIPã¨ããŧãīŧããŽäžã§ã¯TLS Termination Proxyīŧãæąããã¨ãã§ãããŽã¯1ã¤ãŽãããģãšã ãã§ãããäģãŽãĸããĒãąãŧãˇã§ãŗ/ãããģãšããåã**ãããĒãã¯IPã¨ããŧã**ãŽįĩãŋåãããäŊŋį¨ãããã¨ããĒãéãããĩãŧããŧä¸ã§åŽčĄãããã¨ãã§ããžãã
-
+
ããããã°ãTLS Termination Proxy ã¯ã**褿°ãŽããĄã¤ãŗ**ã褿°ãŽãĸããĒãąãŧãˇã§ãŗãŽHTTPSã¨č¨ŧææ¸ãåĻįãããããããŽãąãŧãšã§éŠåãĒãĸããĒãąãŧãˇã§ãŗãĢãĒã¯ã¨ãšããéäŋĄãããã¨ãã§ããžãã
@@ -182,7 +182,7 @@ TLS Termination Proxyã¯æŦĄãĢãäēåãĢåæãåããĻããæåˇ(`someap
ããŽåžãLet's Encryptã¨éäŋĄããåĨãŽããã°ãŠã īŧåĨãŽããã°ãŠã ã§ããå ´åãããã°ãåãTLS Termination Proxyã§ããå ´åãããīŧãĢããŖãĻãč¨ŧææ¸ãæ´æ°ããžãã
-
+
**TLSč¨ŧææ¸**ã¯ãIPãĸããŦãšã§ã¯ãĒãã**ããĄã¤ãŗåãĢéĸéŖäģããããĻ**ããžãã
diff --git a/docs/ja/docs/index.md b/docs/ja/docs/index.md
index 682c94e83c..1ba85f8e02 100644
--- a/docs/ja/docs/index.md
+++ b/docs/ja/docs/index.md
@@ -11,14 +11,17 @@
FastAPI framework, high performance, easy to learn, fast to code, ready for production
+
+
+
+## ėŦėŠ ę°ëĨí ėëĩë¤
+
+ë¤ėė ėŦėŠí ė ėë ëĒę°ė§ ėëĩë¤ ė
ëë¤.
+
+`Response`ëĨŧ ėŦėŠíėŦ ë¤ëĨ¸ ė´ë¤ ę˛ë ë°í í ė ėėŧ늰, ė§ė íė í´ëė¤ëĨŧ ë§ë¤ ėë ėėĩëë¤.
+
+/// note | 기ė ė¸ëļėŦí
+
+`from starlette.responses import HTMLResponse`ëĨŧ ėŦėŠí ėë ėėĩëë¤.
+
+**FastAPI**ë ę°ë°ėė¸ ėŦëŦëļė í¸ėëĨŧ ėí´ `starlette.responses`ëĨŧ `fastapi.responses`ëĄ ė ęŗĩ íė§ë§, ëëļëļė ėŦėŠ ę°ëĨí ėëĩė Starletteėė ė§ė ę°ė ¸ėĩëë¤.
+
+///
+
+### `Response`
+
+ę¸°ëŗ¸ `Response` í´ëė¤ë ë¤ëĨ¸ ëǍë ėëĩ í´ëė¤ė ëļëǍ í´ëė¤ ė
ëë¤.
+
+ė´ í´ëė¤ëĨŧ ė§ė ë°íí ė ėėĩëë¤.
+
+ë¤ė 매ę°ëŗėëĨŧ ë°ė ė ėėĩëë¤:
+
+* `content` - `str` ëë `bytes`.
+* `status_code` - HTTP ėíėŊëëĨŧ ëíë´ë `int`.
+* `headers` - ëŦ¸ėė´ëĄ ė´ëŖ¨ė´ė§ `dict`.
+* `media_type` - 미ëė´ íė
ė ëíë´ë `str` ė: `"text/html"`.
+
+FastAPI (ė¤ė ëĄë Starlette)ę° ėëėŧëĄ `Content-Length` í¤ëëĨŧ íŦí¨ėíĩëë¤. ëí `media_type`ė 기ë°íėŦ `Content-Type` í¤ëëĨŧ íŦí¨í늰, í
ė¤í¸ íė
ė ę˛Ŋė° ëŦ¸ė ė§íŠė ėļę° íŠëë¤.
+
+{* ../../docs_src/response_directly/tutorial002.py hl[1,18] *}
+
+### `HTMLResponse`
+
+í
ė¤í¸ ëë ë°ė´í¸ëĨŧ ë°ė HTML ėëĩė ë°ííŠëë¤. ėėė ė¤ëĒ
í ë´ėŠęŗŧ ę°ėĩëë¤.
+
+### `PlainTextResponse`
+
+í
ė¤í¸ ëë ë°ė´í¸ëĨŧ ë°ė ėŧë° í
ė¤í¸ ėëĩė ë°ííŠëë¤.
+
+{* ../../docs_src/custom_response/tutorial005.py hl[2,7,9] *}
+
+### `JSONResponse`
+
+ë°ė´í°ëĨŧ ë°ė `application/json`ėŧëĄ ė¸ėŊëŠë ėëĩė ë°ííŠëë¤.
+
+ė´ë ėėė ė¤ëĒ
íë¯ė´ **FastAPI**ėė ę¸°ëŗ¸ė ėŧëĄ ėŦėŠëë ėëĩ íėė
ëë¤.
+
+### `ORJSONResponse`
+
+ `orjson`ė ėŦėŠíėŦ ëš ëĨ¸ JSON ėëĩė ė ęŗĩíë ëėė
ëë¤. ėėė ė¤ëĒ
í ë´ėŠęŗŧ ę°ėĩëë¤.
+
+/// info | ė ëŗ´
+
+ė´ëĨŧ ėŦėŠíë ¤ëŠ´ `orjson`ė ė¤ėší´ėŧíŠëë¤. ė: `pip install orjson`.
+
+///
+
+### `UJSONResponse`
+
+`ujson`ė ėŦėŠí ë ë¤ëĨ¸ JSON ėëĩ íėė
ëë¤.
+
+/// info | ė ëŗ´
+
+ė´ ėëĩė ėŦėŠíë ¤ëŠ´ `ujson`ė ė¤ėší´ėŧíŠëë¤. ė: 'pip install ujson`.
+
+///
+
+/// warning | ę˛Ŋęŗ
+
+`ujson` ė ėŧëļ ėė¸ ę˛Ŋė°ëĨŧ ė˛ëĻŦíë ë° ėė´ Python ë´ėĨ ęĩŦíëŗ´ë¤ ë ė겊íŠëë¤.
+
+///
+
+{* ../../docs_src/custom_response/tutorial001.py hl[2,7] *}
+
+/// tip | í
+
+`ORJSONResponse`ę° ë ëš ëĨ¸ ëėėŧ ę°ëĨėąė´ ėėĩëë¤.
+
+///
+
+### `RedirectResponse`
+
+HTTP ëĻŦëë ė
ėëĩė ë°ííŠëë¤. ę¸°ëŗ¸ė ėŧëĄ ėí ėŊëë 307(ėė ëĻŦëë ė
)ėŧëĄ ė¤ė ëŠëë¤.
+
+`RedirectResponse`ëĨŧ ė§ė ë°íí ė ėėĩëë¤.
+
+{* ../../docs_src/custom_response/tutorial006.py hl[2,9] *}
+
+---
+
+ëë `response_class` 매ę°ëŗėėė ėŦėŠí ėë ėėĩëë¤:
+
+
+{* ../../docs_src/custom_response/tutorial006b.py hl[2,7,9] *}
+
+ė´ ę˛Ŋė°, *ę˛ŊëĄ ėė
* í¨ėėė URLė ė§ė ë°íí ė ėėĩëë¤.
+
+ė´ ę˛Ŋė°, ėŦėŠëë `status_code`ë `RedirectResponse`ė ę¸°ëŗ¸ę°ė¸ `307` ė
ëë¤.
+
+---
+
+`status_code` 매ę°ëŗėëĨŧ `response_class` 매ę°ëŗėė í¨ęģ ėŦėŠí ėë ėėĩëë¤:
+
+{* ../../docs_src/custom_response/tutorial006c.py hl[2,7,9] *}
+
+### `StreamingResponse`
+
+ëšë기 ė ëë ė´í° ëë ėŧë° ė ëë ė´í°/ė´í°ë ė´í°ëĨŧ ë°ė ėëĩ ëŗ¸ëŦ¸ė ė¤í¸ëĻŦë° íŠëë¤.
+
+{* ../../docs_src/custom_response/tutorial007.py hl[2,14] *}
+
+#### íėŧęŗŧ ę°ė ę°ė˛´ëĨŧ ėŦėŠí `StreamingResponse`
+
+íėŧęŗŧ ę°ė ę°ė˛´(ė: `open()`ėŧëĄ ë°íë ę°ė˛´)ę° ėë ę˛Ŋė°, í´ëš íėŧęŗŧ ę°ė ę°ė˛´ëĨŧ ë°ëŗĩ(iterate)íë ė ëë ė´í° í¨ėëĨŧ ë§ë¤ ė ėėĩëë¤.
+
+ė´ ë°ŠėėŧëĄ, íėŧ ė 랴ëĨŧ ëŠëǍëĻŦė ë¨ŧė ėŊė´ë¤ėŧ íė ėė´, ė ëë ė´í° í¨ėëĨŧ `StreamingResponse`ė ė ëŦíėŦ ë°íí ė ėėĩëë¤.
+
+ė´ ë°Šėė í´ëŧė°ë ė¤í ëĻŦė§, ëšëė¤ ė˛ëĻŦ ëąė ë¤ėí ëŧė´ë¸ëŦëĻŦė í¨ęģ ėŦėŠí ė ėėĩëë¤.
+
+{* ../../docs_src/custom_response/tutorial008.py hl[2,10:12,14] *}
+
+1. ė´ę˛ė´ ė ëë ė´í° í¨ėė
ëë¤. `yield` ëŦ¸ė íŦí¨íęŗ ėėŧë¯ëĄ "ė ëë ė´í° í¨ė"ė
ëë¤.
+2. `with` ë¸ëĄė ėŦėŠí¨ėŧëĄė¨, ė ëë ė´í° í¨ėę° ėëŖë í íėŧęŗŧ ę°ė ę°ė˛´ę° ëĢíëëĄ íŠëë¤. ėĻ, ėëĩ ė ėĄė´ ëë í ëĢíëë¤.
+3. ė´ `yield from`ė í¨ėę° `file_like`ëŧë ę°ė˛´ëĨŧ ë°ëŗĩ(iterate)íëëĄ íŠëë¤. ë°ëŗĩë ę° ëļëļė ė´ ė ëë ė´í° í¨ė(`iterfile`)ėė ėėąë ę˛ė˛ëŧ `yield` ëŠëë¤.
+
+ ė´ë ę˛ í늴 "ėėą(generating)" ėė
ė ë´ëļė ėŧëĄ ë¤ëĨ¸ ëŦ´ė¸ę°ė ėėíë ė ëë ė´í° í¨ėę° ëŠëë¤.
+
+ ė´ ë°Šėė ėŦėŠí늴 `with` ë¸ëĄ ėėė íėŧė ė´ ė ėė´, ėė
ė´ ėëŖë í íėŧęŗŧ ę°ė ę°ė˛´ę° ëĢíë ę˛ė ëŗ´ėĨí ė ėėĩëë¤.
+
+/// tip | í
+
+ėŦ기ė íė¤ `open()`ė ėŦėŠíęŗ ė기 ëëŦ¸ė `async`ė `await`ëĨŧ ė§ėíė§ ėėĩëë¤. ë°ëŧė ę˛ŊëĄ ėė
ė ėŧë° `def`ëĄ ė ė¸íŠëë¤.
+
+///
+
+### `FileResponse`
+
+íėŧė ëšëę¸°ëĄ ė¤í¸ëĻŦë°íėŦ ėëĩíŠëë¤.
+
+ë¤ëĨ¸ ėëĩ ė íęŗŧë ë¤ëĨ¸ ė¸ėëĨŧ ėŦėŠíėŦ ę°ė˛´ëĨŧ ėėąíŠëë¤:
+
+* `path` - ė¤í¸ëĻŦë°í íėŧė ę˛ŊëĄ.
+* `headers` - ëė
ëëĻŦ íėė ėŦėŠė ė ė í¤ë.
+* `media_type` - 미ëė´ íė
ė ëíë´ë ëŦ¸ėė´. ė¤ė ëė§ ėė ę˛Ŋė° íėŧ ė´ëĻė´ë ę˛ŊëĄëĨŧ ėŦėŠíėŦ ėļëĄ íŠëë¤.
+* `filename` - ė¤ė ë ę˛Ŋė° ėëĩė `Content-Disposition`ė íŦí¨ëŠëë¤.
+
+íėŧ ėëĩėë ė ė í `Content-Length`, `Last-Modified`, ë° `ETag` í¤ëę° íŦí¨ëŠëë¤.
+
+{* ../../docs_src/custom_response/tutorial009.py hl[2,10] *}
+
+ëí `response_class` 매ę°ëŗėëĨŧ ėŦėŠí ėë ėėĩëë¤:
+
+{* ../../docs_src/custom_response/tutorial009b.py hl[2,8,10] *}
+
+ė´ ę˛Ŋė°, ę˛ŊëĄ ėė
í¨ėėė íėŧ ę˛ŊëĄëĨŧ ė§ė ë°íí ė ėėĩëë¤.
+
+## ėŦėŠė ė ė ėëĩ í´ëė¤
+
+`Response`ëĨŧ ėėë°ė ėŦėŠė ė ė ėëĩ í´ëė¤ëĨŧ ėėąíęŗ ėŦėŠí ė ėėĩëë¤.
+
+ėëĨŧ ë¤ė´, íŦí¨ë `ORJSONResponse` í´ëė¤ėė ėŦėŠëė§ ėë ė¤ė ėŧëĄ orjsonė ėŦėŠíęŗ ėļë¤ęŗ ę°ė í´ë´
ėë¤.
+
+ë§ėŊ ë¤ėŦė°ę¸° ë° íŦ맡ë JSONė ë°ííęŗ ėļë¤ëŠ´, `orjson.OPT_INDENT_2` ėĩė
ė ėŦėŠí ė ėėĩëë¤.
+
+`CustomORJSONResponse`ëĨŧ ėėąí ė ėėĩëë¤. ėŦ기ė íĩėŦė `Response.render(content)` ëŠėëëĨŧ ėėąíėŦ ë´ėŠė `bytes`ëĄ ë°ííë ę˛ė
ëë¤:
+
+{* ../../docs_src/custom_response/tutorial009c.py hl[9:14,17] *}
+
+ė´ė ë¤ė ëė :
+
+```json
+{"message": "Hello World"}
+```
+
+ė´ ėëĩė ė´ë ę˛ ë°íëŠëë¤:
+
+```json
+{
+ "message": "Hello World"
+}
+```
+
+ëŦŧëĄ JSON íŦ맡í
ëŗ´ë¤ ë ė ėŠíę˛ íėŠí ë°Šë˛ė ė°žė ė ėė ę˛ė
ëë¤. đ
+
+## ę¸°ëŗ¸ ėëĩ í´ëė¤
+
+**FastAPI** í´ëė¤ ę°ė˛´ ëë `APIRouter`ëĨŧ ėėąí ë ę¸°ëŗ¸ė ėŧëĄ ėŦėŠí ėëĩ í´ëė¤ëĨŧ ė§ė í ė ėėĩëë¤.
+
+ė´ëĨŧ ė ėíë 매ę°ëŗėë `default_response_class`ė
ëë¤.
+
+ėë ėė ėė **FastAPI**ë ëǍë ę˛ŊëĄ ėė
ėė ę¸°ëŗ¸ė ėŧëĄ `JSONResponse` ëė `ORJSONResponse`ëĨŧ ėŦėŠíŠëë¤.
+
+{* ../../docs_src/custom_response/tutorial010.py hl[2,4] *}
+
+/// tip | í
+
+ėŦė í ė´ė ė˛ëŧ *ę˛ŊëĄ ėė
*ėė `response_class`ëĨŧ ėŦė ėí ė ėėĩëë¤.
+
+///
+
+## ėļę° ëŦ¸ėí
+
+OpenAPIėė `responses`ëĨŧ ėŦėŠíėŦ 미ëė´ íė
ë° ę¸°í ė¸ëļ ė ëŗ´ëĨŧ ė ė¸í ėë ėėĩëë¤: [OpenAPIėė ėļę° ėëĩ](additional-responses.md){.internal-link target=_blank}.
diff --git a/docs/ko/docs/advanced/events.md b/docs/ko/docs/advanced/events.md
index ae349e7bec..5f8fe0f1e3 100644
--- a/docs/ko/docs/advanced/events.md
+++ b/docs/ko/docs/advanced/events.md
@@ -1,53 +1,165 @@
-# ė´ë˛¤í¸: startupęŗŧ shutdown
+# Lifespan ė´ë˛¤í¸
-íėė ë°ëŧ ėėŠ íëĄęˇ¸ë¨ė´ ėėë기 ė ė´ë ėĸ
ëŖë ë ė¤íëë ė´ë˛¤í¸ í¸ë¤ëŦ(í¨ė)ëĨŧ ė ėí ė ėėĩëë¤.
+ė íëĻŦėŧė´ė
**ėė ė **ė ė¤íëė´ėŧ íë ëĄė§(ėŊë)ė ė ėí ė ėėĩëë¤. ė´ë ė´ ėŊëę° **í ë˛**ë§ ė¤íë늰, **ė íëĻŦėŧė´ė
ė´ ėė˛ė ë°ę¸° ėėí기 ė **ė ė¤íëë¤ë ė미ė
ëë¤.
-ė´ í¨ėë¤ė `async def` ëë íë˛íę˛ `def`ėŧëĄ ė ė¸í ė ėėĩëë¤.
+ë§ė°Ŧę°ė§ëĄ, ė íëĻŦėŧė´ė
ė´ **ėĸ
ëŖë ë** ė¤íëė´ėŧ íë ëĄė§(ėŊë)ė ė ėí ė ėėĩëë¤. ė´ ę˛Ŋė°, ė´ ėŊëë **í ë˛**ë§ ė¤íë늰, **ėŦëŦ ėė˛ė ė˛ëĻŦí í**ė ė¤íëŠëë¤.
-/// warning | ę˛Ŋęŗ
+ė´ ėŊëę° ė íëĻŦėŧė´ė
ė´ **ėė˛ė ë°ę¸° ėėí기 ė ė** ė¤íëęŗ , ėė˛ ė˛ëĻŦę° ëë í **ėĸ
ëŖ ė§ė ė** ė¤íë기 ëëŦ¸ė ė 랴 ė íëĻŦėŧė´ė
ė **ėëĒ
(Lifespan)**ė ë¤ëŖšëë¤. (ė ė í "ėëĒ
"ė´ëŧë ë¨ė´ę° ė¤ėí´ė§ëë¤ đ)
-ė´ë˛¤í¸ í¸ë¤ëŦë ėŖŧ ėėŠ íëĄęˇ¸ë¨ėėë§ ėëíŠëë¤. [íė ėėŠ íëĄęˇ¸ë¨ - ë§ė´í¸](./sub-applications.md){.internal-link target=_blank}ėėë ėëíė§ ėėĩëë¤.
+ė´ ë°Šë˛ė ė 랴 ė íëĻŦėŧė´ė
ėė ėŦėŠí´ėŧ íë **ėė**ė ė¤ė íęą°ë ėė˛ ę°ė **ęŗĩė ëë** ėėė ė¤ė íęŗ , ëë ꡸ íė **ė ëĻŦ**íë ë° ë§¤ė° ė ėŠí ė ėėĩëë¤. ėëĨŧ ë¤ė´, ë°ė´í°ë˛ ė´ė¤ ė°ę˛° í ëë ęŗĩė ëë 머ė ëŦë ëǍë¸ė ëĄëíë ę˛Ŋė°ė
ëë¤.
+
+
+## ėŦėŠ ėŦëĄ
+
+ë¨ŧė **ėŦėŠ ėŦëĄ**ëĨŧ ėëĄ ë¤ė´ëŗ´ęŗ , ė´ëĨŧ ė´ëģę˛ í´ę˛°í ė ėëė§ ė´í´ëŗ´ę˛ ėĩëë¤.
+
+ė°ëĻŦę° ėė˛ė ė˛ëĻŦí기 ėí´ ėŦėŠíęŗ ėļė **머ė ëŦë ëǍë¸**ė´ ėë¤ęŗ ėėí´ ë´
ėë¤. đ¤
+
+ė´ ëǍë¸ë¤ė ėė˛ ę°ė ęŗĩė ëë¯ëĄ, ėė˛ë§ë¤ ëǍë¸ė´ íëėŠ ėë ę˛ė´ ėëëŧ, ėŦëŦ ėė˛ėė ëėŧí ëǍë¸ė ėŦėŠíŠëë¤.
+
+ëǍë¸ė ëĄëíë ë° **ėëší ėę°ė´ 깸ëϰë¤ęŗ ėėí´ ë´
ėë¤**, ėëí늴 ëǍë¸ė´ **ëė¤íŦėė ë§ė ë°ė´í°ëĨŧ ėŊė´ėŧ** í기 ëëŦ¸ė
ëë¤. ë°ëŧė ëǍë ėė˛ė ëí´ ëǍë¸ė ë§¤ë˛ ëĄëíęŗ ėļė§ ėėĩëë¤.
+
+ëǍë/íėŧė ėĩėėėė ëǍë¸ė ëĄëí ėë ėė§ë§, ꡸ëŦ늴 **ëǍë¸ė ëĄëíëë°** ėę°ė´ 깸ëĻŦ기 ëëŦ¸ė, ë¨ėí ėëíë í
ė¤í¸ëĨŧ ė¤íí ëë ëǍë¸ė´ ëĄëë ëęšė§ 기ë¤ë ¤ėŧ í´ė **í
ė¤í¸ ėëę° ëë ¤ė§ëë¤**.
+
+ė´ ëŦ¸ė ëĨŧ í´ę˛°íë ¤ęŗ íë ę˛ė
ëë¤. ėė˛ė ė˛ëĻŦí기 ė ė ëǍë¸ė ëĄëíë, ė íëĻŦėŧė´ė
ė´ ėė˛ė ë°ę¸° ėėí기 ė§ė ėë§ ëĄëíęŗ , ėŊëę° ëĄëëë ëėė ëĄëíė§ ėëëĄ íę˛ ėĩëë¤.
+
+## Lifespan
+
+`FastAPI` ė íëĻŦėŧė´ė
ė `lifespan` 매ę°ëŗėė "ėģ¨í
ė¤í¸ 매ëė "ëĨŧ ėŦėŠíėŦ *ėė*ęŗŧ *ėĸ
ëŖ* ëĄė§ė ė ėí ė ėėĩëë¤. (ėģ¨í
ė¤í¸ 매ëė ę° ëŦ´ėė¸ė§ ė ė íė ė¤ëĒ
ëëĻŦę˛ ėĩëë¤.)
+
+ėė ëĨŧ íĩí´ ėėíęŗ , ꡸ íė ėė¸í ė´í´ëŗ´ę˛ ėĩëë¤.
+
+ė°ëĻŦë `yield`ëĨŧ ėŦėŠíėŦ ëšë기 í¨ė `lifespan()`ė ë¤ėęŗŧ ę°ė´ ėėąíŠëë¤:
+
+{* ../../docs_src/events/tutorial003.py hl[16,19] *}
+
+ėŦ기ė ė°ëĻŦë ëǍë¸ė ëĄëíë ëšėŧ *ėė* ėė
ė ėëŽŦë ė´ė
íęŗ ėėĩëë¤. `yield` ėėė (ę°ė§) ëĒ¨ë¸ í¨ėëĨŧ 머ė ëŦë ëǍë¸ė´ ë´ę¸´ ëė
ëëĻŦė ëŖėĩëë¤. ė´ ėŊëë **ė íëĻŦėŧė´ė
ė´ ėė˛ė ë°ę¸° ėėí기 ė **, *ėė* ëėė ė¤íëŠëë¤.
+
+꡸ëĻŦęŗ `yield` ė§íėë ëǍë¸ė ė¸ëĄëíŠëë¤. ė´ ėŊëë **ė íëĻŦėŧė´ė
ė´ ėė˛ ė˛ëĻŦ ėëŖ í**, *ėĸ
ëŖ* ė§ė ė ė¤íëŠëë¤. ėëĨŧ ë¤ė´, ëŠëǍëĻŦë GPUė ę°ė ėėė í´ė íë ėė
ė í ė ėėĩëë¤.
+
+/// tip | í
+
+`shutdown`ė ė íëĻŦėŧė´ė
ė **ėĸ
ëŖ**í ë ë°ėíŠëë¤.
+
+ėëĄė´ ë˛ė ė ėėí´ėŧ íęą°ë, ꡸ëĨ ė¤íė ëŠėļęŗ ėļė ėë ėėĩëë¤. đ¤ˇ
///
-## `startup` ė´ë˛¤í¸
+### Lifespan í¨ė
-ėėŠ íëĄęˇ¸ë¨ė ėėí기 ė ė ė¤ííë ¤ë í¨ėëĨŧ "startup" ė´ë˛¤í¸ëĄ ė ė¸íŠëë¤:
+ë¨ŧė ėŖŧëĒŠí ė ė, `yield`ëĨŧ ėŦėŠíėŦ ëšë기 í¨ė(async function)ëĨŧ ė ėíęŗ ėë¤ë ę˛ė
ëë¤. ė´ë `yield`ëĨŧ ėŦėŠí ėėĄ´ėąęŗŧ ë§¤ė° ė ėŦíŠëë¤.
+
+{* ../../docs_src/events/tutorial003.py hl[14:19] *}
+
+í¨ėė ė˛Ģ ë˛ė§¸ ëļëļ, ėĻ `yield` ė´ė ė ėŊëë ė íëĻŦėŧė´ė
ė´ ėėë기 **ė ė** ė¤íëŠëë¤.
+
+꡸ëĻŦęŗ `yield` ė´íė ëļëļė ė íëĻŦėŧė´ė
ė´ ėëŖë í **ëė¤ė** ė¤íëŠëë¤.
+
+### ëšë기 ėģ¨í
ė¤í¸ 매ëė
+
+í¨ėëĨŧ íė¸í´ëŗ´ëŠ´, `@asynccontextmanager`ëĄ ėĨėëė´ ėėĩëë¤.
+
+ė´ę˛ė í¨ėëĨŧ "**ëšë기 ėģ¨í
ė¤í¸ 매ëė **"ëŧęŗ ëļëĻŦë ę˛ėŧëĄ ëŗíėíĩëë¤.
+
+{* ../../docs_src/events/tutorial003.py hl[1,13] *}
+
+íė´ėŦėė **ėģ¨í
ė¤í¸ 매ëė **ë `with` ëŦ¸ėė ėŦėŠí ė ėë ę˛ė
ëë¤. ėëĨŧ ë¤ė´, `open()`ė ėģ¨í
ė¤í¸ 매ëė ëĄ ėŦėŠí ė ėėĩëë¤:
+
+```Python
+with open("file.txt") as file:
+ file.read()
+```
+ėĩęˇŧ ë˛ė ė íė´ėŦėėë **ëšë기 ėģ¨í
ė¤í¸ 매ëė **ë ėėĩëë¤. ė´ëĨŧ `async with`ė í¨ęģ ėŦėŠíŠëë¤:
+
+```Python
+async with lifespan(app):
+ await do_stuff()
+```
+
+ėģ¨í
ė¤í¸ 매ëė ë ėė ę°ė ëšë기 ėģ¨í
ė¤í¸ 매ëė ëĨŧ ë§ë¤ëŠ´, `with` ë¸ëĄė ë¤ė´ę°ę¸° ė ė `yield` ė´ė ė ėŊëę° ė¤íëęŗ , `with` ë¸ëĄė ë˛ė´ë íėë `yield` ė´íė ėŊëę° ė¤íëŠëë¤.
+
+ėė ėŊë ėė ėėë ė§ė ėŦėŠíė§ ėęŗ , FastAPIė ė ëŦíėŦ ėŦėŠíëëĄ íŠëë¤.
+
+`FastAPI` ė íëĻŦėŧė´ė
ė `lifespan` 매ę°ëŗėë **ëšë기 ėģ¨í
ė¤í¸ 매ëė **ëĨŧ ë°ę¸° ëëŦ¸ė, ėëĄė´ `lifespan` ëšë기 ėģ¨í
ė¤í¸ 매ëė ëĨŧ FastAPIė ė ëŦí ė ėėĩëë¤.
+
+{* ../../docs_src/events/tutorial003.py hl[22] *}
+
+## ë랴 ė´ë˛¤í¸ (ėŦėŠ ė¤ë¨)
+
+/// warning | ę˛Ŋęŗ
+
+*ėė*ęŗŧ *ėĸ
ëŖ*ëĨŧ ė˛ëĻŦíë ęļėĨ ë°Šë˛ė ėėė ė¤ëĒ
í ëëĄ `FastAPI` ė íëĻŦėŧė´ė
ė `lifespan` 매ę°ëŗėëĨŧ ėŦėŠíë ę˛ė
ëë¤. `lifespan` 매ę°ëŗėëĨŧ ė ęŗĩí늴 `startup`ęŗŧ `shutdown` ė´ë˛¤í¸ í¸ë¤ëŦë ë ė´ė í¸ėļëė§ ėėĩëë¤. `lifespan`ė ėŦėŠí ė§, ëǍë ė´ë˛¤í¸ëĨŧ ėŦėŠí ė§ ė íí´ėŧ í늰 ë ë¤ ėŦėŠí ėë ėėĩëë¤.
+
+ė´ ëļëļė ęą´ëë°ė
ë ėĸėĩëë¤.
+
+///
+
+*ėė*ęŗŧ *ėĸ
ëŖ* ëė ė¤íë ė´ ëĄė§ė ė ėíë ë랴 ë°Šë˛ė´ ėėĩëë¤.
+
+ė íëĻŦėŧė´ė
ė´ ėėë기 ė ė ëë ėĸ
ëŖë ë ė¤íí´ėŧ íë ė´ë˛¤í¸ í¸ë¤ëŦ(í¨ė)ëĨŧ ė ėí ė ėėĩëë¤.
+
+ė´ í¨ėë¤ė `async def` ëë ėŧë° `def`ëĄ ė ė¸í ė ėėĩëë¤.
+
+### `startup` ė´ë˛¤í¸
+
+ė íëĻŦėŧė´ė
ė´ ėėë기 ė ė ė¤íëė´ėŧ íë í¨ėëĨŧ ėļę°íë ¤ëŠ´, `"startup"` ė´ë˛¤í¸ëĄ ė ė¸íŠëë¤:
{* ../../docs_src/events/tutorial001.py hl[8] *}
-ė´ ę˛Ŋė° `startup` ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėë ë¨ėí ëĒ ę°ė§ ę°ėŧëĄ ęĩŦėąë `dict` íėė "ë°ė´í°ë˛ ė´ė¤"ëĨŧ ė´ę¸°ííŠëë¤.
+ė´ ę˛Ŋė°, `startup` ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėë "database"ëŧë íëĒŠ(ë¨ė§ `dict`)ė ėŧëļ ę°ėŧëĄ ė´ę¸°ííŠëë¤.
-íë ė´ėė ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėëĨŧ ėļę°í ėë ėėĩëë¤.
+ėŦëŦ ę°ė ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėëĨŧ ėļę°í ė ėėĩëë¤.
-꡸ëĻŦęŗ ėėŠ íëĄęˇ¸ë¨ė ëǍë `startup` ė´ë˛¤í¸ í¸ë¤ëŦę° ėëŖë ëęšė§ ėė˛ė ë°ė§ ėėĩëë¤.
+ė íëĻŦėŧė´ė
ė ëǍë `startup` ė´ë˛¤í¸ í¸ë¤ëŦę° ėëŖë ëęšė§ ėė˛ė ë°ę¸° ėėíė§ ėėĩëë¤.
-## `shutdown` ė´ë˛¤í¸
+### `shutdown` ė´ë˛¤í¸
-ėėŠ íëĄęˇ¸ë¨ė´ ėĸ
ëŖë ë ė¤ííë ¤ë í¨ėëĨŧ ėļę°íë ¤ëŠ´ `"shutdown"` ė´ë˛¤í¸ëĄ ė ė¸íŠëë¤:
+ė íëĻŦėŧė´ė
ė´ ėĸ
ëŖë ë ė¤íëė´ėŧ íë í¨ėëĨŧ ėļę°íë ¤ëŠ´, `"shutdown"` ė´ë˛¤í¸ëĄ ė ė¸íŠëë¤:
{* ../../docs_src/events/tutorial002.py hl[6] *}
-ė´ ėė ėė `shutdown` ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėë `"Application shutdown"`ė´ëŧë í
ė¤í¸ę° ė í `log.txt` íėŧė ėļę°í ę˛ė
ëë¤.
+ėŦ기ė, `shutdown` ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėë `"Application shutdown"`ė´ëŧë í
ė¤í¸ëĨŧ `log.txt` íėŧė 기ëĄíŠëë¤.
/// info | ė ëŗ´
-`open()` í¨ėėė `mode="a"`ë "ėļę°"ëĨŧ ė미íŠëë¤. ë°ëŧė ė´ë¯¸ ėĄ´ėŦíë íėŧė ë´ėŠė ëŽė´ė°ė§ ėęŗ ėëĄė´ ė¤ė ėļę°íŠëë¤.
+`open()` í¨ėėė `mode="a"`ë "ėļę°"ëĨŧ ė미íë¯ëĄ, íėŧė ėë ę¸°ėĄ´ ë´ėŠė ëŽė´ė°ė§ ėęŗ ėëĄė´ ė¤ė´ ėļę°ëŠëë¤.
///
/// tip | í
-ė´ ėė ėėë íėŧęŗŧ ėí¸ėėŠ í기 ėí´ íė´ėŦ íė¤ í¨ėė¸ `open()`ė ėŦėŠíęŗ ėėĩëë¤.
+ė´ ę˛Ŋė°, ė°ëĻŦë íė¤ íė´ėŦ `open()` í¨ėëĨŧ ėŦėŠíėŦ íėŧęŗŧ ėí¸ėėŠíęŗ ėėĩëë¤.
-ë°ëŧė ëė¤íŦė ë°ė´í°ëĨŧ ė°ę¸° ėí´ "ë기"ę° íėí I/O (ė
ë Ĩ/ėļë Ĩ) ėė
ė ėííŠëë¤.
+ë°ëŧė I/O(ė
ėļë Ĩ) ėė
ė´ íŦí¨ëė´ ėė´ ëė¤íŦė 기ëĄëë ę˛ė "기ë¤ëĻŦë" ęŗŧė ė´ íėíŠëë¤.
-꡸ëŦë `open()`ė `async`ė `await`ė ėŦėŠíė§ ė기 ëëŦ¸ė ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėë `async def`ę° ėë íė¤ `def`ëĄ ė ė¸íęŗ ėėĩëë¤.
+íė§ë§ `open()`ė `async`ė `await`ëĨŧ ėŦėŠíė§ ėėĩëë¤.
+
+꡸ëė ė°ëĻŦë ė´ë˛¤í¸ í¸ë¤ëŦ í¨ėëĨŧ `async def` ëė ėŧë° `def`ëĄ ė ė¸íŠëë¤.
///
+### `startup`ęŗŧ `shutdown`ė í¨ęģ ėŦėŠ
+
+*ėė*ęŗŧ *ėĸ
ëŖ* ëĄė§ė´ ė°ę˛°ë ę°ëĨėąė´ ëėĩëë¤. ėëĨŧ ë¤ė´, ëŦ´ė¸ę°ëĨŧ ėėí í ëë´ęą°ë, ėėė íëí í í´ė íë ëąė ėė
ė í ė ėėĩëë¤.
+
+ė´ëŦí ėė
ė ëŗëė í¨ėëĄ ė˛ëĻŦí늴 ėëĄ ëĄė§ė´ë ëŗėëĨŧ ęŗĩė íė§ ė기 ëëŦ¸ė ë ė´ë ¤ėė§ëë¤. ę°ë¤ė ė ė ëŗėė ė ėĨíęą°ë ëšėˇí í¸ëĻė ėŦėŠí´ėŧ í ė ėėĩëë¤.
+
+꡸ë 기 ëëŦ¸ė ėėė ė¤ëĒ
í ëëĄ `lifespan`ė ėŦėŠíë ę˛ė´ ęļėĨëŠëë¤.
+
+## 기ė ė ė¸ëļėŦí
+
+í¸ę¸°ėŦ ë§ė ëļë¤ė ėí 기ė ė ė¸ ė¸ëļėŦíė
ëë¤. đ¤
+
+ASGI 기ė ėŦėė ë°ëĨ´ëŠ´, ė´ë Lifespan Protocolė ėŧëļė´ëа, `startup`ęŗŧ `shutdown`ė´ëŧë ė´ë˛¤í¸ëĨŧ ė ėíŠëë¤.
+
/// info | ė ëŗ´
-ė´ë˛¤í¸ í¸ë¤ëŦė ę´í ë´ėŠė Starlette ė´ë˛¤í¸ ëŦ¸ėėė ėļę°ëĄ íė¸í ė ėėĩëë¤.
+Starletteė `lifespan` í¸ë¤ëŦė ëí´ ë ėŊęŗ ėļë¤ëŠ´ Starletteė Lifespan ëŦ¸ėėė íė¸í ė ėėĩëë¤.
+
+ė´ ëŦ¸ėėë ėŊëė ë¤ëĨ¸ ėėėė ėŦėŠí ė ėë lifespan ėíëĨŧ ė˛ëĻŦíë ë°Šë˛ë íŦí¨ëė´ ėėĩëë¤.
///
+
+## ėë¸ ė íëĻŦėŧė´ė
+
+đ¨ ė´ lifespan ė´ë˛¤í¸(`startup`ęŗŧ `shutdown`)ë ëŠė¸ ė íëĻŦėŧė´ė
ė ëí´ėë§ ė¤íë늰, [ėë¸ ė íëĻŦėŧė´ė
- Mounts](sub-applications.md){.internal-link target=_blank}ėë ė¤íëė§ ėėė ė ėíė¸ė.
diff --git a/docs/ko/docs/advanced/sub-applications.md b/docs/ko/docs/advanced/sub-applications.md
new file mode 100644
index 0000000000..c5835de15c
--- /dev/null
+++ b/docs/ko/docs/advanced/sub-applications.md
@@ -0,0 +1,67 @@
+# íė ėėŠíëĄęˇ¸ë¨ - ë§ė´í¸
+
+ë§ėŊ ę°ę°ė ë
ëĻŊė ė¸ OpenAPIė ëŦ¸ė UIëĨŧ ę°ë ë ę°ė ë
ëĻŊė ė¸ FastAPI ėėŠíëĄęˇ¸ë¨ė´ íėíë¤ëŠ´, ëŠė¸ ė´íëĻŦėŧė´ė
ė íë (ëë ꡸ ė´ėė) íė-ėėŠíëĄęˇ¸ë¨(ë¤)ė âë§ė´í¸"í´ė ėŦėŠí ė ėėĩëë¤.
+
+## **FastAPI** ėėŠíëĄęˇ¸ë¨ ë§ė´í¸
+
+âë§ė´í¸"ė´ë ėė í âë
ëĻŊė ė¸" ėėŠíëĄęˇ¸ë¨ė íšė ę˛ŊëĄė ėļę°íėŦ í´ëš íė ėėŠíëĄęˇ¸ë¨ėė ė ė¸ë *ę˛ŊëĄ ëė*ė íĩí´ í´ëš ę˛ŊëĄ ėëė ėë ëǍë ėė
ë¤ė ė˛ëĻŦí ė ėëëĄ íë ę˛ė ė미íŠëë¤.
+
+### ėĩėë¨ ėėŠíëĄęˇ¸ë¨
+
+ë¨ŧė , ëŠė¸, ėĩėë¨ė **FastAPI** ėėŠíëĄęˇ¸ë¨ęŗŧ ė´ę˛ė *ę˛ŊëĄ ëė*ė ėėąíŠëë¤:
+
+{* ../../docs_src/sub_applications/tutorial001.py hl[3, 6:8] *}
+
+### íė ėėŠíëĄęˇ¸ë¨
+
+ë¤ėėŧëĄ, íė ėėŠíëĄęˇ¸ë¨ęŗŧ ė´ę˛ė *ę˛ŊëĄ ëė*ė ėėąíŠëë¤:
+
+ė´ íė ėėŠíëĄęˇ¸ë¨ė ë ë¤ëĨ¸ íė¤ FastAPI ėėŠíëĄęˇ¸ë¨ė
ëë¤. ë¤ë§ ė´ę˛ė âë§ė´í¸âë ę˛ė
ëë¤:
+
+{* ../../docs_src/sub_applications/tutorial001.py hl[11, 14:16] *}
+
+### íė ėėŠíëĄęˇ¸ë¨ ë§ė´í¸
+
+ėĩėë¨ ėėŠíëĄęˇ¸ë¨, `app`ė íė ėėŠíëĄęˇ¸ë¨, `subapi`ëĨŧ ë§ė´í¸íŠëë¤.
+
+ė´ ėėėė, íė ėėŠíëĄęˇ¸ë¨ė
ė `/subapi` ę˛ŊëĄė ë§ė´í¸ ë ę˛ė
ëë¤:
+
+{* ../../docs_src/sub_applications/tutorial001.py hl[11, 19] *}
+
+### ėëėŧëĄ ėėąë API ëŦ¸ė íė¸
+
+ė´ė , `uvicorn`ėŧëĄ ëŠė¸ ėėŠíëĄęˇ¸ë¨ė ė¤ííėėė¤. ëšė ė íėŧė´ `main.py`ëŧ늴, ė´ë ę˛ ė¤ííŠëë¤:
+
+
+
+ë¤ėėŧëĄ, http://127.0.0.1:8000/subapi/docsėė íė ėėŠíëĄęˇ¸ë¨ė ëŦ¸ėëĨŧ ėŦėėė¤.
+
+íė ę˛ŊëĄ ė ëėŦ `/subapi` ėëė ė ė¸ë *ę˛ŊëĄ ëė* ė íŦí¨íë, íė ėėŠíëĄęˇ¸ë¨ė ëí ėë API ëŦ¸ėëĨŧ íė¸í ė ėėĩëë¤:
+
+
+
+ë ėŦėŠė ė¸í°íė´ė¤ ė¤ ė´ë íëëĨŧ ėŦėŠí´ėŧíë ę˛Ŋė°, ë¸ëŧė°ė ë íšė ėėŠíëĄęˇ¸ë¨ ëë íė ėėŠíëĄęˇ¸ë¨ęŗŧ ę°ę° íĩė í ė ė기 ëëŦ¸ė ėŦë°ëĨ´ę˛ ëėí ę˛ė
ëë¤.
+
+### 기ė ė ė¸ëļėŦí: `root_path`
+
+ėė ė¤ëĒ
ë ę˛ęŗŧ ę°ė´ íė ėėŠíëĄęˇ¸ë¨ė ë§ė´í¸íë ę˛Ŋė°, FastAPIë `root_path`ëŧęŗ íë ASGI ëĒ
ė¸ė 매ėģ¤ëėĻė ėŦėŠíėŦ íė ėėŠíëĄęˇ¸ë¨ė ëí ë§ė´í¸ ę˛ŊëĄ íĩė ė ė˛ëĻŦíŠëë¤.
+
+ė´ëĨŧ íĩí´, íė ėėŠíëĄęˇ¸ë¨ė ëŦ¸ė UIëĨŧ ėí´ ę˛ŊëĄ ė ëėŦëĨŧ ėŦėŠí´ėŧ íë¤ë ėŦė¤ė ė¸ė§íŠëë¤.
+
+íė ėėŠíëĄęˇ¸ë¨ėë ėė ë¤ëĨ¸ íė ėėŠíëĄęˇ¸ë¨ė ë§ė´í¸íë ę˛ė´ ę°ëĨí늰 FastAPIę° ëǍë `root_path` ë¤ė ėëė ėŧëĄ ė˛ëĻŦí기 ëëŦ¸ė ëǍë ę˛ė ėŦë°ëĨ´ę˛ ëėí ę˛ė
ëë¤.
+
+`root_path`ė ė´ę˛ė ėŦėŠíë ë°Šë˛ė ëí´ėë [íëĄėė ëˇë¨](./behind-a-proxy.md){.internal-link target=_blank} ėšė
ėė ë°°ė¸ ė ėėĩëë¤.
diff --git a/docs/ko/docs/help-fastapi.md b/docs/ko/docs/help-fastapi.md
index 932952b4a9..06435d4bbc 100644
--- a/docs/ko/docs/help-fastapi.md
+++ b/docs/ko/docs/help-fastapi.md
@@ -1,162 +1,269 @@
-* # FastAPI ė§ė - ëėë§ ë°ę¸°
+# FastAPI ė§ė - ëė ë°ę¸°
- **FastAPI** ę° ë§ėė ëėëė?
+**FastAPI** ę° ë§ėė ëėëė?
- FastAPI, ë¤ëĨ¸ ėŦėŠė, ę°ë°ėëĨŧ ėėíęŗ ėļėŧė ę°ė?
+FastAPI, ë¤ëĨ¸ ėŦėŠė, ę°ë°ėëĨŧ ėėíęŗ ėļėŧė ę°ė?
- íšė **FastAPI** ė ëí´ ëėė´ íėíė ę°ė?
+íšė **FastAPI** ė ëí´ ëėė´ íėíė ę°ė?
- ėėŖŧ ę°ë¨íę˛ ėėí ė ėėĩëë¤ (ëĒ ë˛ė í´ëĻë§ėŧëĄ).
+ėėŖŧ ę°ë¨íę˛ ėėí ė ėėĩëë¤ (ëĒ ë˛ė í´ëĻë§ėŧëĄ).
- ëí ëėė ë°ė ė ėë ë°Šë˛ë ëĒ ę°ė§ ėėĩëë¤.
+ëí ëėė ë°ė ė ėë ë°Šë˛ë ëĒ ę°ė§ ėėĩëë¤.
- ## ë´ė¤ë í° ęĩŦë
+## ë´ė¤ë í° ęĩŦë
- [**FastAPIė ėšęĩŦ** ë´ė¤ë í°](https://github.com/fastapi/fastapi/blob/master/newsletter)ëĨŧ ęĩŦë
íėŦ ėĩė ė ëŗ´ëĨŧ ė ė§í ė ėėĩëë¤{.internal-link target=_blank}:
+[**FastAPI and friends** ë´ė¤ë í°](newsletter.md){.internal-link target=\_blank}ëĨŧ ęĩŦë
íėŦ ėĩė ė ëŗ´ëĨŧ ė ė§í ė ėėĩëë¤:
- - FastAPI ė ꡸ ėšęĩŦë¤ė ëí ë´ė¤ đ
- - ę°ė´ë đ
- - íšė§ â¨
- - í기ė ė¸ ëŗí đ¨
- - íęŗŧ ėë š â
+* FastAPI and friendsė ëí ë´ė¤ đ
+* ę°ė´ë đ
+* 기ëĨ â¨
+* í기ė ė¸ ëŗí đ¨
+* íęŗŧ ėë š â
- ## í¸ėí°ėė FastAPI íëĄė°í기
+## í¸ėí°ėė FastAPI íëĄė°í기
- [Follow @fastapi on **Twitter**](https://twitter.com/fastapi) ëĨŧ íëĄė°íėŦ **FastAPI** ė ëí ėĩė ë´ė¤ëĨŧ ėģė ė ėėĩëë¤. đĻ
+**Twitter**ė @fastapiëĨŧ íëĄė°íėŦ **FastAPI** ė ëí ėĩė ë´ė¤ëĨŧ ėģė ė ėėĩëë¤. đĻ
- ## Star **FastAPI** in GitHub
+## Star **FastAPI** in GitHub
- GitHubėė FastAPIė "star"ëĨŧ ëļėŧ ė ėėĩëë¤(ė¤ëĨ¸ėĒŊ ėë¨ė star ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. âī¸
+GitHubėė FastAPIė "star"ëĨŧ ëļėŧ ė ėėĩëë¤ (ė¤ëĨ¸ėĒŊ ėë¨ė star ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. âī¸
- ė¤íëĨŧ ëëĻŧėŧëĄė¨, ë¤ëĨ¸ ėŦėŠėë¤ė´ ėĸ ë ėŊę˛ ė°žė ė ėęŗ , ë§ė ėŦëë¤ėę˛ ė ėŠí ę˛ėė ëíëŧ ė ėėĩëë¤.
+ė¤íëĨŧ ëëĻŧėŧëĄė¨, ë¤ëĨ¸ ėŦėŠėë¤ė´ ėĸ ë ėŊę˛ ė°žė ė ėęŗ , ë§ė ėŦëë¤ėę˛ ė ėŠí ę˛ėė ëíëŧ ė ėėĩëë¤.
- ## GitHub ė ėĨėėė ëĻ´ëĻŦėĻ íė¸
+## GitHub ė ėĨėėė ëĻ´ëĻŦėĻ íė¸
- GitHubėė FastAPIëĨŧ "watch"í ė ėėĩëë¤ (ė¤ëĨ¸ėĒŊ ėë¨ watch ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. đ
+GitHubėė FastAPIëĨŧ "watch"í ė ėėĩëë¤ (ė¤ëĨ¸ėĒŊ ėë¨ watch ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. đ
- ėŦ기ė "Releases only"ė ė íí ė ėėĩëë¤.
+ėŦ기ė "Releases only"ė ė íí ė ėėĩëë¤.
- ė´ë ę˛í늴, **FastAPI** ė ë˛ęˇ¸ ėė ë° ėëĄė´ 기ëĨė ęĩŦí ëąė ėëĄė´ ėëŖ (ėĩė ë˛ė )ė´ ėė ëë§ë¤ (ė´ëŠėŧ) íĩė§ëĨŧ ë°ė ė ėėĩëë¤.
+ė´ë ę˛í늴, **FastAPI** ė ë˛ęˇ¸ ėė ë° ėëĄė´ 기ëĨė ęĩŦí ëąė ėëĄė´ ėëŖ (ėĩė ë˛ė )ė´ ėė ëë§ë¤ (ė´ëŠėŧ) íĩė§ëĨŧ ë°ė ė ėėĩëë¤.
- ## ę°ë°ėėė ė°ę˛°
+## ę°ë°ėėė ė°ę˛°
- ę°ë°ėė¸ [me (SebastiÃĄn RamÃrez / `tiangolo`)](https://tiangolo.com/) ė ė°ëŊė 뎍í ė ėėĩëë¤.
+ę°ë°ė(SebastiÃĄn RamÃrez / `tiangolo`)ė ė°ëŊė 뎍í ė ėėĩëë¤.
- ėŦëŦëļė í ė ėėĩëë¤:
+ėŦëŦëļė í ė ėėĩëë¤:
- - [**GitHub**ėė íëĄė°í기](https://github.com/tiangolo).
- - ëšė ėę˛ ëėė´ ë ė ė ë¤ëĨ¸ ė¤íėė¤ íëĄė í¸ëĨŧ íė¸íėėė¤.
- - ėëĄė´ ė¤íėė¤ íëĄė í¸ëĨŧ ë§ë¤ėė ë íė¸íë ¤ëŠ´ íëĄė° íėėė¤.
+* **GitHub**ėė íëĄė°í기..
+ * ëšė ėę˛ ëėė´ ë ė ė ë¤ëĨ¸ ė¤íėė¤ íëĄė í¸ëĨŧ íė¸íėėė¤.
+ * ėëĄė´ ė¤íėė¤ íëĄė í¸ëĨŧ ë§ë¤ėė ë íė¸íë ¤ëŠ´ íëĄė° íėėė¤.
+* **Twitter** ëë Mastodonėė íëĄė°í기.
+ * FastAPIė ėŦėŠ ėŠëëĨŧ ėë ¤ėŖŧė¸ė (꡸ę˛ė ëŖë ę˛ė ėĸėíŠëë¤).
+ * ë°íë ėëĄė´ í´ ėļė ėėė ë°ėëŗ´ėėė¤.
+ * **Twitter**ė @fastapiëĨŧ íëĄė° (ëŗë ęŗė ėė) í ė ėėĩëë¤.
+* **LinkedIn**ėė íëĄė°í기..
+ * ėëĄė´ í´ė ë°íë ėļė ėėė ë°ėëŗ´ėėė¤. (ë¨, TwitterëĨŧ ë ėėŖŧ ėŦėŠíŠëë¤ đ¤ˇââ).
+* **Dev.to** ëë **Medium**ėė ė ę° ėėąí ë´ėŠė ėŊė´ ëŗ´ėėė¤ (ëë íëĄė°).
+ * ë¤ëĨ¸ 기ėŦë ėė´ëė´ë¤ė ėŊęŗ , ė ę° ë§ë¤ė´ėë í´ė ëí´ėë ėŊėŧėėė¤.
+ * ėëĄė´ 기ėŦëĨŧ ėŊ기 ėí´ íëĄė° íėėė¤.
- - [**Twitter**ėė íëĄė°í기](https://twitter.com/tiangolo).
- - FastAPIė ėŦėŠ ėŠëëĨŧ ėë ¤ėŖŧė¸ė (꡸ę˛ė ëŖë ę˛ė ėĸėíŠëë¤).
- - ë°í ëë ėëĄė´ í´ ėļėí ë ë¤ėŧėėė¤.
- - [follow @fastapi on Twitter](https://twitter.com/fastapi) (ëŗë ęŗė ėė) í ė ėėĩëë¤.
+## **FastAPI**ė ëí í¸ė
- - [**Linkedin**ėėė ė°ę˛°](https://www.linkedin.com/in/tiangolo/).
- - ėëĄė´ í´ė ë°íë ëĻ´ëĻŦė¤ëĨŧ ë¤ė ė ėėĩëë¤ (ë¨, TwitterëĨŧ ë ėėŖŧ ėŦėŠíŠëë¤ đ¤ˇââ).
+**FastAPI**ė ëí´ í¸ė íęŗ FastAPIę° ë§ėė ëë ė´ė ëĨŧ ėë ¤ėŖŧė¸ė. đ
- - [**Dev.to**](https://dev.to/tiangolo) ëë [**Medium**](https://medium.com/@tiangolo)ėė ė ę° ėėąí ë´ėŠė ėŊė´ ëŗ´ėėė¤(ëë íëĄė°).
- - ë¤ëĨ¸ 기ėŦë ėė´ëė´ë¤ė ėŊęŗ , ė ę° ë§ë¤ė´ėë í´ė ëí´ėë ėŊėŧėėė¤.
- - ėëĄė´ 기ėŦëĨŧ ėŊ기 ėí´ íëĄė° íėėė¤.
+**FastAPI**ę° ė´ëģę˛ ėŦėŠëęŗ ėëė§, ė´ë¤ ė ė´ ë§ėė ë¤ėëė§, ė´ë¤ íëĄė í¸/íėŦėė ėŦėŠíęŗ ėëė§ ëąė ëí´ ëŖęŗ ėļėĩëë¤.
- ## **FastAPI**ė ëí í¸ė
+## FastAPIė íŦíí기
- [**FastAPI**ė ëí´ í¸ė](https://twitter.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi) íęŗ FastAPIę° ë§ėė ëë ė´ė ëĨŧ ėë ¤ėŖŧė¸ė. đ
+* Slantėė **FastAPI** ė ëí´ íŦííėėė¤.
+* AlternativeToėė **FastAPI** ė ëí´ íŦííėėė¤.
+* StackShareėė **FastAPI** ė ëí´ íŦííėėė¤.
- **FastAPI**ę° ė´ëģę˛ ėŦėŠëęŗ ėëė§, ė´ë¤ ė ė´ ë§ėė ë¤ėëė§, ė´ë¤ íëĄė í¸/íėŦėė ėŦėŠíęŗ ėëė§ ëąė ëí´ ëŖęŗ ėļėĩëë¤.
+## GitHubė ė´ėëĄ ë¤ëĨ¸ėŦë ë기
- ## FastAPIė íŦíí기
+ë¤ëĨ¸ ėŦëë¤ė ė§ëŦ¸ė ëėė ė¤ ė ėėĩëë¤:
- - [Slantėė **FastAPI** ė ëí´ íŦííėėė¤](https://www.slant.co/options/34241/~fastapi-review).
- - [AlternativeTo**FastAPI** ė ëí´ íŦííėėė¤](https://alternativeto.net/software/fastapi/).
+* GitHub ëė¤ėģ¤ė
+* GitHub ė´ė
- ## GitHubė ė´ėëĄ ë¤ëĨ¸ėŦë ë기
+ë§ė ę˛Ŋė°, ėŦëŦëļė ė´ë¯¸ ꡸ ė§ëŦ¸ė ëí ëĩė ėęŗ ėė ėë ėėĩëë¤. đ¤
- [ėĄ´ėŦíë ė´ė](https://github.com/fastapi/fastapi/issues)ëĨŧ íė¸íęŗ ęˇ¸ę˛ė ėëíęŗ ëėė¤ ė ėėĩëë¤. ëëļëļė ę˛Ŋė° ė´ë¯¸ ëĩė ėęŗ ėë ė§ëŦ¸ė
ëë¤. đ¤
+ë§ėŊ ë§ė ėŦëë¤ė ëŦ¸ė ëĨŧ ëėė¤ë¤ëŠ´, ęŗĩėė ė¸ [FastAPI ė ëŦ¸ę°](fastapi-people.md#fastapi-experts){.internal-link target=\_blank} ę° ë ę˛ė
ëë¤. đ
- ë§ė ėŦëë¤ė ëŦ¸ė ëĨŧ ëėė¤ë¤ëŠ´, ęŗĩėė ė¸ [FastAPI ė ëŦ¸ę°](https://github.com/fastapi/fastapi/blob/master/docs/en/docs/fastapi-people.md#experts) ę° ë ė ėėĩëë¤{.internal-link target=_blank}. đ
+ę°ėĨ ė¤ėí ė ė: ėšė íë ¤ęŗ ë
¸ë Ĩíë ę˛ė
ëë¤. ėŦëë¤ė ėĸė ę°ė ėęŗ ė¤ëа, ë§ė ę˛Ŋė° ėĩė ė ë°ŠėėŧëĄ ė§ëŦ¸íė§ ėė ėë ėėĩëë¤. íė§ë§ ėĩëí ėšė íę˛ ëíë ¤ęŗ ë
¸ë Ĩíė¸ė. đ¤
- ## GitHub ė ėĨė ëŗ´ę¸°
+**FastAPI** ėģ¤ëޤëí°ė ëĒŠíë ėšė íęŗ íėíë ę˛ė
ëë¤. ëėė, ę´´ëĄíė´ë ëŦ´ëĄí íëė ë°ėë¤ė´ė§ ë§ė¸ė. ė°ëĻŦë ėëĄëĨŧ ëë´ėŧ íŠëë¤.
- GitHubėė FastAPIëĨŧ "watch"í ė ėėĩëë¤ (ė¤ëĨ¸ėĒŊ ėë¨ watch ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. đ
+---
- "Releases only" ëė "Watching"ė ė íí늴 ë¤ëĨ¸ ėŦėŠėę° ėëĄė´ issueëĨŧ ėėąí ë ėëĻŧė´ ėė ëŠëë¤.
+ë¤ëĨ¸ ėŦëë¤ė ė§ëŦ¸ (ëė¤ėģ¤ė
ëë ė´ėėė) í´ę˛°ė ëė¸ ė ėë ë°Šë˛ė ë¤ėęŗŧ ę°ėĩëë¤.
- ęˇ¸ë° ë¤ė ė´ë° issuesëĨŧ í´ę˛° í ė ėëëĄ ëėė ė¤ ė ėėĩëë¤.
+### ė§ëŦ¸ ė´í´í기
- ## ė´ė ėėąí기
+* ė§ëŦ¸íë ėŦëė´ ę°ė§ **ëĒŠė **ęŗŧ ėŦėŠ ėŦëĄëĨŧ ė´í´í ė ėëė§ íė¸íė¸ė.
- GitHub ė ėĨėė [ėëĄė´ ė´ė ėėą](https://github.com/fastapi/fastapi/issues/new/choose) ė í ė ėėĩëë¤, ėëĨŧë¤ëŠ´ ë¤ėęŗŧ ę°ėĩëë¤:
+* ė§ëŦ¸ (ëëļëļė ė§ëŦ¸ė
ëë¤)ė´ **ëĒ
í**íė§ íė¸íė¸ė.
- - **ė§ëŦ¸**ė íęą°ë **ëŦ¸ė **ė ëí´ ė§ëŦ¸íŠëë¤.
- - ėëĄė´ **기ëĨ**ė ė ė íŠëë¤.
+* ë§ė ę˛Ŋė°, ėŦėŠėę° ę°ė í í´ę˛°ėą
ė ëí ė§ëŦ¸ė íė§ë§, ë **ėĸė** í´ę˛°ėą
ė´ ėė ė ėėĩëë¤. ëŦ¸ė ė ėŦėŠ ėŦëĄëĨŧ ë ė ė´í´í늴 ë ëė **ëėė ė¸ í´ę˛°ėą
**ė ė ėí ė ėėĩëë¤.
- **ė°¸ęŗ **: ë§ėŊ ė´ėëĨŧ ėėąíë¤ëŠ´, ė ë ėŦëŦëļėę˛ ë¤ëĨ¸ ėŦëë¤ė ëėëŦëŧęŗ ëļíí ę˛ė
ëë¤. đ
+* ė§ëŦ¸ė ė´í´í ė ėë¤ëŠ´, ë **ėė¸í ė ëŗ´**ëĨŧ ėė˛íė¸ė.
- ## Pull RequestëĨŧ ë§ëėėė¤
+### ëŦ¸ė ėŦíí기
- Pull RequestsëĨŧ ė´ėŠíėŦ ėė¤ėŊëė [ėģ¨í¸ëĻŦ롰í¸](https://github.com/fastapi/fastapi/blob/master/docs/en/docs/contributing.md){.internal-link target=_blank} í ė ėėĩëë¤. ėëĨŧ ë¤ëŠ´ ë¤ėęŗŧ ę°ėĩëë¤:
+ëëļëļė ę˛Ŋė°, ė§ëŦ¸ė ė§ëŦ¸ėė **ėëŗ¸ ėŊë**ė ę´ë ¨ė´ ėėĩëë¤.
- - ëŦ¸ėėė ė°žė ė¤íëĨŧ ėė í ë.
+ë§ė ę˛Ŋė°, ėŊëė ėŧëļë§ ëŗĩėŦí´ė ėŦëĻŦė§ë§, ꡸ę˛ë§ėŧëĄë **ëŦ¸ė ëĨŧ ėŦí**í기ė ėļŠëļíė§ ėėĩëë¤.
- - FastAPIëĨŧ [í¸ė§íėŦ](https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml) ėėąíęą°ë ė°žė ëŦ¸ė, ëšëė¤ ëë íėēė¤í¸ëĨŧ ęŗĩė í ë.
+* ė§ëŦ¸ėėę˛ ėĩėíė ėŦí ę°ëĨí ėė ëĨŧ ė ęŗĩí´ëŦëŧęŗ ėė˛íė¸ė. ė´ë ę˛ í늴 ėŊëëĨŧ **ëŗĩėŦ-ëļėŦëŖę¸°**íėŦ ė§ė ė¤ííęŗ , ëėŧí ė¤ëĨë ëėė íė¸íęą°ë ėŦėŠ ėŦëĄëĨŧ ë ė ė´í´í ė ėėĩëë¤.
- - í´ëš ėšė
ė ėė ëļëļė ë§íŦëĨŧ ėļę°íëė§ íė¸íėėė¤.
+* ë꡸ëŦė´ ë§ėė´ ë ë¤ëŠ´, ëŦ¸ė ė¤ëĒ
ë§ė 기ë°ėŧëĄ ė§ė **ėė ëĨŧ ë§ë¤ė´**ëŗŧ ėë ėėĩëë¤. íė§ë§, ė´ë ėę°ė´ ë§ė´ 깸ëĻ´ ė ėėŧë¯ëĄ, ë¨ŧė ė§ëŦ¸ė ëĒ
íí í´ëŦëŧęŗ ėė˛íë ę˛ė´ ėĸėĩëë¤.
- - ëšė ė ė¸ė´ëĄ [ëŦ¸ė ë˛ėíëë°](https://github.com/fastapi/fastapi/blob/master/docs/en/docs/contributing.md#translations){.internal-link target=_blank} 기ėŦí ë.
+### í´ę˛°ėą
ė ėí기
- - ëí ë¤ëĨ¸ ėŦėŠėę° ë§ë ë˛ėė ę˛í íëë° ëėė ė¤ ėë ėėĩëë¤.
+* ė§ëŦ¸ė ėļŠëļí ė´í´í íėë ę°ëĨí **ëĩëŗ**ė ė ęŗĩí ė ėėĩëë¤.
- - ėëĄė´ ëŦ¸ėė ėšė
ė ė ėí ë.
+* ë§ė ę˛Ŋė°, ė§ëŦ¸ėė **ęˇŧëŗ¸ė ė¸ ëŦ¸ė ë ėŦėŠ ėŦëĄ**ëĨŧ ė´í´íë ę˛ė´ ė¤ėíŠëë¤. ꡸ë¤ė´ ėëíë ë°Šë˛ëŗ´ë¤ ë ëė í´ę˛°ėą
ė´ ėė ė ė기 ëëŦ¸ė
ëë¤.
- - ę¸°ėĄ´ ëŦ¸ė /ë˛ęˇ¸ëĨŧ ėė í ë.
+### í´ę˛° ėė˛í기
- - ėëĄė´ featureëĨŧ ėļę°í ë.
+ė§ëŦ¸ėę° ëĩëŗė íė¸íęŗ ë늴, ëšė ė´ ëŦ¸ė ëĨŧ í´ę˛°íė ę°ëĨėąė´ ëėĩëë¤. ėļííŠëë¤, **ëšė ė ėė
ė
ëë¤**! đϏ
- ## ėąí
ė ė°¸ėŦíėėė¤
+* ė´ė ëŦ¸ė ëĨŧ í´ę˛°íë¤ëŠ´, ė§ëŦ¸ėėę˛ ë¤ėė ėė˛í ė ėėĩëë¤.
- đĨ [ëė¤ėŊë ėąí
ėë˛](https://discord.gg/VQjSZaeJmf) đĨ ė ę°ė
íęŗ FastAPI ėģ¤ëޤëí°ėė ë¤ëĨ¸ ėŦëë¤ęŗŧ ė´ė¸ëĻŦė¸ė.
+ * GitHub ëė¤ėģ¤ė
ėė: ëę¸ė **ëĩëŗ**ėŧëĄ íėíëëĄ ėė˛íė¸ė.
+ * GitHub ė´ėėė: ė´ėëĨŧ **ëĢėëŦëŧęŗ ** ėė˛íė¸ė.
- /// tip
+## GitHub ė ėĨė ëŗ´ę¸°
- ė§ëŦ¸ė´ ėë ę˛Ŋė°, [GitHub ė´ė ](https://github.com/fastapi/fastapi/issues/new/choose) ėė ė§ëŦ¸íėėė¤, [FastAPI ė ëŦ¸ę°](https://github.com/fastapi/fastapi/blob/master/docs/en/docs/fastapi-people.md#experts) ė ëėė ë°ė ę°ëĨėąė´ ëėĩëë¤{.internal-link target=_blank} .
+GitHubėė FastAPIëĨŧ "watch"í ė ėėĩëë¤ (ė¤ëĨ¸ėĒŊ ėë¨ watch ë˛íŧė í´ëĻ): https://github.com/fastapi/fastapi. đ
- ///
+"Releases only" ëė "Watching"ė ė íí늴, ėëĄė´ ė´ėë ė§ëŦ¸ė´ ėėąë ë ėëĻŧė ë°ė ė ėėĩëë¤. ëí, íšė íę˛ ėëĄė´ ė´ė, ëė¤ėģ¤ė
, PR ëąë§ ėëĻŧ ë°ëëĄ ė¤ė í ėë ėėĩëë¤.
- ```
- ë¤ëĨ¸ ėŧë°ė ė¸ ëíėėë§ ėąí
ė ėŦėŠíėėė¤.
- ```
+ęˇ¸ë° ë¤ė ė´ë° ė´ėë¤ė í´ę˛° í ė ėëëĄ ëėė ė¤ ė ėėĩëë¤.
- ę¸°ėĄ´ [ė§í° ėąí
](https://gitter.im/fastapi/fastapi) ė´ ėė§ë§ ėąëęŗŧ ęŗ ę¸ę¸°ëĨė´ ėė´ė ëíëĨŧ íę¸°ę° ėĄ°ę¸ ė´ë ĩ기 ëëŦ¸ė ė§ę¸ė ëė¤ėŊëę° ęļėĨëë ėė¤í
ė
ëë¤.
+## ė´ė ėėąí기
- ### ė§ëŦ¸ė ėí´ ėąí
ė ėŦėŠíė§ ë§ėėė¤
+GitHub ė ėĨėė ėëĄė´ ė´ė ėėąė í ė ėėĩëë¤, ėëĨŧë¤ëŠ´ ë¤ėęŗŧ ę°ėĩëë¤:
- ėąí
ė ë ë§ė "ėė ëĄė´ ëí"ëĨŧ íėŠí기 ëëŦ¸ė, ëëŦ´ ėŧë°ė ė¸ ė§ëŦ¸ė´ë ëëĩí기 ė´ë ¤ė´ ė§ëŦ¸ė ėŊę˛ ė§ëŦ¸ė í ė ėėŧë¯ëĄ, ëĩëŗė ë°ė§ ëĒģí ė ėėĩëë¤.
+* **ė§ëŦ¸**ė íęą°ë **ëŦ¸ė **ė ëí´ ė§ëŦ¸íŠëë¤.
+* ėëĄė´ **기ëĨ**ė ė ė íŠëë¤.
- GitHub ė´ėėėė í
íëĻŋė ėŦë°ëĨ¸ ė§ëŦ¸ė ėėąíëëĄ ėë´íėŦ ë ėŊę˛ ėĸė ëĩëŗė ėģęą°ë ė§ëŦ¸í기 ė ė ė¤ė¤ëĄ ëŦ¸ė ëĨŧ í´ę˛°í ėë ėėĩëë¤. ꡸ëĻŦęŗ GitHubėėë ėę°ė´ ėĄ°ę¸ ęą¸ëĻŦëëŧë íė ëǍë ę˛ė ëĩí ė ėėĩëë¤. ėąí
ėė¤í
ėėë ę°ė¸ė ėŧëĄ ęˇ¸ë ę˛ í ė ėėĩëë¤. đ
+**ė°¸ęŗ **: ë§ėŊ ė´ėëĨŧ ėėąíë¤ëŠ´, ė ë ėŦëŦëļėę˛ ë¤ëĨ¸ ėŦëë¤ė ëėëŦëŧęŗ ëļíí ę˛ė
ëë¤. đ
- ėąí
ėė¤í
ėėė ëí ëí GitHubėė ė˛ëŧ ėŊę˛ ę˛ėí ė ė기 ëëŦ¸ė ëí ė¤ė ė§ëŦ¸ęŗŧ ëĩëŗė´ ėė¤ë ė ėėĩëë¤. ꡸ëĻŦęŗ GitHub ė´ėė ėë ę˛ë§ [FastAPI ė ëŦ¸ę°](https://github.com/fastapi/fastapi/blob/master/docs/en/docs/fastapi-people.md#experts)ę° ëë ę˛ėŧëĄ ę°ėŖŧëë¯ëĄ{.internal-link target=_blank} , GitHub ė´ėėė ë ë§ė ę´ėŦė ë°ė ę˛ė
ëë¤.
+## Pull Requests ëĻŦ롰í기
- ë°ëŠ´, ėąí
ėė¤í
ėë ėė˛ ëĒ
ė ėŦėŠėę° ė기 ëëŦ¸ė, ęą°ė íė ëí ėëëĨŧ ė°žė ę°ëĨėąė´ ëėĩëë¤. đ
+ë¤ëĨ¸ ėŦëë¤ė pull requestëĨŧ ëĻŦ롰íë ë° ëėė ė¤ ė ėėĩëë¤.
- ## ę°ë°ė ė¤í°ėę° ëėėė¤
+ë¤ė íë˛ ë§íė§ë§, ėĩëí ėšė íę˛ ëĻŦëˇ°í´ ėŖŧė¸ė. đ¤
- [GitHub ė¤í°ė](https://github.com/sponsors/tiangolo) ëĨŧ íĩí´ ę°ë°ėëĨŧ ę˛Ŋė ė ėŧëĄ ė§ėí ė ėėĩëë¤.
+---
- ę°ėŦíë¤ë ë§ëĄ ėģ¤íŧëĨŧ âī¸ íė ėŦė¤ ė ėėĩëë¤. đ
+Pull RrquestëĨŧ ëĻŦ롰í ë ęŗ ë ¤í´ėŧ í ėŦíęŗŧ ë°Šë˛ė ë¤ėęŗŧ ę°ėĩëë¤:
- ëí FastAPIė ė¤ë˛ ëë ęŗ¨ë ė¤í°ėę° ë ė ėėĩëë¤. đ
đ
+### ëŦ¸ė ė´í´í기
- ## FastAPIëĨŧ ę°ííë ëęĩŦė ė¤í°ėę° ëėėė¤
+* ë¨ŧė , í´ëš pull requestę° í´ę˛°íë ¤ë **ëŦ¸ė ëĨŧ ė´í´íëė§** íė¸íė¸ė. GitHub ëė¤ėģ¤ė
ëë ė´ėėė ë 긴 ë
ŧėę° ėėė ėë ėėĩëë¤.
- ëŦ¸ėėė ëŗ´ėë¯ė´, FastAPIë Starletteęŗŧ Pydantic ëŧë ęą°ė¸ė ė´ęš¨ė íęŗ ėėĩëë¤.
+* Pull requestę° íėíė§ ėė ę°ëĨėąë ėėĩëë¤. **ë¤ëĨ¸ ë°Šė**ėŧëĄ ëŦ¸ė ëĨŧ í´ę˛°í ė ėë¤ëŠ´, ꡸ ë°Šë˛ė ė ėíęą°ë ė§ëŦ¸í ė ėėĩëë¤.
- ë¤ėė ė¤í°ėę° ë ė ėėĩëë¤
+### ė¤íėŧė ëëŦ´ ė ę˛Ŋ ė°ė§ ė기
- - [Samuel Colvin (Pydantic)](https://github.com/sponsors/samuelcolvin)
- - [Encode (Starlette, Uvicorn)](https://github.com/sponsors/encode)
+* ėģ¤ë° ëŠėė§ ė¤íėŧ ę°ė ę˛ė ëëŦ´ ė ę˛Ŋ ė°ė§ ėėë ëŠëë¤. ė ë ė§ė ėģ¤ë°ė ėė íėŦ squash and mergeëĨŧ ėíí ę˛ė
ëë¤.
- ------
+* ėŊë ė¤íėŧ ęˇėšë ęąąė í íė ėėĩëë¤. ė´ë¯¸ ėëíë ëęĩŦë¤ė´ ė´ëĨŧ ę˛ėŦíęŗ ėėĩëë¤.
- ę°ėŦíŠëë¤! đ
+ė¤íėŧė´ë ėŧę´ėą ę´ë ¨ ėė˛ė´ íėí ę˛Ŋė°, ė ę° ė§ė ėė˛íęą°ë íėí ëŗę˛Ŋ ėŦíė ėļę° ėģ¤ë°ėŧëĄ ėė í ę˛ė
ëë¤.
+
+### ėŊë íė¸í기
+
+* ėŊëëĨŧ ėŊęŗ , **ë
ŧëĻŦė ėŧëĄ íëš**íė§ íė¸í í ëĄėģŦėė ė¤ííėŦ ëŦ¸ė ę° í´ę˛°ëëė§ íė¸íė¸ė.
+
+* ęˇ¸ë° ë¤ė, íė¸íë¤ęŗ **ëę¸**ė ë¨ę˛¨ ėŖŧė¸ė. ꡸ëėŧ ė ę° ę˛í íėė ė ė ėėĩëë¤.
+
+/// info
+
+ëļííë, ė ę° ë¨ėí ėŦëŦ ę°ė ėšė¸ë§ėŧëĄ PRė ė ëĸ°í ėë ėėĩëë¤.
+
+3ę°, 5ę° ė´ėė ėšė¸ė´ ëŦëϰ PRė´ ė¤ė ëĄë ęš¨ė ¸ ėęą°ë, ë˛ęˇ¸ę° ėęą°ë, ėŖŧėĨíë ëŦ¸ė ëĨŧ í´ę˛°íė§ ëĒģíë ę˛Ŋė°ę° ėŦëŦ ë˛ ėėėĩëë¤. đ
+
+ë°ëŧė, ė ë§ëĄ ėŊëëĨŧ ėŊęŗ ė¤íí ë¤, ëę¸ëĄ íė¸ ë´ėŠė ë¨ę˛¨ ėŖŧë ę˛ė´ ë§¤ė° ė¤ėíŠëë¤. đ¤
+
+///
+
+* PRė ë ë¨ėíę˛ ë§ë¤ ė ėë¤ëŠ´ ꡸ë ę˛ ėė˛í ė ėė§ë§, ëëŦ´ ęšë¤ëĄė¸ íėë ėėĩëë¤. ėŖŧę´ė ė¸ ę˛Ŧí´ę° ë§ė´ ėė ė ė기 ëëŦ¸ė
ëë¤ (꡸ëĻŦęŗ ė ë ė ę˛Ŧí´ę° ėė ęą°ėė đ). ë°ëŧė íĩėŦė ė¸ ëļëļė ė§ė¤íë ę˛ė´ ėĸėĩëë¤.
+
+### í
ė¤í¸
+
+* PRė **í
ė¤í¸**ę° íŦí¨ëė´ ėëė§ íė¸íë ë° ëėė ėŖŧė¸ė.
+
+* PRė ė ėŠí기 ė ė í
ė¤í¸ę° **ė¤í¨**íëė§ íė¸íė¸ė. đ¨
+
+* PRė ė ėŠí í í
ė¤í¸ę° **íĩęŗŧ**íëė§ íė¸íė¸ė. â
+
+* ë§ė PRėë í
ė¤í¸ę° ėėĩëë¤. í
ė¤í¸ëĨŧ ėļę°íëëĄ **ė기**ėėŧė¤ ėë ėęŗ , ė§ė í
ė¤í¸ëĨŧ **ė ė**í ėë ėėĩëë¤. ė´ë ėę°ė´ ë§ė´ ėėëë ëļëļ ė¤ íëė´ëа, ꡸ ëļëļė ë§ė´ ëėė¤ ė ėėĩëë¤.
+
+* ꡸ëĻŦęŗ ėëí ë´ėŠė ëę¸ëĄ ë¨ę˛¨ėŖŧė¸ė. ꡸ëŦ늴 ė ę° íė¸íë¤ë 깸 ė ė ėėĩëë¤. đ¤
+
+## Pull RequestëĨŧ ë§ëėėė¤
+
+Pull RequestsëĨŧ ė´ėŠíėŦ ėė¤ėŊëė [ėģ¨í¸ëĻŦ롰í¸](contributing.md){.internal-link target=\_blank} í ė ėėĩëë¤. ėëĨŧ ë¤ëŠ´ ë¤ėęŗŧ ę°ėĩëë¤:
+
+* ëŦ¸ėėė ë°ę˛Ŧí ė¤íëĨŧ ėė í ë.
+* FastAPI ę´ë ¨ ëŦ¸ė, ëšëė¤ ëë íėēė¤í¸ëĨŧ ėėąíęą°ë ë°ę˛ŦíėŦ ė´ íėŧė í¸ė§íėŦ ęŗĩė í ë.
+ * í´ëš ėšė
ė ėė ëļëļė ë§íŦëĨŧ ėļę°í´ėŧ íŠëë¤.
+* ëšė ė ė¸ė´ëĄ [ëŦ¸ė ë˛ėíëë°](contributing.md#translations){.internal-link target=\_blank} 기ėŦí ë.
+ * ë¤ëĨ¸ ėŦëė´ ėėąí ë˛ėė ę˛í íë ę˛ë ëė¸ ė ėėĩëë¤.
+* ėëĄė´ ëŦ¸ėė ėšė
ė ė ėí ë.
+* ę¸°ėĄ´ ëŦ¸ė /ë˛ęˇ¸ëĨŧ ėė í ë.
+ * í
ė¤í¸ëĨŧ ë°ëė ėļę°í´ėŧ íŠëë¤.
+* ėëĄė´ featureëĨŧ ėļę°í ë.
+ * í
ė¤í¸ëĨŧ ë°ëė ėļę°í´ėŧ íŠëë¤.
+ * ę´ë ¨ ëŦ¸ėę° íėíë¤ëŠ´ ë°ëė ėļę°í´ėŧ íŠëë¤.
+
+## FastAPI ė ė§ ę´ëĻŦė ëė ėŖŧ기
+
+**FastAPI**ė ė ė§ ę´ëĻŦëĨŧ ëėėŖŧė¸ė! đ¤
+
+í ėŧė´ ë§ęŗ , ꡸ ė¤ ëëļëļė **ėŦëŦëļ**ė´ í ė ėėĩëë¤.
+
+ė§ę¸ í ė ėë ėŖŧė ėė
ė:
+
+* [GitHubėė ë¤ëĨ¸ ėŦëë¤ė ė§ëŦ¸ė ëė ėŖŧ기](#github_1){.internal-link target=_blank} (ėė ėšė
ė ė°¸ėĄ°íė¸ė).
+* [Pull Request ëĻŦ롰í기](#pull-requests){.internal-link target=_blank} (ėė ėšė
ė ė°¸ėĄ°íė¸ė).
+
+ė´ ë ėė
ė´ **ę°ėĨ ë§ė ėę°ė ėëǍ**íë ėŧė
ëë¤. ꡸ę˛ė´ FastAPI ė ė§ ę´ëĻŦė ėŖŧė ėė
ė
ëë¤.
+
+ė´ ėė
ė ëėėŖŧė ë¤ëŠ´, **FastAPI ė ė§ ę´ëĻŦė ëėė ėŖŧë ę˛**ė´ëа ꡸ę˛ė´ **ë ëš ëĨ´ęŗ ë ė ë°ė íë ę˛**ė ëŗ´ėĨíë ę˛ė
ëë¤. đ
+
+## ėąí
ė ė°¸ėŦíėėė¤
+
+đĨ ëė¤ėŊë ėąí
ėë˛ đĨ ė ę°ė
íęŗ FastAPI ėģ¤ëޤëí°ėė ë¤ëĨ¸ ėŦëë¤ęŗŧ ė´ė¸ëĻŦė¸ė.
+
+/// tip
+
+ė§ëŦ¸ė´ ėë ę˛Ŋė°, GitHub ëė¤ėģ¤ė
ėė ė§ëŦ¸íėėė¤, [FastAPI Experts](fastapi-people.md#fastapi-experts){.internal-link target=_blank} ė ëėė ë°ė ę°ëĨėąė´ ëėĩëë¤.
+
+ë¤ëĨ¸ ėŧë°ė ė¸ ëíėėë§ ėąí
ė ėŦėŠíėėė¤.
+
+///
+
+### ė§ëŦ¸ė ėí´ ėąí
ė ėŦėŠíė§ ë§ėėė¤
+
+ėąí
ė ë ë§ė "ėė ëĄė´ ëí"ëĨŧ íėŠí기 ëëŦ¸ė, ëëŦ´ ėŧë°ė ė¸ ė§ëŦ¸ė´ë ëëĩí기 ė´ë ¤ė´ ė§ëŦ¸ė ėŊę˛ ė§ëŦ¸ė í ė ėėŧë¯ëĄ, ëĩëŗė ë°ė§ ëĒģí ė ėėĩëë¤.
+
+GitHub ė´ėėėė í
íëĻŋė ėŦë°ëĨ¸ ė§ëŦ¸ė ėėąíëëĄ ėë´íėŦ ë ėŊę˛ ėĸė ëĩëŗė ėģęą°ë ė§ëŦ¸í기 ė ė ė¤ė¤ëĄ ëŦ¸ė ëĨŧ í´ę˛°í ėë ėėĩëë¤. ꡸ëĻŦęŗ GitHubėėë ėę°ė´ ėĄ°ę¸ ęą¸ëĻŦëëŧë íė ëǍë ę˛ė ëĩí ė ėėĩëë¤. ėąí
ėė¤í
ėėë ę°ė¸ė ėŧëĄ ęˇ¸ë ę˛ í ė ėėĩëë¤. đ
+
+ėąí
ėė¤í
ėėė ëí ëí GitHubėė ė˛ëŧ ėŊę˛ ę˛ėí ė ė기 ëëŦ¸ė ëí ė¤ė ė§ëŦ¸ęŗŧ ëĩëŗė´ ėė¤ë ė ėėĩëë¤. ꡸ëĻŦęŗ GitHub ė´ėė ėë ę˛ë§ [FastAPI Expert](fastapi-people.md#fastapi-experts){.internal-link target=_blank}ę° ëë ę˛ėŧëĄ ę°ėŖŧëë¯ëĄ, GitHub ė´ėėė ë ë§ė ę´ėŦė ë°ė ę˛ė
ëë¤.
+
+ë°ëŠ´, ėąí
ėė¤í
ėë ėė˛ ëĒ
ė ėŦėŠėę° ė기 ëëŦ¸ė, ęą°ė íė ëí ėëëĨŧ ė°žė ę°ëĨėąė´ ëėĩëë¤. đ
+
+## ę°ë°ė ė¤í°ėę° ëėėė¤
+
+GitHub ė¤í°ė ëĨŧ íĩí´ ę°ë°ėëĨŧ ę˛Ŋė ė ėŧëĄ ė§ėí ė ėėĩëë¤.
+
+ę°ėŦíë¤ë ë§ëĄ ėģ¤íŧëĨŧ âī¸ íė ėŦė¤ ė ėėĩëë¤. đ
+
+ëí FastAPIė ė¤ë˛ ëë ęŗ¨ë ė¤í°ėę° ë ė ėėĩëë¤. đ
đ
+
+## FastAPIëĨŧ ę°ííë ëęĩŦė ė¤í°ėę° ëėėė¤
+
+ëŦ¸ėėė ëŗ´ėë¯ė´, FastAPIë Starletteęŗŧ Pydantic ëŧë ęą°ė¸ė ė´ęš¨ė íęŗ ėėĩëë¤.
+
+ë¤ėė ė¤í°ėę° ë ė ėėĩëë¤
+
+* Samuel Colvin (Pydantic)
+* Encode (Starlette, Uvicorn)
+
+---
+
+ę°ėŦíŠëë¤! đ
diff --git a/docs/ko/docs/index.md b/docs/ko/docs/index.md
index 8b00d90bc5..0df2000faa 100644
--- a/docs/ko/docs/index.md
+++ b/docs/ko/docs/index.md
@@ -11,15 +11,18 @@
FastAPI íë ėėíŦ, ęŗ ėąëĨ, ę°í¸í íėĩ, ëš ëĨ¸ ėŊë ėėą, ė¤ëšë íëĄëė
---
diff --git a/docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md
new file mode 100644
index 0000000000..ff174937de
--- /dev/null
+++ b/docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md
@@ -0,0 +1,275 @@
+# yieldëĨŧ ėŦėŠíë ėėĄ´ėą
+
+FastAPIë ėė
ėëŖ í ėļę° ë¨ęŗëĨŧ ėííë ėėĄ´ėąė ė§ėíŠëë¤.
+
+ė´ëĨŧ ęĩŦííë ¤ëŠ´ `return` ëė `yield`ëĨŧ ėŦėŠíęŗ , ėļę°ëĄ ė¤íí ë¨ęŗ (ėŊë)ëĨŧ ꡸ ë¤ė ėėąíė¸ė.
+
+/// tip | í
+
+ę° ėėĄ´ėąë§ë¤ `yield`ë í ë˛ë§ ėŦėŠí´ėŧ íŠëë¤.
+
+///
+
+/// note | 기ė ė¸ëļėŦí
+
+ë¤ėęŗŧ í¨ęģ ėŦėŠí ė ėë ëǍë í¨ė:
+
+* `@contextlib.contextmanager` ëë
+* `@contextlib.asynccontextmanager`
+
+ë **FastAPI**ė ėėĄ´ėąėŧëĄ ėŦėŠí ė ėėĩëë¤.
+
+ėŦė¤, FastAPIë ë´ëļė ėŧëĄ ė´ ë ë°ėŊë ė´í°ëĨŧ ėŦėŠíŠëë¤.
+
+///
+
+## `yield`ëĨŧ ėŦėŠíë ë°ė´í°ë˛ ė´ė¤ ėėĄ´ėą
+
+ėëĨŧ ë¤ė´, ė´ ę¸°ëĨė ėŦėŠí늴 ë°ė´í°ë˛ ė´ė¤ ė¸ė
ė ėėąíęŗ ėė
ė´ ëë íė ė¸ė
ė ėĸ
ëŖí ė ėėĩëë¤.
+
+ėëĩė ėėąí기 ė ėë `yield`ëŦ¸ė íŦí¨íėŦ ꡸ ė´ė ė ėŊëë§ė´ ė¤íëŠëë¤:
+
+{* ../../docs_src/dependencies/tutorial007.py hl[2:4] *}
+
+yieldë ę°ė *ę˛ŊëĄ ėė
* ë° ë¤ëĨ¸ ėėĄ´ėąë¤ė ėŖŧė
ëë ę° ė
ëë¤:
+
+{* ../../docs_src/dependencies/tutorial007.py hl[4] *}
+
+`yield`ëŦ¸ ë¤ėė ėŊëë ėëĩė ėėąí í ëŗ´ë´ę¸° ė ė ė¤íëŠëë¤:
+
+{* ../../docs_src/dependencies/tutorial007.py hl[5:6] *}
+
+/// tip | í
+
+`async` í¨ėė ėŧë° í¨ė ëǍë ėŦėŠí ė ėėĩëë¤.
+
+**FastAPI**ë ėŧë° ėėĄ´ėąęŗŧ ë§ė°Ŧę°ė§ëĄ ę°ę°ė í¨ėëĨŧ ėŦë°ëĨ´ę˛ ė˛ëĻŦí ę˛ė
ëë¤.
+
+///
+
+## `yield`ė `try`ëĨŧ ėŦėŠíë ėėĄ´ėą
+
+`yield`ëĨŧ ėŦėŠíë ėėĄ´ėąėė `try` ë¸ëĄė ėŦėŠíë¤ëŠ´, ėėĄ´ėąė ėŦėŠíë ëė¤ ë°ėí ëǍë ėė¸ëĨŧ ë°ė ė ėėĩëë¤.
+
+ėëĨŧ ë¤ė´, ë¤ëĨ¸ ėėĄ´ėąė´ë *ę˛ŊëĄ ėė
*ė ė¤ę°ė ë°ė´í°ë˛ ė´ė¤ í¸ëėė
"륤밹"ė´ ë°ėíęą°ë ë¤ëĨ¸ ė¤ëĨę° ë°ėíë¤ëŠ´, í´ëš ėė¸ëĨŧ ėėĄ´ėąėė ë°ė ė ėėĩëë¤.
+
+ë°ëŧė, ėėĄ´ėą ë´ėė `except SomeException`ė ėŦėŠíėŦ íšė ėė¸ëĨŧ ė˛ëĻŦí ė ėėĩëë¤.
+
+ë§ė°Ŧę°ė§ëĄ, `finally`ëĨŧ ėŦėŠíėŦ ėė¸ ë°ė ėŦëļė ę´ęŗ ėė´ ėĸ
ëŖ ë¨ęŗęš ė¤íëëëĄ í ė ėėĩëë¤.
+
+{* ../../docs_src/dependencies/tutorial007.py hl[3,5] *}
+
+## `yield`ëĨŧ ėŦėŠíë íė ėėĄ´ėą
+
+ëǍë íŦ기ė ííė íė ėėĄ´ėąęŗŧ íė ėėĄ´ėąė "í¸ëĻŦ"ë ę°ė§ ė ėėŧ늰, ė´ë¤ ëǍëę° `yield`ëĨŧ ėŦėŠí ė ėėĩëë¤.
+
+**FastAPI**ë `yield`ëĨŧ ėŦėŠíë ę° ėėĄ´ėąė "ėĸ
ëŖ ėŊë"ę° ėŦë°ëĨ¸ ėėëĄ ė¤íëëëĄ ëŗ´ėĨíŠëë¤.
+
+ėëĨŧ ë¤ė´, `dependency_c`ë `dependency_b`ė ėėĄ´í ė ėęŗ , `dependency_b`ë `dependency_a`ė ėėĄ´í ė ėėĩëë¤.
+
+{* ../../docs_src/dependencies/tutorial008_an_py39.py hl[6,14,22] *}
+
+ė´ë¤ ëǍëë `yield`ëĨŧ ėŦėŠí ė ėėĩëë¤.
+
+ė´ ę˛Ŋė° `dependency_c`ë ėĸ
ëŖ ėŊëëĨŧ ė¤íí기 ėí´, `dependency_b`ė ę° (ėŦ기ėë `dep_b`ëĄ ëĒ
ëĒ
)ė´ ėŦė í ėŦėŠ ę°ëĨí´ėŧ íŠëë¤.
+
+꡸ëĻŦęŗ , `dependency_b`ë ėĸ
ëŖ ėŊëëĨŧ ėí´ `dependency_a`ė ę° (ėŦ기ėë `dep_a`ëĄ ëĒ
ëĒ
) ė´ ėŦėŠ ę°ëĨí´ėŧ íŠëë¤.
+
+{* ../../docs_src/dependencies/tutorial008_an_py39.py hl[18:19,26:27] *}
+
+ę°ė ë°ŠėėŧëĄ, `yield`ëĨŧ ėŦėŠíë ėėĄ´ėąęŗŧ `return`ė ėŦėŠíë ėėĄ´ėąė í¨ęģ ėŦėŠí ė ėėŧ늰, ė´ë¤ ė¤ ėŧëļę° ë¤ëĨ¸ ę˛ë¤ė ėėĄ´í ė ėėĩëë¤.
+
+꡸ëĻŦęŗ `yield`ëĨŧ ėŦėŠíë ë¤ëĨ¸ ėŦëŦ ėėĄ´ėąė íėëĄ íë ë¨ėŧ ėėĄ´ėąė ę°ė§ ėë ėėĩëë¤.
+
+ėíë ėėĄ´ėąė ėíë ëëĄ ėĄ°íŠí ė ėėĩëë¤.
+
+**FastAPI**ë ëǍë ę˛ė´ ėŦë°ëĨ¸ ėėëĄ ė¤íëëëĄ ëŗ´ėĨíŠëë¤.
+
+/// note | 기ė ė¸ëļėŦí
+
+íė´ėŦė Context Managers ëëļė ė´ ę¸°ëĨė´ ėëíŠëë¤.
+
+**FastAPI**ë ė´ëĨŧ ë´ëļė ėŧëĄ ėģ¨í
ė¤í¸ ę´ëĻŦėëĨŧ ėŦėŠíėŦ ęĩŦííŠëë¤.
+
+///
+
+## `yield`ė `HTTPException`ëĨŧ ėŦėŠíë ėėĄ´ėą
+
+`yield`ė `try` ë¸ëĄė´ ėë ėėĄ´ėąė ėŦėŠíėŦ ėė¸ëĨŧ ė˛ëĻŦí ė ėë¤ë ę˛ė ėę˛ ëėėĩëë¤.
+
+ę°ė ë°ŠėėŧëĄ, `yield` ė´íė ėĸ
ëŖ ėŊëėė `HTTPException`ė´ë ė ėŦí ėė¸ëĨŧ ë°ėėíŦ ė ėėĩëë¤.
+
+/// tip | í
+
+ė´ë ë¤ė ęŗ ę¸ ę¸°ė ė´ëа, ëëļëļė ę˛Ŋė° ę˛ŊëĄ ė°ė° í¨ė ëą ëë¨¸ė§ ė íëĻŦėŧė´ė
ėŊë ë´ëļėė ėė¸ (`HTTPException` íŦí¨)ëĨŧ ë°ėėíŦ ė ėėŧë¯ëĄ ė¤ė ëĄë íėíė§ ėė ę˛ė
ëë¤.
+
+íė§ë§ íėí ę˛Ŋė° ėŦėŠí ė ėėĩëë¤. đ¤
+
+///
+
+{* ../../docs_src/dependencies/tutorial008b_an_py39.py hl[18:22,31] *}
+
+ėė¸ëĨŧ ė˛ëĻŦíęŗ (ëë ėļę°ëĄ ë¤ëĨ¸ `HTTPException`ė ë°ėėí¤ę¸° ėí´) ėŦėŠí ė ėë ë ë¤ëĨ¸ ë°Šë˛ė [ėŦėŠė ė ė ėė¸ ė˛ëĻŦ기](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}ëĨŧ ėėąíë ę˛ ė
ëë¤.
+
+## `yield`ė `except`ëĨŧ ėŦėŠíë ėėĄ´ėą
+
+`yield`ëĨŧ ėŦėŠíë ėėĄ´ėąėė `except`ëĨŧ ėŦėŠíėŦ ėė¸ëĨŧ íŦė°Šíęŗ ėė¸ëĨŧ ë¤ė ë°ėėí¤ė§ ėęą°ë (ëë ė ėė¸ëĨŧ ë°ėėí¤ė§ ėėŧ늴), FastAPIë í´ëš ėė¸ę° ë°ėíëė§ ė ė ėėĩëë¤. ė´ë ėŧë°ė ė¸ Python ë°Šėęŗŧ ëėŧíŠëë¤:
+
+{* ../../docs_src/dependencies/tutorial008c_an_py39.py hl[15:16] *}
+
+ė´ ę˛Ŋė°, `HTTPException`ė´ë ė ėŦí ėė¸ëĨŧ ë°ėėí¤ė§ ė기 ëëŦ¸ė í´ëŧė´ė¸í¸ë HTTP 500 Internal Server Error ėëĩė ëŗ´ę˛ ëė§ë§, ėë˛ë ė´ë¤ ė¤ëĨę° ë°ėíëė§ė ëí **ëĄęˇ¸**ë ë¤ëĨ¸ íėëĨŧ ė í ę°ė§ė§ ėę˛ ëŠëë¤. đą
+
+### `yield`ė `except`ëĨŧ ėŦėŠíë ėėĄ´ėąėė íė `raise` í기
+
+`yield`ę° ėë ėėĄ´ėąėė ėė¸ëĨŧ ėĄėė ëë `HTTPException`ė´ë ė ėŦí ėė¸ëĨŧ ėëĄ ë°ėėí¤ė§ ėë í, ë°ëė ėëė ėė¸ëĨŧ ë¤ė ë°ėėėŧėŧ íŠëë¤.
+
+`raise`ëĨŧ ėŦėŠíėŦ ëėŧí ėė¸ëĨŧ ë¤ė ë°ėėíŦ ė ėėĩëë¤:
+
+{* ../../docs_src/dependencies/tutorial008d_an_py39.py hl[17] *}
+
+ė´ė í´ëŧė´ė¸í¸ë ëėŧí *HTTP 500 Internal Server Error* ė¤ëĨ ėëĩė ë°ę˛ ëė§ë§, ėë˛ ëĄęˇ¸ėë ėŦėŠė ė ė ėė¸ė¸ `InternalError"ę° ę¸°ëĄëŠëë¤. đ
+
+## `yield`ëĨŧ ėŦėŠíë ėėĄ´ėąė ė¤í ėė
+
+ė¤í ėėë ėë ë¤ė´ė´ęˇ¸ë¨ęŗŧ ęą°ė ëšėˇíŠëë¤. ėę°ė ėėė ėëëĄ íëĻ
ëë¤. ꡸ëĻŦęŗ ę° ė´ė ėí¸ ėėŠíęą°ë ėŊëëĨŧ ė¤ííë ëļëļ ė¤ íëė
ëë¤.
+
+```mermaid
+sequenceDiagram
+
+participant client as Client
+participant handler as Exception handler
+participant dep as Dep with yield
+participant operation as Path Operation
+participant tasks as Background tasks
+
+ Note over client,operation: Can raise exceptions, including HTTPException
+ client ->> dep: Start request
+ Note over dep: Run code up to yield
+ opt raise Exception
+ dep -->> handler: Raise Exception
+ handler -->> client: HTTP error response
+ end
+ dep ->> operation: Run dependency, e.g. DB session
+ opt raise
+ operation -->> dep: Raise Exception (e.g. HTTPException)
+ opt handle
+ dep -->> dep: Can catch exception, raise a new HTTPException, raise other exception
+ end
+ handler -->> client: HTTP error response
+ end
+
+ operation ->> client: Return response to client
+ Note over client,operation: Response is already sent, can't change it anymore
+ opt Tasks
+ operation -->> tasks: Send background tasks
+ end
+ opt Raise other exception
+ tasks -->> tasks: Handle exceptions in the background task code
+ end
+```
+
+/// info | ė ëŗ´
+
+í´ëŧė´ė¸í¸ė **íëė ėëĩ** ë§ ė ėĄëŠëë¤. ė´ë ė¤ëĨ ėëĩ ė¤ íëėŧ ėë ėęŗ ,*ę˛ŊëĄ ėė
*ėė ėėąë ėëĩėŧ ėë ėėĩëë¤.
+
+ė´ëŦí ėëĩ ė¤ íëę° ė ėĄë íėë ë¤ëĨ¸ ėëĩė ëŗ´ëŧ ė ėėĩëë¤.
+
+///
+
+/// tip | í
+
+ė´ ë¤ė´ė´ęˇ¸ë¨ė `HTTPException`ė ëŗ´ėŦėŖŧė§ë§, `yield`ëĨŧ ėŦėŠíë ėėĄ´ėąėė ė˛ëĻŦí ėė¸ë [ėŦėŠė ė ė ėė¸ė˛ëĻŦ기](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}.ëĨŧ ėŦėŠíėŦ ė˛ëĻŦí ë¤ëĨ¸ ėė¸ë ë°ėėíŦ ė ėėĩëë¤.
+
+ė´ë¤ ėė¸ę° ë°ėíë , `HTTPException`ė íŦí¨íėŦ yieldëĨŧ ėŦėŠíë ėėĄ´ėąėŧëĄ ė ëŦëŠëë¤. ëëļëļė ę˛Ŋė° ėė¸ëĨŧ ë¤ė ë°ėėí¤ęą°ë ėëĄė´ ėė¸ëĨŧ ë°ėėėŧėŧ íŠëë¤.
+
+///
+
+## `yield`, `HTTPException`, `except` ë° ë°ąęˇ¸ëŧė´ë ėė
ė ėŦėŠíë ėėĄ´ėą
+
+/// warning | ę˛Ŋęŗ
+
+ė´ëŦí 기ė ė ė¸ëļ ėŦíė ëëļëļ íėíė§ ėėŧë¯ëĄ ė´ ėšė
ė ęą´ëë°ęŗ ėëėė ęŗė ė§íí´ë ëŠëë¤.
+
+ė´ëŦí ė¸ëļ ė ëŗ´ë ėŖŧëĄ FastAPI 0.106.0 ė´ė ë˛ė ėė `yield`ę° ėë ėėĄ´ėąė ëĻŦėė¤ëĨŧ 밹꡸ëŧė´ë ėė
ėė ėŦėŠíë ę˛Ŋė°ëŠ ė ėŠíŠëë¤.
+
+///
+
+### `yield`ė `except`ëĨŧ ėŦėŠíë ėėĄ´ėą, 기ė ė¸ëļėŦí
+
+FastAPI 0.110.0 ė´ė ėë `yield`ę° íŦí¨ë ėėĄ´ėąė ėŦėŠí í í´ëš ėėĄ´ėąėė `except`ę° íŦí¨ë ėė¸ëĨŧ ėēĄė˛íęŗ ë¤ė ėė¸ëĨŧ ë°ėėí¤ė§ ėėŧ늴 ėė¸ę° ėëėŧëĄ ėė¸ í¸ë¤ëŦ ëë ë´ëļ ėë˛ ė¤ëĨ í¸ë¤ëŦëĄ ë°ė/ė ëŦëėėĩëë¤.
+
+ė´ë ė˛ëĻŦ기 ėė´ ė ëŦë ėė¸(ë´ëļ ėë˛ ė¤ëĨ)ėė ė˛ëĻŦëė§ ėė ëŠëǍëĻŦ ėëšëĨŧ ėė íęŗ ėŧë° íė´ėŦ ėŊëė ëėęŗŧ ėŧėšíëëĄ í기 ėí´ 0.110.0 ë˛ė ėė ëŗę˛Ŋëėėĩëë¤.
+
+### 밹꡸ëŧė´ë ėė
ęŗŧ `yield`ëĨŧ ėŦėŠíë ėėĄ´ėą, 기ė ė¸ëļėŦí
+
+FastAPI 0.106.0 ė´ė ėë `yield` ė´íė ėė¸ëĨŧ ë°ėėí¤ë ę˛ė´ ëļę°ëĨíėĩëë¤. `yield`ę° ėë ėėĄ´ėą ėĸ
ëŖ ėŊëë ėëĩė´ ė ėĄë ė´íė ė¤íëė기 ëëŦ¸ė, [ėė¸ ė˛ëĻŦ기](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}ę° ė´ë¯¸ ė¤íë ėíėėĩëë¤.
+
+ė´ë ėŖŧëĄ ë°ąęˇ¸ëŧė´ë ėė
ë´ėė ėėĄ´ėąėė "yieldë" ëėŧí ę°ė˛´ëĨŧ ėŦėŠí ė ėëëĄ í기 ėí´ ė´ë° ë°ŠėėŧëĄ ė¤ęŗëėėĩëë¤. ėĸ
ëŖ ėŊëë 밹꡸ëŧė´ë ėė
ė´ ėëŖë íė ė¤íëė기 ëëŦ¸ė
ëë¤
+
+íė§ë§ ė´ë ę˛ í늴 ëĻŦėė¤ëĨŧ ëļíėíę˛ ėëŗ´í ėėĄ´ėą(ė: ë°ė´í°ë˛ ė´ė¤ ė°ę˛°)ėė ëŗ´ė í늴ė ėëĩė´ ë¤í¸ėíŦëĨŧ íĩí´ ė´ëí ëęšė§ 기ë¤ëĻŦë ę˛ė ė미í기 ëëŦ¸ė FastAPI 0.106.0ėė ëŗę˛Ŋëėėĩëë¤.
+
+/// tip | í
+
+ëí 밹꡸ëŧė´ë ėė
ė ėŧë°ė ėŧëĄ ė랴 ëĻŦėė¤(ė: ė랴 ë°ė´í°ë˛ ė´ė¤ ė°ę˛°)ëĨŧ ėŦėŠíėŦ ëŗëëĄ ė˛ëĻŦí´ėŧ íë ë
ëĻŊė ė¸ ëĄė§ ė§íŠė
ëë¤.
+
+ë°ëŧė ė´ë ę˛ í늴 ėŊëę° ë ęšëí´ė§ëë¤.
+
+///
+
+ë§ėŊ ė´ė ė ė´ëŦí ëėė ėėĄ´íë¤ëŠ´, ė´ė ë 밹꡸ëŧė´ë ėė
ë´ëļėė 밹꡸ëŧė´ë ėė
ė ėí ëĻŦėė¤ëĨŧ ėėąíęŗ , `yield`ę° ėë ėėĄ´ėąė ëĻŦėė¤ė ėėĄ´íė§ ėë ë°ė´í°ë§ ë´ëļė ėŧëĄ ėŦėŠí´ėŧíŠëë¤.
+
+ėëĨŧ ë¤ė´, ëėŧí ë°ė´í°ë˛ ė´ė¤ ė¸ė
ė ėŦėŠíë ëė , 밹꡸ëŧė´ë ėė
ë´ëļėė ėëĄė´ ë°ė´í°ë˛ ė´ė¤ ė¸ė
ė ėėąíęŗ ė´ ėëĄė´ ė¸ė
ė ėŦėŠíėŦ ë°ė´í°ë˛ ė´ė¤ėė ę°ė˛´ëĨŧ ę°ė ¸ėėŧ íŠëë¤. ꡸ëĻŦęŗ ë°ė´í°ë˛ ė´ė¤ ę°ė˛´ëĨŧ 밹꡸ëŧė´ë ėė
í¨ėė 매ę°ëŗėëĄ ė§ė ė ëŦíë ëė , í´ëš ę°ė˛´ė IDëĨŧ ė ëŦí ë¤ė 밹꡸ëŧė´ë ėė
í¨ė ë´ëļėė ę°ė˛´ëĨŧ ë¤ė ę°ė ¸ėėŧ íŠëë¤
+
+## ėģ¨í
ė¤í¸ ę´ëĻŦė
+
+### "ėģ¨í
ė¤í¸ ę´ëĻŦė"ë?
+
+"ėģ¨í
ė¤í¸ ę´ëĻŦė"ë Pythonėė `with` ëŦ¸ėė ėŦėŠí ė ėë ëǍë ę°ė˛´ëĨŧ ė미íŠëë¤.
+
+ėëĨŧ ë¤ė´, `with`ëĨŧ ėŦėŠíėŦ íėŧė ėŊė ė ėėĩëë¤:
+
+```Python
+with open("./somefile.txt") as f:
+ contents = f.read()
+ print(contents)
+```
+
+ë´ëļė ėŧëĄ `open("./somefile.txt")` ë "ėģ¨í
ė¤í¸ ę´ëĻŦė(Context Manager)"ëŧęŗ ëļëĻŦë ę°ė˛´ëĨŧ ėėąíŠëë¤.
+
+`with` ë¸ëĄė´ ëë늴, ėė¸ę° ë°ėíëëŧë íėŧė ëĢëëĄ ëŗ´ėĨíŠëë¤.
+
+`yield`ę° ėë ėėĄ´ėąė ėėąí늴 **FastAPI**ë ë´ëļė ėŧëĄ ė´ëĨŧ ėí ėģ¨í
ė¤í¸ 매ëė ëĨŧ ėėąíęŗ ë¤ëĨ¸ ę´ë ¨ ëęĩŦë¤ęŗŧ 결íŠíŠëë¤.
+
+### `yield`ëĨŧ ėŦėŠíë ėėĄ´ėąėė ėģ¨í
ė¤í¸ ę´ëĻŦė ėŦėŠí기
+
+/// warning | ę˛Ŋęŗ
+
+ė´ę˛ė ė´ë ė ë "ęŗ ę¸" ę°ë
ė
ëë¤.
+
+**FastAPI**ëĨŧ ė˛ė ėėíë ę˛Ŋė° ė§ę¸ė ė´ ëļëļė ęą´ëë°ė´ë ėĸėĩëë¤.
+
+///
+
+Pythonėėë ë¤ėė íĩí´ ėģ¨í
ė¤í¸ ę´ëĻŦėëĨŧ ėėąí ė ėėĩëë¤. ë ę°ė§ ëŠėëę° ėë í´ëė¤ëĨŧ ėėąíŠëë¤: `__enter__()` and `__exit__()`.
+
+**FastAPI**ė `yield`ę° ėë ėėĄ´ėą ë´ėė
+`with` ëë `async with`ëŦ¸ė ėŦėŠíėŦ ė´ë¤ė íėŠí ė ėėĩëë¤:
+
+{* ../../docs_src/dependencies/tutorial010.py hl[1:9,13] *}
+
+/// tip | í
+
+ėģ¨í
ė¤í¸ ę´ëĻŦėëĨŧ ėėąíë ë ë¤ëĨ¸ ë°Šë˛ė ë¤ėęŗŧ ę°ėĩëë¤:
+
+* `@contextlib.contextmanager` ëë
+* `@contextlib.asynccontextmanager`
+
+ė´ë¤ė ë¨ėŧ `yield`ę° ėë í¨ėëĨŧ ęž¸ë¯¸ë ë° ėŦėŠíŠëë¤.
+
+ė´ę˛ė´ **FastAPI**ę° `yield`ę° ėë ėėĄ´ėąė ėí´ ë´ëļė ėŧëĄ ėŦėŠíë ë°Šėė
ëë¤.
+
+íė§ë§ FastAPI ėėĄ´ėąėë ė´ëŦí ë°ėŊë ė´í°ëĨŧ ėŦėŠí íėę° ėėĩëë¤(꡸ëĻŦęŗ ėŦėŠí´ėë ėëŠëë¤).
+
+FastAPIę° ë´ëļė ėŧëĄ ė´ëĨŧ ė˛ëĻŦí´ ė¤ ę˛ė
ëë¤.
+
+///
diff --git a/docs/ko/docs/tutorial/extra-models.md b/docs/ko/docs/tutorial/extra-models.md
new file mode 100644
index 0000000000..8e45590613
--- /dev/null
+++ b/docs/ko/docs/tutorial/extra-models.md
@@ -0,0 +1,223 @@
+# ėļę° ëǍë¸
+
+ė§ë ėė ė ė´ė´ė, ė°ę´ë ëǍë¸ė ėŦëŦę° ę°ë ę˛ė íí ėŧė
ëë¤.
+
+íší ėŦėŠė ëǍë¸ė ę˛Ŋė°ė ꡸ëŦíë°, ėëí늴:
+
+* **ė
ë Ĩ ëǍë¸** ė ëšë°ë˛í¸ëĨŧ ę°ė ¸ėŧ íŠëë¤.
+* **ėļë Ĩ ëǍë¸** ė ëšë°ë˛í¸ëĨŧ ę°ė§ëŠ´ ėëŠëë¤.
+* **ë°ė´í°ë˛ ė´ė¤ ëǍë¸** ė í´ėė˛ëĻŦë ëšë°ë˛í¸ëĨŧ ę°ė§ ę˛ė
ëë¤.
+
+/// danger | ėí
+
+ė ë ėŦėŠėė ëšë°ë˛í¸ëĨŧ íëŦ¸ėŧëĄ ė ėĨíė§ ë§ė¸ė. íė ė´íė ę˛ėĻ ę°ëĨí "ėė í í´ė(secure hash)"ëĄ ė ėĨíė¸ė.
+
+ë§ėŊ ė´ę˛ ëŦ´ėė¸ė§ ëǍëĨ´ę˛ ë¤ëŠ´, [security chapters](security/simple-oauth2.md#password-hashing){.internal-link target=_blank}.ėė ëšë°ë˛í¸ í´ėė ëí´ ë°°ė¸ ė ėėĩëë¤.
+
+///
+
+## ë¤ė¤ ëǍë¸
+
+ėëë ëšë°ë˛í¸ íëė í´ëš íëę° ėŦėŠëë ėėšëĨŧ íŦí¨íėŦ, ę° ëǍë¸ë¤ė´ ė´ë¤ ííëĨŧ ę°ė§ ė ėëė§ ė ë°ė ė¸ ėėė
ëë¤:
+
+{* ../../docs_src/extra_models/tutorial001_py310.py hl[7,9,14,20,22,27:28,31:33,38:39] *}
+
+
+/// info | ė ëŗ´
+
+Pydantic v1ėėë í´ëš ëŠėëę° `.dict()`ëĄ ëļë ¸ėŧ늰, Pydantic v2ėėë `.model_dump()`ëĄ ė´ëĻė´ ëŗę˛Ŋëėėĩëë¤. `.dict()`ë ėŦė í ė§ėëė§ë§ ë ė´ė ęļėĨëė§ ėėĩëë¤.
+
+ėŦ기ėė ėŦėŠíë ėė ë Pydantic v1ęŗŧė í¸íėąė ėí´ `.dict()`ëĨŧ ėŦėŠíė§ë§, Pydantic v2ëĨŧ ėŦėŠí ė ėë¤ëŠ´ `.model_dump()`ëĨŧ ėŦėŠíë ę˛ė´ ėĸėĩëë¤.
+
+///
+
+### `**user_in.dict()` ė ëíėŦ
+
+#### Pydanticė `.dict()`
+
+`user_in`ė Pydantic ëĒ¨ë¸ í´ëė¤ė¸ `UserIn`ė
ëë¤.
+
+Pydantic ëǍë¸ė ëĒ¨ë¸ ë°ė´í°ëĨŧ íŦí¨í `dict`ëĨŧ ë°ííë `.dict()` ëŠėëëĨŧ ė ęŗĩíŠëë¤.
+
+ë°ëŧė, ë¤ėęŗŧ ę°ė´ Pydantic ę°ė˛´ `user_in`ė ėėąí ė ėėĩëë¤:
+
+```Python
+user_in = UserIn(username="john", password="secret", email="john.doe@example.com")
+```
+
+꡸ ë¤ė, ë¤ėęŗŧ ę°ė´ í¸ėļíŠëë¤:
+
+```Python
+user_dict = user_in.dict()
+```
+
+ė´ė ëŗė `user_dict`ė ë°ė´í°ę° íŦí¨ë `dict`ëĨŧ ę°ė§ę˛ ëŠëë¤(ė´ë Pydantic ëĒ¨ë¸ ę°ė˛´ę° ėë `dict`ė
ëë¤).
+
+꡸ëĻŦęŗ ë¤ėęŗŧ ę°ė´ í¸ėļí늴:
+
+```Python
+print(user_dict)
+```
+
+Pythonė `dict`ę° ë¤ėęŗŧ ę°ė´ ėļë ĨëŠëë¤:
+
+```Python
+{
+ 'username': 'john',
+ 'password': 'secret',
+ 'email': 'john.doe@example.com',
+ 'full_name': None,
+}
+```
+
+#### `dict` ė¸í¨íš(Unpacking)
+
+`user_dict`ė ę°ė `dict`ëĨŧ í¨ė(ëë í´ëė¤)ė `**user_dict`ëĄ ė ëŦí늴, Pythonė ė´ëĨŧ "ė¸íŠ(unpack)"íŠëë¤. ė´ ęŗŧė ėė `user_dict`ė í¤ė ę°ė ę°ę° í¤-ę° ė¸ėëĄ ė§ė ė ëŦíŠëë¤.
+
+ë°ëŧė, ėėė ėėąí `user_dict`ëĨŧ ėŦėŠíėŦ ë¤ėęŗŧ ę°ė´ ėėąí늴:
+
+```Python
+UserInDB(**user_dict)
+```
+
+ë¤ėęŗŧ ę°ė 결ęŗŧëĨŧ ėėąíŠëë¤:
+
+```Python
+UserInDB(
+ username="john",
+ password="secret",
+ email="john.doe@example.com",
+ full_name=None,
+)
+```
+
+íšė ë ė íí ë§íė늴, `user_dict`ëĨŧ ė§ė ėŦėŠíë ę˛ė, ëė¤ė ė´ë¤ ę°ė´ ėļę°ëëëŧë ėëė ëėŧí í¨ęŗŧëĨŧ ë
ëë¤:
+
+```Python
+UserInDB(
+ username = user_dict["username"],
+ password = user_dict["password"],
+ email = user_dict["email"],
+ full_name = user_dict["full_name"],
+)
+```
+
+#### ë¤ëĨ¸ ëĒ¨ë¸ ë°ė´í°ëĄ ė Pydantic ëĒ¨ë¸ ėėą
+
+ėė ėė ėė `user_in.dict()`ëĄëļí° `user_dict`ëĨŧ ėėąí ę˛ė˛ëŧ, ėë ėŊëë:
+
+```Python
+user_dict = user_in.dict()
+UserInDB(**user_dict)
+```
+
+ë¤ėęŗŧ ëėŧíŠëë¤:
+
+```Python
+UserInDB(**user_in.dict())
+```
+
+...ėëí늴 `user_in.dict()`ë `dict`ė´ëа, ė´ëĨŧ `**`ëĄ Pythonė´ "ė¸íŠ(unpack)"íëëĄ íėŦ `UserInDB`ė ė ëŦí기 ëëŦ¸ė
ëë¤.
+
+ë°ëŧė, ë¤ëĨ¸ Pydantic ëǍë¸ė ë°ė´í°ëĨŧ ėŦėŠíėŦ ėëĄė´ Pydantic ëǍë¸ė ėėąí ė ėėĩëë¤.
+
+#### `dict` ė¸í¨íš(Unpacking)ęŗŧ ėļę° í¤ėë
+
+꡸ëĻŦęŗ ë¤ėęŗŧ ę°ė´ ėļę° í¤ėë ė¸ė `hashed_password=hashed_password`ëĨŧ ėļę°í늴:
+
+```Python
+UserInDB(**user_in.dict(), hashed_password=hashed_password)
+```
+
+ë¤ėęŗŧ ę°ė 결ęŗŧëĨŧ ėėąíŠëë¤:
+
+```Python
+UserInDB(
+ username = user_dict["username"],
+ password = user_dict["password"],
+ email = user_dict["email"],
+ full_name = user_dict["full_name"],
+ hashed_password = hashed_password,
+)
+```
+
+/// warning | ę˛Ŋęŗ
+
+ėļę°ė ėŧëĄ ė ęŗĩë í¨ė `fake_password_hasher`ė `fake_save_user`ë ë°ė´í° íëĻė ėė°í기 ėí ėė ėŧ ëŋė´ëа, ė¤ė ëŗ´ėė ė ęŗĩíė§ ėėĩëë¤.
+
+///
+
+## ė¤ëŗĩ ė¤ė´ę¸°
+
+ėŊë ė¤ëŗĩė ė¤ė´ë ę˛ė **FastAPI**ė íĩėŦ ėė´ëė´ ė¤ íëė
ëë¤.
+
+ėŊë ė¤ëŗĩė ë˛ęˇ¸, ëŗ´ė ëŦ¸ė , ėŊë ëšë기í ëŦ¸ė (í ęŗŗė ė
ë°ė´í¸ëėė§ë§ ë¤ëĨ¸ ęŗŗė ė
ë°ė´í¸ëė§ ėë ëŦ¸ė ) ëąė ę°ëĨėąė ėĻę°ėíĩëë¤.
+
+꡸ëĻŦęŗ ė´ ëǍë¸ë¤ė ë§ė ë°ė´í°ëĨŧ ęŗĩė í늴ė ėėą ė´ëĻęŗŧ íė
ė ė¤ëŗĩíęŗ ėėĩëë¤.
+
+ë ëė ë°Šë˛ė´ ėėĩëë¤.
+
+`UserBase` ëǍë¸ė ė ė¸íėŦ ë¤ëĨ¸ ëǍë¸ë¤ė ę¸°ëŗ¸(base)ėŧëĄ ėŦėŠí ė ėėĩëë¤. ęˇ¸ë° ë¤ė ė´ ëǍë¸ė ėėë°ė ėėąęŗŧ íė
ė ė¸(ė í ė ė¸, ę˛ėĻ ëą)ė ėėíë ėë¸í´ëė¤ëĨŧ ë§ë¤ ė ėėĩëë¤.
+
+ëǍë ë°ė´í° ëŗí, ę˛ėĻ, ëŦ¸ėí ëąė ė ėė ėŧëĄ ėëí ę˛ė
ëë¤.
+
+ė´ë ę˛ í늴 ę° ëĒ¨ë¸ ę°ė ė°¨ė´ė ë§ ė ė¸í ė ėėĩëë¤(íëŦ¸ `password`ę° ėë ę˛Ŋė°, `hashed_password`ë§ ėë ę˛Ŋė°, íšė ëšë°ë˛í¸ę° ėë ę˛Ŋė°):
+
+{* ../../docs_src/extra_models/tutorial002_py310.py hl[7,13:14,17:18,21:22] *}
+
+## `Union` ëë `anyOf`
+
+ë ę°ė§ ė´ėė íė
ė íŦí¨íë `Union`ėŧëĄ ėëĩė ė ė¸í ė ėėĩëë¤. ė´ë ėëĩė´ ęˇ¸ ė¤ íëė íė
ėŧ ė ėėė ė미íŠëë¤.
+
+OpenAPIėėë ė´ëĨŧ `anyOf`ëĄ ė ėíŠëë¤.
+
+ė´ëĨŧ ėí´ íė¤ Python íė
íí¸ė¸ `typing.Union`ė ėŦėŠí ė ėėĩëë¤:
+
+/// note | ė°¸ęŗ
+
+`Union`ė ė ėí ëë ë ęĩŦ랴ė ė¸ íė
ė ë¨ŧė íŦí¨íęŗ , ë ęĩŦ랴ė ė¸ íė
ė ꡸ ë¤ė ëė´í´ėŧíŠëë¤. ėë ėė ėėë `Union[PlaneItem, CarItem]` ëĨŧ ëŗ´ëŠ´, ë ęĩŦ랴ė ė¸ `PlaneItem`ė´ `CarItem`ëŗ´ë¤ ėė ėėšíŠëë¤.
+
+///
+
+{* ../../docs_src/extra_models/tutorial003_py310.py hl[1,14:15,18:20,33] *}
+
+
+### Python 3.10ėė `Union`
+
+ėė ėė ėėë `response_model` ė¸ė ę°ėŧëĄ `Union[PlaneItem, CarItem]`ė ė ëŦíŠëë¤.
+
+ė´ ę˛Ŋė°, ė´ëĨŧ **íė
ė´ë
¸í
ė´ė
(type annotation)** ė´ ėë **ė¸ė ę°(argument value)** ėŧëĄ ė ëŦíęŗ ė기 ëëŦ¸ė Python 3.10ėėë `Union`ė ėŦėŠí´ėŧ íŠëë¤.
+
+ë§ėŊ íė
ė´ë
¸í
ė´ė
ė ėŦėŠíë¤ëŠ´, ë¤ėęŗŧ ę°ė´ ėė§ ë§ë(|)ëĨŧ ėŦėŠí ė ėėĩëë¤:
+
+```Python
+some_variable: PlaneItem | CarItem
+```
+
+íė§ë§ ė´ëĨŧ `response_model=PlaneItem | CarItem`ęŗŧ ę°ė´ í ëší늴 ėëŦę° ë°ėíŠëë¤. ė´ë Pythonė´ ė´ëĨŧ íė
ė´ë
¸í
ė´ė
ėŧëĄ í´ėíė§ ėęŗ , `PlaneItem`ęŗŧ `CarItem` ėŦė´ė **ėëĒģë ė°ė°(invalid operation)**ė ėëí기 ëëŦ¸ė
ëë¤
+
+## ëĒ¨ë¸ ëĻŦė¤í¸
+
+ë§ė°Ŧę°ė§ëĄ, ę°ė˛´ ëĻŦė¤í¸ ííė ėëĩė ė ė¸í ėë ėėĩëë¤.
+
+ė´ëĨŧ ėí´ íė¤ Pythonė `typing.List`ëĨŧ ėŦėŠíė¸ė(ëë Python 3.9 ė´ėėėë ë¨ėí `list`ëĨŧ ėŦėŠí ė ėėĩëë¤):
+
+{* ../../docs_src/extra_models/tutorial004_py39.py hl[18] *}
+
+
+## ėėė `dict` ėëĩ
+
+Pydantic ëǍë¸ė ėŦėŠíė§ ėęŗ , í¤ė ę°ė íė
ë§ ė ė¸íėŦ íë˛í ėėė `dict`ëĄ ėëĩė ė ė¸í ėë ėėĩëë¤.
+
+ė´ë Pydantic ëǍë¸ė íėí ė í¨í íë/ėėą ė´ëĻė ėŦė ė ė ė ėë ę˛Ŋė°ė ė ėŠíŠëë¤.
+
+ė´ ę˛Ŋė°, `typing.Dict`ëĨŧ ėŦėŠí ė ėėĩëë¤(ëë Python 3.9 ė´ėėėë ë¨ėí `dict`ëĨŧ ėŦėŠí ė ėėĩëë¤):
+
+{* ../../docs_src/extra_models/tutorial005_py39.py hl[6] *}
+
+
+## ėėŊ
+
+ėŦëŦ Pydantic ëǍë¸ė ėŦėŠíęŗ , ę° ę˛Ŋė°ė ë§ę˛ ėė ëĄę˛ ėėíė¸ė.
+
+ėí°í°ę° ėëĄ ë¤ëĨ¸ "ėí"ëĨŧ ę°ė ¸ėŧ íë ę˛Ŋė°, ėí°í°ëš ë¨ėŧ ë°ė´í° ëǍë¸ė ėŦėŠí íėë ėėĩëë¤. ėëĨŧ ë¤ė´, ėŦėŠė "ėí°í°"ę° `password`, `password_hash`, ëë ëšë°ë˛í¸ę° ėë ėíëĨŧ íŦí¨í ė ėë ę˛Ŋė°ė˛ëŧ ë§ė
ëë¤.
diff --git a/docs/ko/docs/tutorial/security/oauth2-jwt.md b/docs/ko/docs/tutorial/security/oauth2-jwt.md
new file mode 100644
index 0000000000..d8bac8346b
--- /dev/null
+++ b/docs/ko/docs/tutorial/security/oauth2-jwt.md
@@ -0,0 +1,273 @@
+# í¨ė¤ėë í´ėąė ė´ėŠí OAuth2, JWT í í°ė ėŦėŠíë Bearer ė¸ėĻ
+
+ëǍë ëŗ´ė íëĻė ęĩŦėąíėŧë¯ëĄ, ė´ė JWT í í°ęŗŧ í¨ė¤ėë í´ėąė ėŦėŠí´ ė íëĻŦėŧė´ė
ė ėė íę˛ ë§ë¤ ę˛ė
ëë¤.
+
+ė´ ėŊëë ė¤ė ëĄ ė íëĻŦėŧė´ė
ėė í¨ė¤ėëëĨŧ í´ėąíėŦ DBė ė ėĨíë ëąė ėė
ė íėŠí ė ėėĩëë¤.
+
+ė´ė ėĨė ė´ė´ė ėėí´ ë´
ėë¤.
+
+## JWT
+
+JWT ë "JSON Web Tokens" ė ė미íŠëë¤.
+
+JSON ę°ė˛´ëĨŧ ęŗĩë°ąė´ ėë 긴 ëŦ¸ėė´ëĄ ė¸ėŊëŠíë íė¤ė´ëа, ë¤ėęŗŧ ę°ė ííė
ëë¤:
+
+```
+eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
+```
+
+JWTë ėí¸íëė§ ėė ëęĩŦë ė§ í í°ėė ė ëŗ´ëĨŧ ëŗĩėí ė ėėĩëë¤.
+
+íė§ë§ JWTë ėëĒ
ëė´ ėėĩëë¤. ꡸ëė ėė ė´ ë°ę¸í í í°ė ë°ėė ë, ė¤ė ëĄ ėė ė´ ë°ę¸íę˛ ë§ëė§ ę˛ėĻí ė ėėĩëë¤.
+
+ë§ëŖ 기ę°ė´ ėŧėŖŧėŧė¸ í í°ė ë°ííë¤ęŗ ę°ė í´ ë´
ėë¤. ë¤ė ë ėŦėŠėę° í í°ė ę°ė ¸ėė ë, ꡸ ėŦėŠėę° ėė¤í
ė ėŦė í ëĄęˇ¸ė¸ëė´ ėë¤ë ę˛ė ė ė ėėĩëë¤.
+
+ėŧėŖŧėŧ ë¤ėë í í°ė´ ë§ëŖë ę˛ė´ęŗ , ėŦėŠėë ė¸ę°ëė§ ėė ė í í°ė ë°ę¸° ėí´ ë¤ė ëĄęˇ¸ė¸í´ėŧ í ę˛ė
ëë¤. ë§ėŊ ėŦėŠė(ëë ė 3ė)ę° í í°ė ėė íęą°ë ë§ëŖėŧė ëŗę˛Ŋí늴, ėëĒ
ė´ ėŧėšíė§ ė기 ëëŦ¸ė ėėėą ė ėė ę˛ė
ëë¤.
+
+ë§ėŊ JWT í í°ė ë¤ë¤ëŗ´ęŗ , ėë ë°Šėë ėėëŗ´ęŗ ėļë¤ëŠ´ https://jwt.io ė íė¸íėėė¤.
+
+## `PyJWT` ė¤ėš
+
+íė´ėŦėŧëĄ JWT í í°ė ėėąíęŗ ę˛ėĻíë ¤ëŠ´ `PyJWT` ëĨŧ ė¤ėší´ėŧ íŠëë¤.
+
+[ę°ėíę˛Ŋ](../../virtual-environments.md){.internal-link target=_blank} ė ë§ë¤ęŗ íėąíí ë¤ė `pyjwt` ëĨŧ ė¤ėšíėėė¤:
+
+
+
+ė´ė ęŗŧ ę°ė ë°Šë˛ėŧëĄ ė íëĻŦėŧė´ė
ė ė¸ėĻíėėė¤.
+
+ë¤ė ė¸ėĻ ė ëŗ´ëĨŧ ėŦėŠíėėė¤:
+
+Username: `johndoe`
+Password: `secret`
+
+/// check
+
+ėŊë ė´ëėë íëŦ¸ í¨ė¤ėë "`secret`" ė´ ėë¤ë ė ė ė ėíėėė¤. í´ėë ë˛ė ë§ ėėĩëë¤.
+
+///
+
+
+
+`/users/me/` ëĨŧ í¸ėļí늴 ë¤ėęŗŧ ę°ė ėëĩė ėģė ė ėėĩëë¤:
+
+```JSON
+{
+ "username": "johndoe",
+ "email": "johndoe@example.com",
+ "full_name": "John Doe",
+ "disabled": false
+}
+```
+
+
+
+ę°ë°ė ëęĩŦëĨŧ ė´ė´ëŗ´ëŠ´ ė ėĄë ë°ė´í°ė í í°ë§ íŦí¨ë ę˛ė íė¸í ė ėėĩëë¤. í¨ė¤ėëë ėŦėŠėëĨŧ ė¸ėĻíęŗ ėĄė¸ė¤ í í°ė ë°ę¸° ėí ė˛Ģ ë˛ė§¸ ėė˛ėë§ ė ėĄë늰, ė´íėë ė ėĄëė§ ėėĩëë¤:
+
+
+
+/// note
+
+`Bearer `ëĄ ėėíë `Authorization` í¤ëė ėŖŧëĒŠíėėė¤.
+
+///
+
+## `scopes` ė ęŗ ę¸ ėŦėŠë˛
+
+OAuth2ë "ė¤ėŊí(scopes)" ëŧë ę°ë
ė ę°ęŗ ėėĩëë¤.
+
+ė´ëĨŧ ėŦėŠíėŦ JWT í í°ė íšė ęļí ė§íŠė ėļę°í ė ėėĩëë¤.
+
+꡸ í ė´ í í°ė ėŦėŠėėę˛ ė§ė ė ęŗĩíęą°ë ė 3ėėę˛ ė ęŗĩíėŦ, íšė ė íėŦí íėėë APIė íĩė íëëĄ í ė ėėĩëë¤.
+
+**FastAPI** ėėė ėŦėŠ ë°Šë˛ęŗŧ íĩíŠ ë°Šėė **ėŦí ėŦėŠė ėë´ė** ėė ėė¸í ë°°ė¸ ė ėėĩëë¤.
+
+## ėėŊ
+
+ė§ę¸ęšė§ ė´í´ëŗ¸ ë´ėŠė ë°íėŧëĄ, OAuth2ė JWT ę°ė íė¤ė ėŦėŠíėŦ ėė í **FastAPI** ė íëĻŦėŧė´ė
ė ë§ë¤ ė ėėĩëë¤.
+
+ęą°ė ëǍë íë ėėíŦėė ëŗ´ė ė˛ëĻŦë ėëší ëŗĩėĄí ėŖŧė ė
ëë¤.
+
+ė´ëĨŧ ë¨ėííë ë§ė í¨í¤ė§ë ë°ė´í° ëǍë¸, ë°ė´í°ë˛ ė´ė¤, ėŦėŠ ę°ëĨí 기ëĨë¤ė ëí´ ėŦëŦ ė ėŊė´ ėėĩëë¤. ꡸ëĻŦęŗ ė§ëėšę˛ ë¨ėííë ėŧëļ í¨í¤ė§ë¤ė ėŦę°í ëŗ´ė 결í¨ė ę°ė§ ėë ėėĩëë¤.
+
+---
+
+**FastAPI** ë ė´ë¤ ë°ė´í°ë˛ ė´ė¤, ë°ė´í° ëǍë¸, ëęĩŦë ę°ėíė§ ėėĩëë¤.
+
+íëĄė í¸ė ę°ėĨ ė íŠí ę˛ė ė íí ė ėë ė ė°ėąė ė ęŗĩíŠëë¤.
+
+꡸ëĻŦęŗ `passlib` ė `PyJWT` ė˛ëŧ ė ę´ëĻŦëęŗ ëëĻŦ ėŦėŠëë í¨í¤ė§ë¤ė ë°ëĄ ėŦėŠí ė ėėĩëë¤. **FastAPI** ë ė¸ëļ í¨í¤ė§ íĩíŠė ėí´ ëŗĩėĄí ëŠėģ¤ëėĻė´ íėíė§ ė기 ëëŦ¸ė
ëë¤.
+
+꡸ëŦë ė ė°ėą, ę˛Ŧęŗ ėą, ëŗ´ėėąė í´ėšė§ ėėŧ늴ė ęŗŧė ė ë¨ėíí ė ėë ëęĩŦë¤ė ė ęŗĩíŠëë¤.
+
+꡸ëĻŦęŗ OAuth2ė ę°ė íė¤ íëĄí ėŊė ëšęĩė ę°ë¨í ë°Šë˛ėŧëĄ ęĩŦííęŗ ėŦėŠí ė ėėĩëë¤.
+
+ë ė¸ëļíë ęļí 랴ęŗëĨŧ ėí´ OAuth2ė "ė¤ėŊí"ëĨŧ ėŦėŠíë ë°Šë˛ė **ėŦí ėŦėŠė ėë´ė**ėė ë ėė¸í ë°°ė¸ ė ėėĩëë¤. OAuth2ė ė¤ėŊíë ė 3ė ė íëĻŦėŧė´ė
ė´ ėŦėŠėëĨŧ ëė í´ ęˇ¸ë¤ė APIė ėí¸ėėŠíëëĄ ęļíė ëļėŦí기 ėí´, Facebook, Google, GitHub, Microsoft, Twitter ëąė ë§ė ëí ė¸ėĻ ė ęŗĩė
랴ë¤ė´ ėŦėŠíë ëŠėģ¤ëėĻė
ëë¤.
diff --git a/docs/ko/docs/tutorial/security/simple-oauth2.md b/docs/ko/docs/tutorial/security/simple-oauth2.md
index ddc7430af8..f10c4f588d 100644
--- a/docs/ko/docs/tutorial/security/simple-oauth2.md
+++ b/docs/ko/docs/tutorial/security/simple-oauth2.md
@@ -32,7 +32,7 @@ OAuth2ë (ė°ëĻŦę° ėŦėŠíęŗ ėë) "í¨ė¤ėë íëĄė°"ė ėŦėŠí
* `instagram_basic`ė íė´ė¤ëļ/ė¸ė¤í꡸ë¨ėė ėŦėŠíŠëë¤.
* `https://www.googleapis.com/auth/drive`ë Googleėė ėŦėŠíŠëë¤.
-/// ė ëŗ´
+/// info | ė ëŗ´
OAuth2ėė "ë˛ė"ë íėí íšė ęļíė ė ė¸íë ëŦ¸ėė´ė
ëë¤.
@@ -61,7 +61,7 @@ OAuth2ė ę˛Ŋė° ëŦ¸ėė´ėŧ ëŋė
ëë¤.
* `scope`ë ė íė ė¸ íëëĄ ęŗĩë°ąėŧëĄ ęĩŦëļë ëŦ¸ėė´ëĄ ęĩŦėąë í° ëŦ¸ėė´ė
ëë¤.
* `grant_type`(ė íė ėŧëĄ ėŦėŠ).
-/// í
+/// tip | í
OAuth2 ėŦėė ė¤ė ëĄ `password`ëŧë ęŗ ė ę°ė´ ėë `grant_type` íëëĨŧ *ėęĩŦ*íė§ë§ `OAuth2PasswordRequestForm`ė ė´ëĨŧ ę°ėíė§ ėėĩëë¤.
@@ -72,7 +72,7 @@ OAuth2 ėŦėė ė¤ė ëĄ `password`ëŧë ęŗ ė ę°ė´ ėë `grant_type`
* `client_id`(ė íė ėŧëĄ ėŦėŠ) (ėė ėėë íėíė§ ėėĩëë¤).
* `client_secret`(ė íė ėŧëĄ ėŦėŠ) (ėė ėėë íėíė§ ėėĩëë¤).
-/// ė ëŗ´
+/// info | ė ëŗ´
`OAuth2PasswordRequestForm`ė `OAuth2PasswordBearer`ė ę°ė´ **FastAPI**ė ëí íšė í´ëė¤ę° ėëëë¤.
@@ -86,7 +86,7 @@ OAuth2 ėŦėė ė¤ė ëĄ `password`ëŧë ęŗ ė ę°ė´ ėë `grant_type`
### íŧ ë°ė´í° ėŦėŠí기
-/// í
+/// tip | í
ėĸ
ėėą í´ëė¤ `OAuth2PasswordRequestForm`ė ė¸ė¤í´ė¤ėë ęŗĩë°ąėŧëĄ ęĩŦëļë 긴 ëŦ¸ėė´ė´ ėë `scope` ėėąė´ ėęŗ ëė ė ėĄë ę° ë˛ėė ëí ė¤ė ëŦ¸ėė´ ëĒŠëĄė´ ėë `scopes` ėėąė´ ėėĩëë¤.
@@ -126,7 +126,7 @@ OAuth2 ėŦėė ė¤ė ëĄ `password`ëŧë ęŗ ė ę°ė´ ėë `grant_type`
ë°ëŧė í´ėģ¤ë ë¤ëĨ¸ ėė¤í
ėė ëėŧí ėí¸ëĨŧ ėŦėŠíë ¤ęŗ ėëí ė ėėĩëë¤(ë§ė ėŦėŠėę° ëǍë ęŗŗėė ëėŧí ėí¸ëĨŧ ėŦėŠíë¯ëĄ ė´ë ėíí ė ėėĩëë¤).
-//// tab | Píė´ėŦ 3.7 ė´ė
+//// tab | íė´ėŦ 3.7 ė´ė
{* ../../docs_src/security/tutorial003.py hl[80:83] *}
@@ -150,7 +150,7 @@ UserInDB(
)
```
-/// ė ëŗ´
+/// info | ė ëŗ´
`**user_dict`ė ëí ėė¸í ė¤ëĒ
ė [**ėļę° ëǍë¸** ëŦ¸ė](../extra-models.md#about-user_indict){.internal-link target=_blank}ëĨŧ ë¤ė ėŊė´ë´
ėë¤.
@@ -166,7 +166,7 @@ UserInDB(
ė´ ę°ë¨í ėė ėėë ėė í ėė íė§ ėęŗ , ëėŧí `username`ė í í°ėŧëĄ ë°ííŠëë¤.
-/// í
+/// tip | í
ë¤ė ėĨėėë í¨ė¤ėë í´ėą ë° JWT í í°ė ėŦėŠíėŦ ė¤ė ëŗ´ė ęĩŦíė ëŗŧ ė ėėĩëë¤.
@@ -176,7 +176,7 @@ UserInDB(
{* ../../docs_src/security/tutorial003.py hl[85] *}
-/// í
+/// tip | í
ėŦėė ë°ëŧ ė´ ėė ė ëėŧíę˛ `access_token` ë° `token_type`ė´ íŦí¨ë JSONė ë°íí´ėŧ íŠëë¤.
@@ -202,7 +202,7 @@ UserInDB(
{* ../../docs_src/security/tutorial003.py hl[58:66,69:72,90] *}
-/// ė ëŗ´
+/// info | ė ëŗ´
ėŦ기ė ë°ííë ę°ė´ `Bearer`ė¸ ėļę° í¤ë `WWW-Authenticate`ë ėŦėė ėŧëļė
ëë¤.
diff --git a/docs/ko/docs/virtual-environments.md b/docs/ko/docs/virtual-environments.md
new file mode 100644
index 0000000000..0d10c3200d
--- /dev/null
+++ b/docs/ko/docs/virtual-environments.md
@@ -0,0 +1,846 @@
+# ę°ė íę˛Ŋ
+
+Python íëĄė í¸ëĨŧ ėė
í ëë **ę°ė íę˛Ŋ** (ëë ė´ė ė ėŦí ëęĩŦ)ė ėŦėŠíë ę˛ė´ ėĸėĩëë¤. ę° íëĄė í¸ ë§ë¤ ė¤ėšíë í¨í¤ė§ëĨŧ ëļëĻŦíėŦ ę´ëĻŦí ė ėėĩëë¤.
+
+/// info | ė ëŗ´
+
+ė´ë¯¸ ę°ė íę˛Ŋė ëí´ ė ėęŗ ėë¤ëŠ´, ė´ ėšė
ė ęą´ë ë°ė´ë ę´ė°Žėĩëë¤. đ¤
+
+///
+
+/// tip | í
+
+**ę°ė íę˛Ŋ(Virtual Environment)** ė **íę˛Ŋ ëŗė(Environment Variable)** ė ë¤ëĻ
ëë¤.
+
+**íę˛Ŋ ëŗė**ë ėė¤í
ė ėĄ´ėŦí늰, íëĄęˇ¸ë¨ė´ ėŦėŠí ė ėë ëŗėė
ëë¤.
+
+**ę°ė íę˛Ŋ**ė ëĒëĒ íėŧëĄ ęĩŦėąë íëė ëë í°ëĻŦė
ëë¤.
+
+///
+
+/// info | ė ëŗ´
+
+ė´ íė´ė§ėėë **ę°ė íę˛Ŋ**ė ėŦėŠ ë°Šë˛ęŗŧ ėë ë°Šėė ė¤ëĒ
íŠëë¤.
+
+ë§ėŊ **ëǍë ę˛ė ę´ëĻŦí´ėŖŧë ëęĩŦ** (Python ė¤ėšęšė§ íŦí¨)ëĨŧ ėŦėŠíęŗ ėļë¤ëŠ´ uvëĨŧ ėŦėŠí´ëŗ´ė¸ė.
+
+///
+
+## íëĄė í¸ ėėą
+
+ë¨ŧė , íëĄė í¸ëĨŧ ėí ëë í°ëĻŦëĨŧ íë ėėąíŠëë¤.
+
+ëŗ´íĩ ėŦėŠė í ëë í°ëĻŦ ėė `code`ëŧë ëë í°ëĻŦëĨŧ ë§ë¤ęŗ , ꡸ ėė íëĄė í¸ë§ë¤ íëėŠ ëë í°ëĻŦëĨŧ ë§ë¤ė´ ę´ëĻŦíŠëë¤.
+
+
-
+
diff --git a/docs/pl/docs/index.md b/docs/pl/docs/index.md
index 9a96c65532..0e13d26311 100644
--- a/docs/pl/docs/index.md
+++ b/docs/pl/docs/index.md
@@ -11,15 +11,18 @@
FastAPI to szybki, prosty w nauce i gotowy do uÅŧycia w produkcji framework
uvicorn main:app --reload...fastapi dev main.py...email-validator - para validaÃ§ÃŖo de email.
-Usados por Starlette:
+Utilizado pelo Starlette:
-* httpx - NecessÃĄrio se vocÃĒ quiser utilizar o `TestClient`.
-* jinja2 - NecessÃĄrio se vocÃĒ quiser utilizar a configuraÃ§ÃŖo padrÃŖo de templates.
-* python-multipart - NecessÃĄrio se vocÃĒ quiser suporte com "parsing" de formulÃĄrio, com `request.form()`.
-* itsdangerous - NecessÃĄrio para suporte a `SessionMiddleware`.
-* pyyaml - NecessÃĄrio para suporte a `SchemaGenerator` da Starlette (vocÃĒ provavelmente nÃŖo precisarÃĄ disso com o FastAPI).
-* graphene - NecessÃĄrio para suporte a `GraphQLApp`.
+* httpx - ObrigatÃŗrio caso vocÃĒ queira utilizar o `TestClient`.
+* jinja2 - ObrigatÃŗrio se vocÃĒ quer utilizar a configuraÃ§ÃŖo padrÃŖo de templates.
+* python-multipart - ObrigatÃŗrio se vocÃĒ deseja suporte a "parsing" de formulÃĄrio, com `request.form()`.
-Usados por FastAPI / Starlette:
+Utilizado pelo FastAPI / Starlette:
-* uvicorn - para o servidor que carrega e serve sua aplicaÃ§ÃŖo.
-* orjson - NecessÃĄrio se vocÃĒ quer utilizar `ORJSONResponse`.
-* ujson - NecessÃĄrio se vocÃĒ quer utilizar `UJSONResponse`.
+* uvicorn - para o servidor que carrega e serve a sua aplicaÃ§ÃŖo. Isto inclui `uvicorn[standard]`, que inclui algumas dependÃĒncias (e.g. `uvloop`) necessÃĄrias para servir em alta performance.
+* `fastapi-cli` - que disponibiliza o comando `fastapi`.
-VocÃĒ pode instalar todas essas dependÃĒncias com `pip install fastapi[all]`.
+### Sem as dependÃĒncias `standard`
+
+Se vocÃĒ nÃŖo deseja incluir as dependÃĒncias opcionais `standard`, vocÃĒ pode instalar utilizando `pip install fastapi` ao invÊs de `pip install "fastapi[standard]"`.
+
+### DpendÃĒncias opcionais adicionais
+
+Existem algumas dependÃĒncias adicionais que vocÃĒ pode querer instalar.
+
+DependÃĒncias opcionais adicionais do Pydantic:
+
+* pydantic-settings - para gerenciamento de configuraçÃĩes.
+* pydantic-extra-types - tipos extras para serem utilizados com o Pydantic.
+
+DependÃĒncias opcionais adicionais do FastAPI:
+
+* orjson - ObrigatÃŗrio se vocÃĒ deseja utilizar o `ORJSONResponse`.
+* ujson - ObrigatÃŗrio se vocÃĒ deseja utilizar o `UJSONResponse`.
## Licença
diff --git a/docs/pt/docs/project-generation.md b/docs/pt/docs/project-generation.md
index e5c935fd2d..e337ad762e 100644
--- a/docs/pt/docs/project-generation.md
+++ b/docs/pt/docs/project-generation.md
@@ -1,84 +1,28 @@
-# GeraÃ§ÃŖo de Projetos - Modelo
+# Full Stack FastAPI Template
-VocÃĒ pode usar um gerador de projetos para começar, por jÃĄ incluir configuraçÃĩes iniciais, segurança, banco de dados e os primeiros _endpoints_ API jÃĄ feitos para vocÃĒ.
+_Templates_, embora tipicamente venham com alguma configuraÃ§ÃŖo especÃfica, sÃŖo desenhados para serem flexÃveis e customizÃĄveis. Isso permite que vocÃĒ os modifique e adapte para as especificaçÃĩes do seu projeto, fazendo-os um excelente ponto de partida. đ
-Um gerador de projetos sempre terÃĄ uma prÊ-configuraÃ§ÃŖo que vocÃĒ pode atualizar e adaptar para suas prÃŗprias necessidades, mas pode ser um bom ponto de partida para seu projeto.
+VocÃĒ pode usar esse _template_ para começar, jÃĄ que ele inclui vÃĄrias configuraçÃĩes iniciais, segurança, banco de dados, e alguns _endpoints_ de API jÃĄ feitos para vocÃĒ.
-## Full Stack FastAPI PostgreSQL
+RepositÃŗrio GitHub: Full Stack FastAPI Template
-GitHub: https://github.com/tiangolo/full-stack-fastapi-postgresql
+## Full Stack FastAPI Template - Pilha de Tecnologias e Recursos
-### Full Stack FastAPI PostgreSQL - Recursos
-
-* IntegraÃ§ÃŖo completa **Docker**.
-* Modo de implantaÃ§ÃŖo Docker Swarm.
-* IntegraÃ§ÃŖo e otimizaÃ§ÃŖo **Docker Compose** para desenvolvimento local.
-* **Pronto para ProduÃ§ÃŖo** com servidor _web_ usando Uvicorn e Gunicorn.
-* _Backend_ **FastAPI** Python:
- * **RÃĄpido**: Alta performance, no nÃvel de **NodeJS** e **Go** (graças ao Starlette e Pydantic).
- * **Intuitivo**: Ãtimo suporte de editor. _Auto-Complete_ em todo lugar. Menos tempo _debugando_.
- * **FÃĄcil**: Projetado para ser fÃĄcil de usar e aprender. Menos tempo lendo documentaçÃĩes.
- * **Curto**: Minimize duplicaÃ§ÃŖo de cÃŗdigo. MÃēltiplos recursos para cada declaraÃ§ÃŖo de parÃĸmetro.
- * **Robusto**: Tenha cÃŗdigo pronto para produÃ§ÃŖo. Com documentaÃ§ÃŖo interativa automÃĄtica.
- * **Baseado em PadrÃĩes**: Baseado em (e completamente compatÃvel com) padrÃĩes abertos para APIs: OpenAPI e JSON Schema.
- * **Muitos outros recursos** incluindo validaÃ§ÃŖo automÃĄtica, serializaÃ§ÃŖo, documentaÃ§ÃŖo interativa, autenticaÃ§ÃŖo com _tokens_ OAuth2 JWT etc.
-* **Senha segura** _hashing_ por padrÃŖo.
-* AutenticaÃ§ÃŖo **Token JWT**.
-* Modelos **SQLAlchemy** (independente de extensÃĩes Flask, para que eles possam ser usados com _workers_ Celery diretamente).
-* Modelos bÃĄsicos para usuÃĄrios (modifique e remova conforme suas necessidades).
-* MigraçÃĩes **Alembic**.
-* **CORS** (_Cross Origin Resource Sharing_ - Compartilhamento de Recursos Entre Origens).
-* _Worker_ **Celery** que pode importar e usar modelos e cÃŗdigos do resto do _backend_ seletivamente.
-* Testes _backend_ _REST_ baseados no **Pytest**, integrados com Docker, entÃŖo vocÃĒ pode testar a interaÃ§ÃŖo completa da API, independente do banco de dados. Como roda no Docker, ele pode construir um novo repositÃŗrio de dados do zero toda vez (assim vocÃĒ pode usar ElasticSearch, MongoDB, CouchDB, ou o que quiser, e apenas testar que a API esteja funcionando).
-* FÃĄcil integraÃ§ÃŖo com Python atravÊs dos **Kernels Jupyter** para desenvolvimento remoto ou no Docker com extensÃĩes como Atom Hydrogen ou Visual Studio Code Jupyter.
-* _Frontend_ **Vue**:
- * Gerado com Vue CLI.
- * Controle de **AutenticaÃ§ÃŖo JWT**.
- * VisualizaÃ§ÃŖo de _login_.
- * ApÃŗs o _login_, visualizaÃ§ÃŖo do painel de controle principal.
- * Painel de controle principal com criaÃ§ÃŖo e ediÃ§ÃŖo de usuÃĄrio.
- * EdiÃ§ÃŖo do prÃŗprio usuÃĄrio.
- * **Vuex**.
- * **Vue-router**.
- * **Vuetify** para belos componentes _material design_.
- * **TypeScript**.
- * Servidor Docker baseado em **Nginx** (configurado para rodar "lindamente" com Vue-router).
- * ConstruÃ§ÃŖo multi-estÃĄgio Docker, entÃŖo vocÃĒ nÃŖo precisa salvar ou _commitar_ cÃŗdigo compilado.
- * Testes _frontend_ rodados na hora da construÃ§ÃŖo (pode ser desabilitado tambÊm).
- * Feito tÃŖo modular quanto possÃvel, entÃŖo ele funciona fora da caixa, mas vocÃĒ pode gerar novamente com Vue CLI ou criar conforme vocÃĒ queira, e reutilizar o que quiser.
-* **PGAdmin** para banco de dados PostgreSQL, vocÃĒ pode modificar para usar PHPMyAdmin e MySQL facilmente.
-* **Flower** para monitoraÃ§ÃŖo de tarefas Celery.
-* Balanceamento de carga entre _frontend_ e _backend_ com **Traefik**, entÃŖo vocÃĒ pode ter ambos sob o mesmo domÃnio, separados por rota, mas servidos por diferentes containers.
-* IntegraÃ§ÃŖo Traefik, incluindo geraÃ§ÃŖo automÃĄtica de certificados **HTTPS** Let's Encrypt.
-* GitLab **CI** (integraÃ§ÃŖo contÃnua), incluindo testes _frontend_ e _backend_.
-
-## Full Stack FastAPI Couchbase
-
-GitHub: https://github.com/tiangolo/full-stack-fastapi-couchbase
-
-â ī¸ **WARNING** â ī¸
-
-Se vocÃĒ estÃĄ iniciando um novo projeto do zero, verifique as alternativas aqui.
-
-Por exemplo, o gerador de projetos Full Stack FastAPI PostgreSQL pode ser uma alternativa melhor, como ele Ê ativamente mantido e utilizado. E ele inclui todos os novos recursos e melhorias.
-
-VocÃĒ ainda Ê livre para utilizar o gerador baseado em Couchbase se quiser, ele provavelmente ainda funciona bem, e vocÃĒ jÃĄ tem um projeto gerado com ele que roda bem tambÊm (e vocÃĒ provavelmente jÃĄ atualizou ele para encaixar nas suas necessidades).
-
-VocÃĒ pode ler mais sobre nas documentaÃ§ÃŖoes do repositÃŗrio.
-
-## Full Stack FastAPI MongoDB
-
-...pode demorar, dependendo do meu tempo disponÃvel e outros fatores. đ
đ
-
-## Modelos de Aprendizado de MÃĄquina com spaCy e FastAPI
-
-GitHub: https://github.com/microsoft/cookiecutter-spacy-fastapi
-
-### Modelos de Aprendizado de MÃĄquina com spaCy e FastAPI - Recursos
-
-* IntegraÃ§ÃŖo com modelo NER **spaCy**.
-* Formato de requisiÃ§ÃŖo **Busca Cognitiva Azure** acoplado.
-* Servidor Python _web_ **Pronto para ProduÃ§ÃŖo** usando Uvicorn e Gunicorn.
-* ImplantaÃ§ÃŖo **Azure DevOps** Kubernetes (AKS) CI/CD acoplada.
-* **Multilingual** facilmente escolhido como uma das linguagens spaCy acopladas durante a configuraÃ§ÃŖo do projeto.
-* **Facilmente extensÃvel** para outros modelos de _frameworks_ (Pytorch, Tensorflow), nÃŖo apenas spaCy.
+- ⥠[**FastAPI**](https://fastapi.tiangolo.com) para a API do backend em Python.
+ - đ§° [SQLModel](https://sqlmodel.tiangolo.com) para as interaçÃĩes do Python com bancos de dados SQL (ORM).
+ - đ [Pydantic](https://docs.pydantic.dev), usado pelo FastAPI, para validaÃ§ÃŖo de dados e gerenciamento de configuraçÃĩes.
+ - đž [PostgreSQL](https://www.postgresql.org) como banco de dados SQL.
+- đ [React](https://react.dev) para o frontend.
+ - đ Usando TypeScript, hooks, [Vite](https://vitejs.dev), e outras partes de uma _stack_ frontend moderna.
+ - đ¨ [Chakra UI](https://chakra-ui.com) para os componentes de frontend.
+ - đ¤ Um cliente frontend automaticamente gerado.
+ - đ§Ē [Playwright](https://playwright.dev) para testes Ponta-a-Ponta.
+ - đĻ Suporte para modo escuro.
+- đ [Docker Compose](https://www.docker.com) para desenvolvimento e produÃ§ÃŖo.
+- đ _Hash_ seguro de senhas por padrÃŖo.
+- đ AutenticaÃ§ÃŖo por token JWT.
+- đĢ RecuperaÃ§ÃŖo de senhas baseada em email.
+- â
Testes com [Pytest](https://pytest.org).
+- đ [Traefik](https://traefik.io) como proxy reverso / balanceador de carga.
+- đĸ InstruçÃĩes de _deployment_ usando Docker Compose, incluindo como configurar um proxy frontend com Traefik para gerenciar automaticamente certificados HTTPS.
+- đ CI (IntegraÃ§ÃŖo ContÃnua) e CD (_Deploy_ ContÃnuo) baseado em GitHub Actions.
diff --git a/docs/pt/docs/tutorial/bigger-applications.md b/docs/pt/docs/tutorial/bigger-applications.md
index a094005fd7..b621f3c726 100644
--- a/docs/pt/docs/tutorial/bigger-applications.md
+++ b/docs/pt/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* HÃĄ tambÊm um subdiretÃŗrio `app/internal/` com outro arquivo `__init__.py`, entÃŖo ele Ê outro "subpacote Python":`app.internal`.
* E o arquivo `app/internal/admin.py` Ê outro submÃŗdulo: `app.internal.admin`.
-
+
+ĐŅ ĐŧĐžĐļĐĩŅĐĩ ĐŊайиŅаŅŅ ŅООйŅĐĩĐŊĐ¸Ņ Đ˛ ĐŋĐžĐģĐĩ ввОда и ĐžŅĐŋŅавĐģŅŅŅ Đ¸Ņ
:
+
+
+
+РваŅĐĩ **FastAPI** ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ Ņ Đ˛ĐĩĐą-ŅĐžĐēĐĩŅаĐŧи ĐžŅвĐĩŅиŅ:
+
+
+
+ĐŅ ĐŧĐžĐļĐĩŅĐĩ ĐžŅĐŋŅавĐģŅŅŅ Đ¸ ĐŋĐžĐģŅŅаŅŅ ĐŧĐŊĐžĐļĐĩŅŅвО ŅООйŅĐĩĐŊиК:
+
+
+
+РвŅĐĩ ĐžĐŊи ĐąŅĐ´ŅŅ Đ¸ŅĐŋĐžĐģŅСОваŅŅ ĐžĐ´ĐŊĐž и ŅĐž ĐļĐĩ вĐĩĐą-ŅĐžĐēĐĩŅ ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ.
+
+## ĐŅĐŋĐžĐģŅСОваĐŊиĐĩ `Depends` и ĐŊĐĩ ŅĐžĐģŅĐēĐž
+
+ĐŅ ĐŧĐžĐļĐĩŅĐĩ иĐŧĐŋĐžŅŅиŅОваŅŅ Đ¸Đˇ `fastapi` и иŅĐŋĐžĐģŅСОваŅŅ Đ˛ ŅĐŊĐ´ĐŋОиĐŊŅĐĩ вĐĩĐąŅĐžĐēĐĩŅа:
+
+* `Depends`
+* `Security`
+* `Cookie`
+* `Header`
+* `Path`
+* `Query`
+
+ĐĐŊи ŅайОŅаŅŅ ŅаĐē ĐļĐĩ, ĐēаĐē и в Đ´ŅŅĐŗĐ¸Ņ
FastAPI ŅĐŊĐ´ĐŋОиĐŊŅаŅ
/*ĐžĐŋĐĩŅаŅиŅŅ
ĐŋŅŅи*:
+
+{* ../../docs_src/websockets/tutorial002_an_py310.py hl[68:69,82] *}
+
+/// info | ĐŅиĐŧĐĩŅаĐŊиĐĩ
+
+РвĐĩĐą-ŅĐžĐēĐĩŅĐĩ вŅСŅваŅŅ `HTTPException` ĐŊĐĩ иĐŧĐĩĐĩŅ ŅĐŧŅŅĐģа. ĐĐŧĐĩŅŅĐž ŅŅĐžĐŗĐž ĐŊŅĐļĐŊĐž иŅĐŋĐžĐģŅСОваŅŅ `WebSocketException`.
+
+ĐаĐēŅŅваŅŅиК ŅŅаŅŅŅ ĐēОд ĐŧĐžĐļĐŊĐž иŅĐŋĐžĐģŅСОваŅŅ Đ¸Đˇ valid codes defined in the specification.
+
+///
+
+### ĐĐĩĐą-ŅĐžĐēĐĩŅŅ Ņ ĐˇĐ°Đ˛Đ¸ŅиĐŧĐžŅŅŅĐŧи: ĐŋŅОвĐĩŅĐēа в Đ´ĐĩĐšŅŅвии
+
+ĐŅĐģи Đ˛Đ°Ņ ŅаКĐģ ĐŊаСŅваĐĩŅŅŅ `main.py`, ŅĐž СаĐŋŅŅŅиŅĐĩ ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ ĐēĐžĐŧаĐŊдОК:
+
+
+
+## ĐĐąŅайОŅĐēа ĐžŅĐēĐģŅŅĐĩĐŊиК и ŅайОŅа Ņ ĐŊĐĩŅĐēĐžĐģŅĐēиĐŧи ĐēĐģиĐĩĐŊŅаĐŧи
+
+ĐŅĐģи вĐĩĐą-ŅĐžĐēĐĩŅ ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ СаĐēŅŅŅĐž, ŅĐž `await websocket.receive_text()` вŅСОвĐĩŅ Đ¸ŅĐēĐģŅŅĐĩĐŊиĐĩ `WebSocketDisconnect`, ĐēĐžŅĐžŅĐžĐĩ ĐŧĐžĐļĐŊĐž ĐŋОКĐŧаŅŅ Đ¸ ОйŅайОŅаŅŅ ĐēаĐē в ŅŅĐžĐŧ ĐŋŅиĐŧĐĩŅĐĩ:
+
+{* ../../docs_src/websockets/tutorial003_py39.py hl[79:81] *}
+
+ЧŅĐžĐąŅ Đ˛ĐžŅĐŋŅОиСвĐĩŅŅи ĐŋŅиĐŧĐĩŅ:
+
+* ĐŅĐēŅОКŅĐĩ ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ в ĐŊĐĩŅĐēĐžĐģŅĐēиŅ
вĐēĐģадĐēаŅ
ĐąŅаŅСĐĩŅа.
+* ĐŅĐŋŅавŅŅĐĩ иС ĐŊиŅ
ŅООйŅĐĩĐŊиŅ.
+* ĐаŅĐĩĐŧ СаĐēŅОКŅĐĩ ОдĐŊŅ Đ¸Đˇ вĐēĐģадОĐē.
+
+ĐŅĐž вŅСОвĐĩŅ Đ¸ŅĐēĐģŅŅĐĩĐŊиĐĩ `WebSocketDisconnect`, и вŅĐĩ ĐžŅŅаĐģŅĐŊŅĐĩ ĐēĐģиĐĩĐŊŅŅ ĐŋĐžĐģŅŅĐ°Ņ ŅĐģĐĩĐ´ŅŅŅĐĩĐĩ ŅООйŅĐĩĐŊиĐĩ:
+
+```
+Client #1596980209979 left the chat
+```
+
+/// tip | ĐŅиĐŧĐĩŅаĐŊиĐĩ
+
+ĐŅиĐģĐžĐļĐĩĐŊиĐĩ вŅŅĐĩ - ŅŅĐž вŅĐĩĐŗĐž ĐģиŅŅ ĐŋŅĐžŅŅОК ĐŧиĐŊиĐŧаĐģŅĐŊŅĐš ĐŋŅиĐŧĐĩŅ, Đ´ĐĩĐŧĐžĐŊŅŅŅиŅŅŅŅиК ОйŅайОŅĐēŅ Đ¸ ĐŋĐĩŅĐĩдаŅŅ ŅООйŅĐĩĐŊиК ĐŊĐĩŅĐēĐžĐģŅĐēиĐŧ вĐĩĐą-ŅĐžĐēĐĩŅ ŅĐžĐĩдиĐŊĐĩĐŊиŅĐŧ.
+
+ĐĐž иĐŧĐĩĐšŅĐĩ в видŅ, ŅŅĐž ŅŅĐž ĐąŅĐ´ĐĩŅ ŅайОŅаŅŅ ŅĐžĐģŅĐēĐž в ОдĐŊĐžĐŧ ĐŋŅĐžŅĐĩŅŅĐĩ и ŅĐžĐģŅĐēĐž ĐŋĐžĐēа ĐžĐŊ аĐēŅивĐĩĐŊ, ŅаĐē ĐēаĐē вŅŅ ĐžĐąŅайаŅŅваĐĩŅŅŅ Đ˛ ĐŋŅĐžŅŅĐžĐŧ ŅĐŋиŅĐēĐĩ в ĐžĐŋĐĩŅаŅивĐŊОК ĐŋаĐŧŅŅи.
+
+ĐŅĐģи ĐŊŅĐļĐŊĐž ŅŅĐž-ŅĐž ĐģĐĩĐŗĐēĐž иĐŊŅĐĩĐŗŅиŅŅĐĩĐŧĐžĐĩ Ņ FastAPI, ĐŊĐž йОĐģĐĩĐĩ ĐŊадĐĩĐļĐŊĐžĐĩ и Ņ ĐŋОддĐĩŅĐļĐēОК Redis, PostgreSQL иĐģи Đ´ŅŅĐŗĐžĐŗĐž, ŅĐž ĐŧĐžĐļĐŊĐž вОŅĐŋĐžĐģŅСОваŅŅŅŅ encode/broadcaster.
+
+///
+
+## ĐĐžĐŋĐžĐģĐŊиŅĐĩĐģŅĐŊĐ°Ņ Đ¸ĐŊŅĐžŅĐŧаŅиŅ
+
+ĐĐģŅ ĐąĐžĐģĐĩĐĩ ĐŗĐģŅйОĐēĐžĐŗĐž иСŅŅĐĩĐŊĐ¸Ņ ŅĐĩĐŧŅ Đ˛ĐžŅĐŋĐžĐģŅСŅĐšŅĐĩŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅиĐĩĐš Starlette:
+
+* The `WebSocket` class.
+* Class-based WebSocket handling.
diff --git a/docs/ru/docs/deployment/concepts.md b/docs/ru/docs/deployment/concepts.md
index 7cdc295265..acfa1f4fe6 100644
--- a/docs/ru/docs/deployment/concepts.md
+++ b/docs/ru/docs/deployment/concepts.md
@@ -216,7 +216,7 @@
ĐаĐļĐ´ŅĐš иС ŅŅиŅ
ĐŋŅĐžŅĐĩŅŅОв ĐąŅĐ´ĐĩŅ ĐˇĐ°ĐŋŅŅĐēаŅŅ Đ˛Đ°ŅĐĩ ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ Đ´ĐģŅ ĐžĐąŅайОŅĐēи ĐŋĐžĐģŅŅĐĩĐŊĐŊĐžĐŗĐž **СаĐŋŅĐžŅа** и вОСвŅаŅĐĩĐŊĐ¸Ņ Đ˛ŅŅиŅĐģĐĩĐŊĐŊĐžĐŗĐž **ĐžŅвĐĩŅа** и ĐžĐŊи ĐąŅĐ´ŅŅ Đ¸ŅĐŋĐžĐģŅСОваŅŅ ĐžĐŋĐĩŅаŅивĐŊŅŅ ĐŋаĐŧŅŅŅ.
-
-
+
-
-
+
+
diff --git a/docs/ru/docs/tutorial/bigger-applications.md b/docs/ru/docs/tutorial/bigger-applications.md
index 7c3dc288f8..8b9080d39c 100644
--- a/docs/ru/docs/tutorial/bigger-applications.md
+++ b/docs/ru/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* ĐОдĐēаŅаĐģĐžĐŗ `app/internal/`, ŅОдĐĩŅĐļаŅиК ŅаКĐģ `__init__.py`, ŅвĐģŅĐĩŅŅŅ ĐĩŅŅ ĐžĐ´ĐŊиĐŧ ŅŅĐą-ĐŋаĐēĐĩŅĐžĐŧ: `app.internal`.
* Đ ŅаКĐģ `app/internal/admin.py` ŅвĐģŅĐĩŅŅŅ ĐĩŅŅ ĐžĐ´ĐŊиĐŧ ŅŅĐą-ĐŧОдŅĐģĐĩĐŧ: `app.internal.admin`.
-
+
Đĸа ĐļĐĩ ŅаĐŧĐ°Ņ ŅаКĐģĐžĐ˛Đ°Ņ ŅŅŅŅĐēŅŅŅа ĐŋŅиĐģĐžĐļĐĩĐŊиŅ, ĐŊĐž Ņ ĐēĐžĐŧĐŧĐĩĐŊŅаŅиŅĐŧи:
@@ -269,7 +269,7 @@ from .dependencies import get_token_header
ĐŅĐŋĐžĐŧĐŊиŅĐĩ, ĐēаĐē вŅĐŗĐģŅĐ´Đ¸Ņ ŅаКĐģĐžĐ˛Đ°Ņ ŅŅŅŅĐēŅŅŅа ĐŊаŅĐĩĐŗĐž ĐŋŅиĐģĐžĐļĐĩĐŊиŅ:
-
+
---
diff --git a/docs/ru/docs/tutorial/cookie-param-models.md b/docs/ru/docs/tutorial/cookie-param-models.md
new file mode 100644
index 0000000000..3a57443bbd
--- /dev/null
+++ b/docs/ru/docs/tutorial/cookie-param-models.md
@@ -0,0 +1,76 @@
+# ĐОдĐĩĐģи ĐŋаŅаĐŧĐĩŅŅОв cookie
+
+ĐŅĐģи Ņ Đ˛Đ°Ņ ĐĩŅŅŅ ĐŗŅŅĐŋĐŋа **cookies**, ĐēĐžŅĐžŅŅĐĩ ŅвŅСаĐŊŅ ĐŧĐĩĐļĐ´Ņ ŅОйОК, Đ˛Ņ ĐŧĐžĐļĐĩŅĐĩ ŅОСдаŅŅ **Pydantic-ĐŧОдĐĩĐģŅ** Đ´ĐģŅ Đ¸Ņ
ОйŅŅвĐģĐĩĐŊиŅ. đĒ
+
+ĐŅĐž ĐŋОСвОĐģĐ¸Ņ Đ˛Đ°Đŧ **ĐŋĐĩŅĐĩиŅĐŋĐžĐģŅСОваŅŅ ĐŧОдĐĩĐģŅ** в **ŅаСĐŊŅŅ
ĐŧĐĩŅŅаŅ
**, а ŅаĐēĐļĐĩ ОйŅŅвиŅŅ ĐŋŅОвĐĩŅĐēи и ĐŧĐĩŅадаĐŊĐŊŅĐĩ ŅŅĐ°ĐˇŅ Đ´ĐģŅ Đ˛ŅĐĩŅ
ĐŋаŅаĐŧĐĩŅŅОв. đ
+
+/// note | ĐаĐŧĐĩŅĐēа
+
+ĐŅĐžŅ ŅŅĐŊĐēŅиОĐŊаĐģ Đ´ĐžŅŅŅĐŋĐĩĐŊ Ņ Đ˛ĐĩŅŅии `0.115.0`. đ¤
+
+///
+
+/// tip | ХОвĐĩŅ
+
+ĐĸаĐēОК ĐļĐĩ ĐŋОдŅ
Од ĐŋŅиĐŧĐĩĐŊŅĐĩŅŅŅ Đ´ĐģŅ `Query`, `Cookie`, и `Header`. đ
+
+///
+
+## Pydantic-ĐŧОдĐĩĐģŅ Đ´ĐģŅ cookies
+
+ĐĐąŅŅвиŅĐĩ ĐŋаŅаĐŧĐĩŅŅŅ **cookie**, ĐēĐžŅĐžŅŅĐĩ ваĐŧ ĐŊŅĐļĐŊŅ, в **Pydantic-ĐŧОдĐĩĐģи**, а СаŅĐĩĐŧ ОйŅŅвиŅĐĩ ĐŋаŅаĐŧĐĩŅŅ ĐēаĐē `Cookie`:
+
+{* ../../docs_src/cookie_param_models/tutorial001_an_py310.py hl[9:12,16] *}
+
+**FastAPI** **иСвĐģĐĩŅŅŅ** даĐŊĐŊŅĐĩ Đ´ĐģŅ **ĐēаĐļĐ´ĐžĐŗĐž ĐŋĐžĐģŅ** иС **cookies**, ĐŋĐžĐģŅŅĐĩĐŊĐŊŅŅ
в СаĐŋŅĐžŅĐĩ, и вŅдаŅŅ Đ˛Đ°Đŧ ОйŅŅвĐģĐĩĐŊĐŊŅŅ Pydantic-ĐŧОдĐĩĐģŅ.
+
+## ĐŅОвĐĩŅĐēа ŅĐŗĐĩĐŊĐĩŅиŅОваĐŊĐŊОК Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅии
+
+ĐŅ ĐŧĐžĐļĐĩŅĐĩ ĐŋĐžŅĐŧĐžŅŅĐĩŅŅ ĐžĐąŅŅвĐģĐĩĐŊĐŊŅĐĩ cookies в ĐŗŅаŅиŅĐĩŅĐēĐžĐŧ иĐŊŅĐĩŅŅĐĩĐšŅĐĩ ĐĐžĐēŅĐŧĐĩĐŊŅаŅии ĐŋĐž ĐŋŅŅи `/docs`:
+
+
+
+
+
-
+
diff --git a/docs/uk/docs/features.md b/docs/uk/docs/features.md
new file mode 100644
index 0000000000..7d679d8eea
--- /dev/null
+++ b/docs/uk/docs/features.md
@@ -0,0 +1,189 @@
+# ФŅĐŊĐēŅŅĐžĐŊаĐģŅĐŊŅ ĐŧĐžĐļĐģивОŅŅŅ
+
+## ФŅĐŊĐēŅŅĐžĐŊаĐģŅĐŊŅ ĐŧĐžĐļĐģивОŅŅŅ FastAPI
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ Đ˛Đ°Đŧ ŅаĐēŅ ĐŧĐžĐļĐģивОŅŅŅ:
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ Đ˛ŅĐ´ĐēŅиŅиŅ
ŅŅаĐŊдаŅŅŅв
+
+* OpenAPI Đ´ĐģŅ ŅŅвОŅĐĩĐŊĐŊŅ API, вĐēĐģŅŅаŅŅи ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅĐģŅŅ
Ņв, ĐžĐŋĐĩŅаŅŅĐš, ĐŋаŅаĐŧĐĩŅŅŅв, ŅŅĐģ СаĐŋиŅŅв, ĐąĐĩСĐŋĐĩĐēи ŅĐžŅĐž.
+* ĐвŅĐžĐŧаŅиŅĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐŧОдĐĩĐģĐĩĐš даĐŊиŅ
Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ JSON Schema (ĐžŅĐēŅĐģŅĐēи OpenAPI йаСŅŅŅŅŅŅ ŅаĐŧĐĩ ĐŊа JSON Schema).
+* РОСŅОйĐģĐĩĐŊĐž ĐŊа ĐžŅĐŊĐžĐ˛Ņ ŅиŅ
ŅŅаĐŊдаŅŅŅв ĐŋŅŅĐģŅ ŅĐĩŅĐĩĐģŅĐŊĐžĐŗĐž аĐŊаĐģŅСŅ, а ĐŊĐĩ ŅĐē дОдаŅĐēОвиК ŅŅвĐĩĐŊŅ ĐŋОвĐĩŅŅ
ĐžŅĐŊОвĐŊĐžŅ Đ°ŅŅ
ŅŅĐĩĐēŅŅŅи.
+* ĐĻĐĩ ŅаĐēĐžĐļ Đ´Đ°Ņ ĐˇĐŧĐžĐŗŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž **ĐŗĐĩĐŊĐĩŅŅваŅи ĐēОд ĐēĐģŅŅĐŊŅа** ĐąĐ°ĐŗĐ°ŅŅĐŧа ĐŧОваĐŧи.
+
+### ĐвŅĐžĐŧаŅиŅĐŊа ĐŗĐĩĐŊĐĩŅаŅŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+ĐĐŊŅĐĩŅаĐēŅивĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ API Ņа вĐĩĐąŅĐŊŅĐĩŅŅĐĩĐšŅ Đ´ĐģŅ ĐšĐžĐŗĐž Đ´ĐžŅĐģŅĐ´ĐļĐĩĐŊĐŊŅ. ĐŅĐēŅĐģŅĐēи ŅŅĐĩĐšĐŧвОŅĐē йаСŅŅŅŅŅŅ ĐŊа OpenAPI, Ņ ĐēŅĐģŅĐēа ваŅŅаĐŊŅŅв, два С ŅĐēиŅ
вĐēĐģŅŅĐĩĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+* Swagger UI â дОСвОĐģŅŅ ŅĐŊŅĐĩŅаĐēŅивĐŊĐž ĐŋĐĩŅĐĩĐŗĐģŅдаŅи API, виĐēĐģиĐēаŅи Ņа ŅĐĩŅŅŅваŅи ĐšĐžĐŗĐž ĐŋŅŅĐŧĐž Ņ ĐąŅаŅСĐĩŅŅ.
+
+
+
+* ĐĐģŅŅĐĩŅĐŊаŅивĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ API Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ReDoc.
+
+
+
+### ĐĸŅĐģŅĐēи ŅŅŅаŅĐŊиК Python
+
+FastAPI виĐēĐžŅиŅŅОвŅŅ ŅŅаĐŊдаŅŅĐŊŅ **ŅиĐŋи Python** (СавдŅĐēи Pydantic). ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž вивŅаŅи ĐŊОвиК ŅиĐŊŅаĐēŅĐ¸Ņ â ĐģиŅĐĩ ŅŅаĐŊдаŅŅĐŊиК ŅŅŅаŅĐŊиК Python.
+
+Đ¯ĐēŅĐž ваĐŧ ĐŋĐžŅŅŅĐąĐŊĐĩ ĐēĐžŅĐžŅĐēĐĩ ĐŊĐ°ĐŗĐ°Đ´ŅваĐŊĐŊŅ ĐŋŅĐž виĐēĐžŅиŅŅаĐŊĐŊŅ ŅиĐŋŅв Ņ Python (ĐŊавŅŅŅ ŅĐēŅĐž ви ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅĐĩ FastAPI), ĐŋĐĩŅĐĩĐŗĐģŅĐŊŅŅĐĩ ĐēĐžŅĐžŅĐēиК ĐŋŅĐ´ŅŅŅĐŊиĐē: [ĐŅŅŅĐŋ Đ´Đž ŅиĐŋŅв Python](python-types.md){.internal-link target=_blank}.
+
+ĐŅŅ ĐŋŅиĐēĐģад ŅŅаĐŊдаŅŅĐŊĐžĐŗĐž Python-ĐēĐžĐ´Ņ Đˇ ŅиĐŋаĐŧи:
+
+```Python
+from datetime import date
+from pydantic import BaseModel
+
+# ĐĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ĐˇĐŧŅĐŊĐŊĐžŅ ŅĐē str
+# С ĐŋŅĐ´ŅŅиĐŧĐēĐžŅ Đ°Đ˛ŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ Ņ ŅĐĩдаĐēŅĐžŅŅ
+def main(user_id: str):
+ return user_id
+
+# ĐОдĐĩĐģŅ Pydantic
+class User(BaseModel):
+ id: int
+ name: str
+ joined: date
+```
+
+ĐŅиĐēĐģад виĐēĐžŅиŅŅаĐŊĐŊŅ ŅŅŅŅ ĐŧОдĐĩĐģŅ:
+
+```Python
+my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
+
+second_user_data = {
+ "id": 4,
+ "name": "Mary",
+ "joined": "2018-11-30",
+}
+
+my_second_user: User = User(**second_user_data)
+```
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+`**second_user_data` ОСĐŊаŅаŅ:
+
+ĐĐĩŅĐĩдаŅи ĐēĐģŅŅŅ Ņа СĐŊаŅĐĩĐŊĐŊŅ ŅĐģОвĐŊиĐēа `second_user_data` ŅĐē аŅĐŗŅĐŧĐĩĐŊŅи Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ "ĐēĐģŅŅ-СĐŊаŅĐĩĐŊĐŊŅ", ĐĩĐēвŅваĐģĐĩĐŊŅĐŊĐž `User(id=4, name="Mary", joined="2018-11-30")`.
+
+///
+
+### ĐŅĐ´ŅŅиĐŧĐēа ŅĐĩдаĐēŅĐžŅŅв (IDE)
+
+ФŅĐĩĐšĐŧвОŅĐē ŅĐŋŅĐžŅĐēŅОваĐŊиК ŅаĐē, ŅОй ĐąŅŅи ĐģĐĩĐŗĐēиĐŧ Ņ ŅĐŊŅŅŅŅивĐŊĐž СŅОСŅĐŧŅĐģиĐŧ. ĐŖŅŅ ŅŅŅĐĩĐŊĐŊŅ ŅĐĩŅŅŅваĐģиŅŅ Ņ ŅŅСĐŊиŅ
ŅĐĩдаĐēŅĐžŅаŅ
ŅĐĩ Đ´Đž ĐŋĐžŅаŅĐēŅ ŅОСŅОйĐēи, ŅОй СайĐĩСĐŋĐĩŅиŅи ĐŊаКĐēŅаŅиК Đ´ĐžŅвŅĐ´ ĐŋŅĐžĐŗŅаĐŧŅваĐŊĐŊŅ.
+
+Đа ŅĐĩСŅĐģŅŅаŅаĐŧи ĐžĐŋиŅŅваĐŊŅ ŅОСŅОйĐŊиĐēŅв Python ОдĐŊŅŅŅ Đˇ ĐŊаКĐŋĐžĐŋŅĐģŅŅĐŊŅŅиŅ
ŅŅĐŊĐēŅŅĐš Ņ "авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ".
+
+**FastAPI** ĐŋОвĐŊŅŅŅŅ ĐŋŅĐ´ŅŅиĐŧŅŅ Đ°Đ˛ŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ Ņ Đ˛ŅŅŅ
ĐŧŅŅŅŅŅ
, ŅĐžĐŧŅ Đ˛Đ°Đŧ ŅŅĐ´ĐēĐž дОвĐĩĐ´ĐĩŅŅŅŅ ĐŋОвĐĩŅŅаŅиŅŅ Đ´Đž Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+ĐŅиĐēĐģад авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ Ņ ŅĐĩдаĐēŅĐžŅаŅ
:
+
+* Ņ Visual Studio Code:
+
+
+
+* Ņ PyCharm:
+
+
+
+### ĐĐžŅĐžŅĐēиК ĐēОд
+FastAPI ĐŧĐ°Ņ ŅОСŅĐŧĐŊŅ ĐŊаĐģаŅŅŅваĐŊĐŊŅ **Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ**, аĐģĐĩ вŅŅ ĐŋаŅаĐŧĐĩŅŅи ĐŧĐžĐļĐŊа ĐŊаĐģаŅŅОвŅваŅи вŅĐ´ĐŋОвŅĐ´ĐŊĐž Đ´Đž ваŅиŅ
ĐŋĐžŅŅĐĩĐą. ĐĐ´ĐŊаĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ вŅĐĩ "ĐŋŅĐžŅŅĐž ĐŋŅаŅŅŅ".
+
+### ĐаĐģŅдаŅŅŅ
+* ĐŅĐ´ŅŅиĐŧĐēа ваĐģŅдаŅŅŅ Đ´ĐģŅ ĐąŅĐģŅŅĐžŅŅŅ (айО вŅŅŅ
?) **ŅиĐŋŅв даĐŊиŅ
Python**, СОĐēŅĐĩĐŧа:
+ * JSON-Ой'ŅĐēŅŅв (`dict`).
+ * JSON-ŅĐŋиŅĐēŅв (`list`) С виСĐŊаŅĐĩĐŊĐŊŅĐŧ ŅиĐŋŅв ĐĩĐģĐĩĐŧĐĩĐŊŅŅв.
+ * Đ ŅĐ´ĐēŅв (`str`) ŅС ĐŧŅĐŊŅĐŧаĐģŅĐŊĐžŅ Ņа ĐŧаĐēŅиĐŧаĐģŅĐŊĐžŅ Đ´ĐžĐ˛ĐļиĐŊĐžŅ.
+ * ЧиŅĐĩĐģ (`int`, `float`) С ОйĐŧĐĩĐļĐĩĐŊĐŊŅĐŧи ĐŧŅĐŊŅĐŧаĐģŅĐŊиŅ
Ņа ĐŧаĐēŅиĐŧаĐģŅĐŊиŅ
СĐŊаŅĐĩĐŊŅ ŅĐžŅĐž.
+
+* ĐаĐģŅдаŅŅŅ ŅĐēĐģадĐŊŅŅиŅ
ŅиĐŋŅв, ŅаĐēиŅ
ŅĐē:
+ * URL.
+ * Email.
+ * UUID.
+ * ...Ņа ŅĐŊŅŅ.
+
+ĐŖŅŅ Đ˛Đ°ĐģŅдаŅŅŅ Đ˛Đ¸ĐēĐžĐŊŅŅŅŅŅŅ ŅĐĩŅĐĩС ĐŊадŅĐšĐŊиК Ņа ĐŋĐĩŅĐĩвŅŅĐĩĐŊиК **Pydantic**.
+
+### ĐĐĩСĐŋĐĩĐēа Ņа авŅĐĩĐŊŅиŅŅĐēаŅŅŅ
+
+**FastAPI** ĐŋŅĐ´ŅŅиĐŧŅŅ Đ˛ĐąŅдОваĐŊŅ Đ°Đ˛ŅĐĩĐŊŅиŅŅĐēаŅŅŅ Ņа авŅĐžŅиСаŅŅŅ, ĐąĐĩС ĐŋŅивâŅСĐēи Đ´Đž ĐēĐžĐŊĐēŅĐĩŅĐŊиŅ
йаС даĐŊиŅ
Ņи ĐŧОдĐĩĐģĐĩĐš даĐŊиŅ
.
+
+ĐŅĐ´ŅŅиĐŧŅŅŅŅŅŅ Đ˛ŅŅ ŅŅ
ĐĩĐŧи ĐąĐĩСĐŋĐĩĐēи OpenAPI, вĐēĐģŅŅаŅŅи:
+
+* HTTP Basic.
+* **OAuth2** (ŅаĐēĐžĐļ ŅС ĐŋŅĐ´ŅŅиĐŧĐēĐžŅ **JWT-ŅĐžĐēĐĩĐŊŅв**). Đив. ĐŋŅĐ´ŅŅŅĐŊиĐē: [OAuth2 ŅС JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
+* ĐĐģŅŅŅ API в:
+ * ĐĐ°ĐŗĐžĐģОвĐēаŅ
.
+ * ĐаŅаĐŧĐĩŅŅаŅ
СаĐŋиŅŅ.
+ * Cookies ŅĐžŅĐž.
+
+Đ ŅаĐēĐžĐļ ŅŅŅ ĐŧĐžĐļĐģивОŅŅŅ ĐąĐĩСĐŋĐĩĐēи вŅĐ´ Starlette (СОĐēŅĐĩĐŧа **ŅĐĩŅŅĐšĐŊŅ cookies**).
+
+ĐŖŅŅ Đ˛ĐžĐŊи ŅŅвОŅĐĩĐŊŅ ŅĐē ĐąĐ°ĐŗĐ°ŅĐžŅĐ°ĐˇĐžĐ˛Ņ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи Ņа ĐēĐžĐŧĐŋĐžĐŊĐĩĐŊŅи, ŅĐēŅ ĐģĐĩĐŗĐēĐž ŅĐŊŅĐĩĐŗŅŅŅŅŅŅŅ Đˇ ваŅиĐŧи ŅиŅŅĐĩĐŧаĐŧи, ŅŅ
ОвиŅаĐŧи даĐŊиŅ
, ŅĐĩĐģŅŅŅĐšĐŊиĐŧи Ņа NoSQL йаСаĐŧи даĐŊиŅ
ŅĐžŅĐž.
+
+### ĐĐŋŅОвадĐļĐĩĐŊĐŊŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅĐĩĐš
+
+**FastAPI** ĐŧŅŅŅиŅŅ ĐŊадСвиŅаКĐŊĐž ĐŋŅĐžŅŅŅ Ņ Đ˛Đ¸ĐēĐžŅиŅŅаĐŊĐŊŅ, аĐģĐĩ ĐŋĐžŅŅĐļĐŊŅ ŅиŅŅĐĩĐŧŅ Đ˛ĐŋŅОвадĐļĐĩĐŊĐŊŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅĐĩĐš.
+
+* ĐаĐģĐĩĐļĐŊĐžŅŅŅ ĐŧĐžĐļŅŅŅ ĐŧаŅи вĐģаŅĐŊŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅ, ŅŅвОŅŅŅŅи ŅŅŅаŅŅ
ŅŅ Đ°ĐąĐž **"ĐŗŅĐ°Ņ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅĐĩĐš"**.
+* ĐŖŅŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž ĐēĐĩŅŅŅŅŅŅŅ ŅŅĐĩĐšĐŧвОŅĐēĐžĐŧ.
+* ĐŖŅŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅ ĐŧĐžĐļŅŅŅ ĐžŅŅиĐŧŅваŅи даĐŊŅ Đˇ СаĐŋиŅŅв Ņ ŅОСŅиŅŅваŅи **ОйĐŧĐĩĐļĐĩĐŊĐŊŅ ĐžĐŋĐĩŅаŅŅŅ ĐˇĐ° ŅĐģŅŅ
ĐžĐŧ** Ņа авŅĐžĐŧаŅиŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+* **ĐвŅĐžĐŧаŅиŅĐŊа ваĐģŅдаŅŅŅ** ĐŊавŅŅŅ Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв *ĐžĐŋĐĩŅаŅŅĐš ŅĐģŅŅ
Ņ*, виСĐŊаŅĐĩĐŊиŅ
Ņ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅŅ
.
+* ĐŅĐ´ŅŅиĐŧĐēа ŅĐēĐģадĐŊиŅ
ŅиŅŅĐĩĐŧ авŅĐĩĐŊŅиŅŅĐēаŅŅŅ ĐēĐžŅиŅŅŅваŅŅв, **С'ŅĐ´ĐŊаĐŊŅ ŅС йаСаĐŧи даĐŊиŅ
** ŅĐžŅĐž.
+* **ĐОдĐŊиŅ
ОйĐŧĐĩĐļĐĩĐŊŅ** ŅОдО виĐēĐžŅиŅŅаĐŊĐŊŅ ĐąĐ°Đˇ даĐŊиŅ
, ŅŅĐžĐŊŅĐĩĐŊĐ´Ņв ŅĐžŅĐž, аĐģĐĩ вОдĐŊĐžŅĐ°Ņ ĐŋŅĐžŅŅа ŅĐŊŅĐĩĐŗŅаŅŅŅ Đˇ ŅŅŅĐŧа ĐŊиĐŧи.
+
+### ĐĐĩĐŧĐ°Ņ ĐžĐąĐŧĐĩĐļĐĩĐŊŅ ĐŊа "ĐŋĐģĐ°ĐŗŅĐŊи"
+
+ĐйО ŅĐŊŅиĐŧи ŅĐģОваĐŧи, вОĐŊи ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊŅ â ĐŋŅĐžŅŅĐž ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ Ņа виĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐŊĐĩОйŅ
ŅĐ´ĐŊиК ĐēОд.
+
+ĐŅĐ´Ņ-ŅĐēа ŅĐŊŅĐĩĐŗŅаŅŅŅ ŅĐŋŅĐžŅĐēŅОваĐŊа ĐŊаŅŅŅĐģŅĐēи ĐŋŅĐžŅŅĐž (С виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ СаĐģĐĩĐļĐŊĐžŅŅĐĩĐš), ŅĐž ви ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи "ĐŋĐģĐ°ĐŗŅĐŊ" Đ´ĐģŅ ŅĐ˛ĐžĐŗĐž СаŅŅĐžŅŅĐŊĐēŅ Đ˛ŅŅĐžĐŗĐž Ņ 2 ŅŅĐ´ĐēаŅ
ĐēОдŅ, виĐēĐžŅиŅŅОвŅŅŅи ŅŅ ŅаĐŧŅ ŅŅŅŅĐēŅŅŅŅ Ņа ŅиĐŊŅаĐēŅиŅ, ŅĐž Đš Đ´ĐģŅ Đ˛Đ°ŅиŅ
*ĐžĐŋĐĩŅаŅŅĐš ŅĐģŅŅ
Ņ*.
+
+### ĐŅĐžŅĐĩŅŅОваĐŊĐž
+
+* 100% ĐŋĐžĐēŅиŅŅŅ ŅĐĩŅŅаĐŧи.
+* 100% аĐŊĐžŅОваĐŊа ŅиĐŋаĐŧи ĐēОдОва йаСа.
+* ĐиĐēĐžŅиŅŅОвŅŅŅŅŅŅ Ņ ŅОйОŅиŅ
ŅĐĩŅĐĩдОвиŅаŅ
.
+
+## ĐĐžĐļĐģивОŅŅŅ Starlette
+
+**FastAPI** ĐŋОвĐŊŅŅŅŅ ŅŅĐŧŅŅĐŊиК ŅС (Ņа ĐŋОйŅдОваĐŊиК ĐŊа ĐžŅĐŊОвŅ) Starlette. ĐĸĐžĐŧŅ ĐąŅĐ´Ņ-ŅĐēиК дОдаŅĐēОвиК ĐēОд Starlette, ŅĐēиК ви ĐŧаŅŅĐĩ, ŅаĐēĐžĐļ ĐŋŅаŅŅваŅиĐŧĐĩ.
+
+**FastAPI** ŅаĐēŅиŅĐŊĐž Ņ ĐŋŅĐ´ĐēĐģаŅĐžĐŧ **Starlette**. ĐĸĐžĐŧŅ, ŅĐēŅĐž ви вĐļĐĩ СĐŊаКОĐŧŅ ĐˇŅ Starlette айО виĐēĐžŅиŅŅОвŅŅŅĐĩ ĐšĐžĐŗĐž, ĐąŅĐģŅŅŅŅŅŅ ŅŅĐŊĐēŅŅĐžĐŊаĐģŅĐŊĐžŅŅŅ ĐŋŅаŅŅваŅиĐŧĐĩ ŅаĐē ŅаĐŧĐž.
+
+Đ **FastAPI** ви ĐžŅŅиĐŧŅŅŅĐĩ вŅŅ ĐŧĐžĐļĐģивОŅŅŅ **Starlette** (адĐļĐĩ FastAPI â ŅĐĩ, ĐŋĐž ŅŅŅŅ, Starlette ĐŊа ŅŅĐĩŅĐžŅдаŅ
):
+
+* РаСŅŅа ĐŋŅОдŅĐēŅивĐŊŅŅŅŅ. ĐĻĐĩ ОдиĐŊ ŅС ĐŊаКŅвидŅиŅ
ŅŅĐĩĐšĐŧвОŅĐēŅв ĐŊа Python, ĐŊа ŅŅвĐŊŅ Đˇ **NodeJS** Ņ **Go**.
+* ĐŅĐ´ŅŅиĐŧĐēа **WebSocket**.
+* ФОĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ Ņ ĐŋŅĐžŅĐĩŅŅ.
+* ĐОдŅŅ ĐˇĐ°ĐŋŅŅĐēŅ Ņа СавĐĩŅŅĐĩĐŊĐŊŅ ŅОйОŅи.
+* ĐĐģŅŅĐŊŅ Đ´ĐģŅ ŅĐĩŅŅŅваĐŊĐŊŅ, ĐŋОйŅдОваĐŊиК ĐŊа HTTPX.
+* ĐŅĐ´ŅŅиĐŧĐēа **CORS**, **GZip**, ŅŅаŅиŅĐŊиŅ
ŅаКĐģŅв, ĐŋĐžŅĐžĐēОвиŅ
вŅĐ´ĐŋОвŅĐ´ĐĩĐš.
+* ĐŅĐ´ŅŅиĐŧĐēа **ŅĐĩŅŅĐš** Ņ **cookie**.
+* 100% ĐŋĐžĐēŅиŅŅŅ ŅĐĩŅŅаĐŧи.
+* 100% аĐŊĐžŅОваĐŊа ŅиĐŋаĐŧи ĐēОдОва йаСа.
+
+## ĐĐžĐļĐģивОŅŅŅ Pydantic
+
+**FastAPI** ĐŋОвĐŊŅŅŅŅ ŅŅĐŧŅŅĐŊиК ŅС (Ņа ĐŋОйŅдОваĐŊиК ĐŊа ĐžŅĐŊОвŅ) Pydantic. ĐĸĐžĐŧŅ ĐąŅĐ´Ņ-ŅĐēиК дОдаŅĐēОвиК ĐēОд Pydantic, ŅĐēиК ви ĐŧаŅŅĐĩ, ŅаĐēĐžĐļ ĐŋŅаŅŅваŅиĐŧĐĩ.
+
+ĐĐēĐģŅŅаŅŅи СОвĐŊŅŅĐŊŅ ĐąŅĐąĐģŅĐžŅĐĩĐēи, ĐŋОйŅдОваĐŊŅ ŅаĐēĐžĐļ ĐŊа Pydantic, ŅаĐēŅ ŅĐē ORM, ODM Đ´ĐģŅ ĐąĐ°Đˇ даĐŊиŅ
.
+
+ĐĻĐĩ ŅаĐēĐžĐļ ОСĐŊаŅаŅ, ŅĐž в ĐąĐ°ĐŗĐ°ŅŅĐžŅ
виĐŋадĐēаŅ
ви ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи ŅОК ŅаĐŧиК Ой'ŅĐēŅ, ŅĐēиК ĐžŅŅиĐŧŅŅŅĐĩ С СаĐŋиŅŅ, **ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž в ĐąĐ°ĐˇŅ Đ´Đ°ĐŊиŅ
**, ĐžŅĐēŅĐģŅĐēи вŅĐĩ авŅĐžĐŧаŅиŅĐŊĐž ĐŋĐĩŅĐĩвŅŅŅŅŅŅŅŅ.
+
+ĐĸĐĩ Đļ ŅаĐŧĐĩ вŅĐ´ĐąŅваŅŅŅŅŅ Đš Ņ ĐˇĐ˛ĐžŅĐžŅĐŊĐžĐŧŅ ĐŊаĐŋŅŅĐŧĐēŅ â Ņ ĐąĐ°ĐŗĐ°ŅŅĐžŅ
виĐŋадĐēаŅ
ви ĐŧĐžĐļĐĩŅĐĩ ĐŋŅĐžŅŅĐž ĐŋĐĩŅĐĩдаŅи Ой'ŅĐēŅ, ŅĐēиК ĐžŅŅиĐŧŅŅŅĐĩ С йаСи даĐŊиŅ
, **ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐēĐģŅŅĐŊŅŅ**.
+
+Đ **FastAPI** ви ĐžŅŅиĐŧŅŅŅĐĩ вŅŅ ĐŧĐžĐļĐģивОŅŅŅ **Pydantic** (адĐļĐĩ FastAPI йаСŅŅŅŅŅŅ ĐŊа Pydantic Đ´ĐģŅ ĐžĐąŅОйĐēи вŅŅŅ
даĐŊиŅ
):
+
+* **ĐŅŅĐēĐžŅ ĐŋĐģŅŅаĐŊиĐŊи** :
+ * ĐĐĩ ĐŋĐžŅŅŅĐąĐŊĐž вŅиŅи ĐŊĐžĐ˛Ņ ĐŧĐžĐ˛Ņ Đ´ĐģŅ Đ˛Đ¸ĐˇĐŊаŅĐĩĐŊĐŊŅ ŅŅ
ĐĩĐŧ.
+ * Đ¯ĐēŅĐž ви СĐŊаŅŅĐĩ ŅиĐŋи Python, ви СĐŊаŅŅĐĩ, ŅĐē виĐēĐžŅиŅŅОвŅваŅи Pydantic.
+* ĐĐĩĐŗĐēĐž ĐŋŅаŅŅŅ Đˇ ваŅиĐŧ **IDE/ĐģŅĐŊŅĐĩŅĐžĐŧ/ĐŧОСĐēĐžĐŧ**:
+ * ĐŅĐēŅĐģŅĐēи ŅŅŅŅĐēŅŅŅи даĐŊиŅ
Pydantic Ņ ĐŋŅĐžŅŅĐž ĐĩĐēСĐĩĐŧĐŋĐģŅŅаĐŧи ĐēĐģаŅŅв, ŅĐēŅ Đ˛Đ¸ виСĐŊаŅаŅŅĐĩ; авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ, ĐģŅĐŊŅиĐŊĐŗ, mypy Ņ Đ˛Đ°Ņа ŅĐŊŅŅŅŅŅŅ ĐŋОвиĐŊĐŊŅ Đ´ĐžĐąŅĐĩ ĐŋŅаŅŅваŅи С ваŅиĐŧи ĐŋĐĩŅĐĩвŅŅĐĩĐŊиĐŧи даĐŊиĐŧи.
+* ĐаĐģŅдаŅŅŅ **ŅĐēĐģадĐŊиŅ
ŅŅŅŅĐēŅŅŅ**:
+ * ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ŅŅŅаŅŅ
ŅŅĐŊиŅ
ĐŧОдĐĩĐģĐĩĐš Pydantic. Python `typing`, `List` Ņ `Dict` ŅĐžŅĐž.
+ * ĐаĐģŅдаŅĐžŅи дОСвОĐģŅŅŅŅ ŅŅŅĐēĐž Ņ ĐŋŅĐžŅŅĐž виСĐŊаŅаŅи, ĐŋĐĩŅĐĩвŅŅŅŅи Đš Đ´ĐžĐēŅĐŧĐĩĐŊŅŅваŅи ŅĐēĐģадĐŊŅ ŅŅ
ĐĩĐŧи даĐŊиŅ
Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ JSON-ŅŅ
ĐĩĐŧи.
+ * Đи ĐŧĐžĐļĐĩŅĐĩ ĐŧаŅи ĐŗĐģийОĐēĐž **вĐēĐģадĐĩĐŊŅ JSON Ой'ŅĐēŅи** Ņа ĐŋĐĩŅĐĩвŅŅиŅи Ņа аĐŊĐžŅŅваŅи ŅŅ
вŅŅ.
+* **РОСŅиŅŅваĐŊŅŅŅŅ**:
+ * Pydantic дОСвОĐģŅŅ Đ˛Đ¸ĐˇĐŊаŅаŅи ĐēĐžŅиŅŅŅваŅŅĐēŅ ŅиĐŋи даĐŊиŅ
айО ŅОСŅиŅŅваŅи ваĐģŅдаŅŅŅ ĐŧĐĩŅОдаĐŧи в ĐŧОдĐĩĐģŅ Đ´ĐĩĐēĐžŅаŅĐžŅĐžĐŧ `validator`.
+* 100% ĐŋĐžĐēŅиŅŅŅ ŅĐĩŅŅаĐŧи.
diff --git a/docs/uk/docs/index.md b/docs/uk/docs/index.md
index 012bac2e2d..b573ee2598 100644
--- a/docs/uk/docs/index.md
+++ b/docs/uk/docs/index.md
@@ -6,7 +6,7 @@
-
+
diff --git a/docs/uk/docs/learn/index.md b/docs/uk/docs/learn/index.md
new file mode 100644
index 0000000000..7f9f21e572
--- /dev/null
+++ b/docs/uk/docs/learn/index.md
@@ -0,0 +1,5 @@
+# ĐавŅаĐŊĐŊŅ
+
+ĐŖ ŅŅĐžĐŧŅ ŅОСдŅĐģŅ ĐŊадаĐŊŅ Đ˛ŅŅŅĐŋĐŊŅ Ņа ĐŊавŅаĐģŅĐŊŅ ĐŧаŅĐĩŅŅаĐģи Đ´ĐģŅ Đ˛Đ¸Đ˛ŅĐĩĐŊĐŊŅ FastAPI.
+
+ĐĻĐĩ ĐŧĐžĐļĐŊа ŅĐžĐˇĐŗĐģŅдаŅи ŅĐē **ĐēĐŊĐ¸ĐŗŅ**, **ĐēŅŅŅ**, айО **ĐžŅŅŅŅĐšĐŊиК** Ņа ŅĐĩĐēĐžĐŧĐĩĐŊдОваĐŊиК ŅĐŋĐžŅŅĐą ĐžŅвОŅŅи FastAPI. đ
diff --git a/docs/uk/docs/tutorial/background-tasks.md b/docs/uk/docs/tutorial/background-tasks.md
new file mode 100644
index 0000000000..912ba8c2ac
--- /dev/null
+++ b/docs/uk/docs/tutorial/background-tasks.md
@@ -0,0 +1,85 @@
+# ФОĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅŅваŅи ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ, ŅĐēŅ ĐąŅĐ´ŅŅŅ Đ˛Đ¸ĐēĐžĐŊŅваŅиŅŅ *ĐŋŅŅĐģŅ* ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+
+ĐĻĐĩ ĐēĐžŅиŅĐŊĐž Đ´ĐģŅ ĐžĐŋĐĩŅаŅŅĐš, ŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžĐŊаŅи ĐŋŅŅĐģŅ ĐžĐąŅОйĐēи СаĐŋиŅŅ, аĐģĐĩ ĐēĐģŅŅĐŊŅŅ ĐŊĐĩ ОйОвâŅСĐēОвО ŅĐĩĐēаŅи СавĐĩŅŅĐĩĐŊĐŊŅ ŅŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ĐŋĐĩŅĐĩĐ´ ĐžŅŅиĐŧаĐŊĐŊŅĐŧ вŅĐ´ĐŋОвŅĐ´Ņ.
+
+ĐŅиĐēĐģади виĐēĐžŅиŅŅаĐŊĐŊŅ:
+
+* ĐадŅиĐģаĐŊĐŊŅ email-ŅĐŋОвŅŅĐĩĐŊŅ ĐŋŅŅĐģŅ Đ˛Đ¸ĐēĐžĐŊаĐŊĐŊŅ ĐŋĐĩвĐŊĐžŅ Đ´ŅŅ:
+ * ĐŅĐ´ĐēĐģŅŅĐĩĐŊĐŊŅ Đ´Đž ĐŋĐžŅŅĐžĐ˛ĐžĐŗĐž ŅĐĩŅвĐĩŅа Ņа ĐŊадŅиĐģаĐŊĐŊŅ ĐģиŅŅа ĐŧĐžĐļĐĩ СаКĐŧаŅи ĐēŅĐģŅĐēа ŅĐĩĐēŅĐŊĐ´. Đи ĐŧĐžĐļĐĩŅĐĩ вŅĐ´ŅĐ°ĐˇŅ ĐŋОвĐĩŅĐŊŅŅи вŅĐ´ĐŋОвŅĐ´Ņ, а email вŅĐ´ĐŋŅавиŅи Ņ ŅĐžĐŊŅ.
+* ĐĐąŅОйĐēа даĐŊиŅ
:
+ * ĐаĐŋŅиĐēĐģад, ŅĐēŅĐž ĐžŅŅиĐŧаĐŊĐž ŅаКĐģ, ŅĐēиК ĐŋĐžŅŅŅĐąĐŊĐž ОйŅОйиŅи Đ´ĐžĐ˛ĐŗĐžŅŅиваĐģиĐŧ ĐŋŅĐžŅĐĩŅĐžĐŧ, ĐŧĐžĐļĐŊа ĐŋОвĐĩŅĐŊŅŅи вŅĐ´ĐŋОвŅĐ´Ņ "Accepted" ("ĐŅиКĐŊŅŅĐž", HTTP 202) Ņ Đ˛Đ¸ĐēĐžĐŊаŅи ОйŅОйĐēŅ ŅаКĐģŅ Ņ ŅĐžĐŊŅ.
+
+## ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `BackgroundTasks`
+
+ĐĄĐŋĐžŅаŅĐēŅ ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ `BackgroundTasks` Ņ Đ´ĐžĐ´Đ°ĐšŅĐĩ ĐšĐžĐŗĐž ŅĐē ĐŋаŅаĐŧĐĩŅŅ Ņ ĐаŅŅ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* (path operation function) Đ´Đž `BackgroundTasks`:
+
+{* ../../docs_src/background_tasks/tutorial001.py hl[1,13] *}
+
+**FastAPI** авŅĐžĐŧаŅиŅĐŊĐž ŅŅвОŅиŅŅ ĐžĐą'ŅĐēŅ `BackgroundTasks` Ņ ĐŋĐĩŅĐĩдаŅŅŅ ĐšĐžĐŗĐž Ņ ŅĐĩĐš ĐŋаŅаĐŧĐĩŅŅ.
+
+
+## ĐĄŅвОŅĐĩĐŊĐŊŅ ŅŅĐŊĐēŅŅŅ ĐˇĐ°Đ´Đ°ŅŅ
+
+ĐĄŅвОŅŅŅŅ ŅŅĐŊĐēŅŅŅ, ŅĐēа ĐąŅĐ´Đĩ виĐēĐžĐŊŅваŅи ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ.
+
+ĐĻĐĩ СвиŅаКĐŊа ŅŅĐŊĐēŅŅŅ, ŅĐēа ĐŧĐžĐļĐĩ ĐžŅŅиĐŧŅваŅи ĐŋаŅаĐŧĐĩŅŅи.
+
+ĐĐžĐŊа ĐŧĐžĐļĐĩ ĐąŅŅи аŅиĐŊŅ
ŅĐžĐŊĐŊĐžŅ `async def` айО СвиŅаКĐŊĐžŅ `def` ŅŅĐŊĐēŅŅŅŅ â **FastAPI** ОйŅОйиŅŅ ŅŅ ĐŋŅавиĐģŅĐŊĐž.
+
+ĐŖ ĐŊаŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ŅŅĐŊĐēŅŅŅ ĐˇĐ°ĐŋиŅŅŅ Ņ ŅаКĐģ (ŅĐŧŅŅŅŅŅи ĐŊадŅиĐģаĐŊĐŊŅ email).
+
+Đ ĐžŅĐēŅĐģŅĐēи ĐžĐŋĐĩŅаŅŅŅ ĐˇĐ°ĐŋиŅŅ ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅ `async` Ņа `await`, Đŧи виСĐŊаŅаŅĐŧĐž ŅŅĐŊĐēŅŅŅ ŅĐē СвиŅаКĐŊŅ `def`:
+
+{* ../../docs_src/background_tasks/tutorial001.py hl[6:9] *}
+
+## ĐОдаваĐŊĐŊŅ ŅĐžĐŊĐžĐ˛ĐžŅ ĐˇĐ°Đ´Đ°ŅŅ
+
+ĐŖŅĐĩŅĐĩдиĐŊŅ ĐаŅĐžŅ *ŅŅĐŊĐēŅŅŅ ĐžĐąŅОйĐēи ŅĐģŅŅ
Ņ*, ĐŋĐĩŅĐĩдаКŅĐĩ ŅŅĐŊĐēŅŅŅ ĐˇĐ°Đ´Đ°ŅŅ Đ˛ Ой'ŅĐēŅ *background tasks*, виĐēĐžŅиŅŅОвŅŅŅи ĐŧĐĩŅОд `.add_task()`:
+
+{* ../../docs_src/background_tasks/tutorial001.py hl[14] *}
+
+`.add_task()` ĐŋŅиКĐŧĐ°Ņ Đ°ŅĐŗŅĐŧĐĩĐŊŅи:
+
+* ФŅĐŊĐēŅŅŅ ĐˇĐ°Đ´Đ°Ņа, ŅĐēа ĐąŅĐ´Đĩ виĐēĐžĐŊŅваŅиŅŅ Ņ ŅĐžĐŊОвОĐŧŅ ŅĐĩĐļиĐŧŅ (`write_notification`). ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ĐŋĐĩŅĐĩдаŅŅŅŅŅ ĐžĐąĘŧŅĐēŅ ĐąĐĩС Đ´ŅĐļĐžĐē.
+* ĐŅĐ´Ņ-ŅĐēа ĐŋĐžŅĐģŅдОвĐŊŅŅŅŅ Đ°ŅĐŗŅĐŧĐĩĐŊŅŅв, ŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋĐĩŅĐĩдаŅи Ņ ŅŅĐŊĐēŅŅŅ ĐˇĐ°Đ˛Đ´Đ°ĐŊĐŊŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´ĐŊĐžĐŧŅ ĐŋĐžŅŅĐ´ĐēŅ (`email`).
+* ĐŅĐ´Ņ-ŅĐēŅ ŅĐŧĐĩĐŊОваĐŊŅ Đ°ŅĐŗŅĐŧĐĩĐŊŅи, ŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋĐĩŅĐĩдаŅи Ņ ŅŅĐŊĐēŅŅŅ ĐˇĐ°Đ´Đ°ŅŅ (`message="some notification"`).
+
+## ĐĐŋŅОвадĐļĐĩĐŊĐŊŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅĐĩĐš
+
+ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `BackgroundTasks` ŅаĐēĐžĐļ ĐŋŅаŅŅŅ Đˇ ŅиŅŅĐĩĐŧĐžŅ Đ˛ĐŋŅОвадĐļĐĩĐŊĐŊŅ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅĐĩĐš. Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅ ŅиĐŋŅ `BackgroundTasks` ĐŊа ŅŅСĐŊиŅ
ŅŅвĐŊŅŅ
: Ņ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, Ņ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅ (dependable), Ņ ĐŋŅĐ´ СаĐģĐĩĐļĐŊĐžŅŅŅ ŅĐžŅĐž.
+
+**FastAPI** СĐŊаŅ, ŅĐē Đ´ŅŅŅи в ĐēĐžĐļĐŊĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ Ņ ŅĐē ĐŋОвŅĐžŅĐŊĐž виĐēĐžŅиŅŅОвŅваŅи ОдиĐŊ Ņ ŅОК ŅаĐŧиК Ой'ŅĐēŅ, ŅОй ŅŅŅ ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ ĐąŅĐģи ОйâŅĐ´ĐŊаĐŊŅ Ņа виĐēĐžĐŊŅваĐģиŅŅ Ņ ŅĐžĐŊОвОĐŧŅ ŅĐĩĐļиĐŧŅ ĐŋŅŅĐģŅ ĐˇĐ°Đ˛ĐĩŅŅĐĩĐŊĐŊŅ ĐžŅĐŊОвĐŊĐžĐŗĐž СаĐŋиŅŅ.
+
+{* ../../docs_src/background_tasks/tutorial002_an_py310.py hl[13,15,22,25] *}
+
+ĐŖ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ ĐŋОвŅĐ´ĐžĐŧĐģĐĩĐŊĐŊŅ ĐąŅĐ´ŅŅŅ ĐˇĐ°ĐŋиŅаĐŊŅ Ņ ŅаКĐģ `log.txt` *ĐŋŅŅĐģŅ* ŅĐžĐŗĐž, ŅĐē вŅĐ´ĐŋОвŅĐ´Ņ ĐąŅĐ´Đĩ ĐŊадŅŅĐģаĐŊа.
+
+Đ¯ĐēŅĐž Ņ ĐˇĐ°ĐŋиŅŅ ĐąŅв ĐŋĐĩŅĐĩдаĐŊиК query-ĐŋаŅаĐŧĐĩŅŅ, вŅĐŊ ĐąŅĐ´Đĩ СаĐŋиŅаĐŊиК Ņ ĐģĐžĐŗ Ņ ŅĐžĐŊОвŅĐš СадаŅŅ.
+
+Đ ĐŋĐžŅŅĐŧ ŅĐŊŅа ŅĐžĐŊОва СадаŅа, ŅĐēа ŅŅвОŅŅŅŅŅŅŅ Ņ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, СаĐŋиŅĐĩ ĐŋОвŅĐ´ĐžĐŧĐģĐĩĐŊĐŊŅ Đˇ виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ path ĐŋаŅаĐŧĐĩŅŅа `email`.
+
+## ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+ĐĐģĐ°Ņ `BackgroundTasks` ĐŋĐžŅ
ОдиŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž С `starlette.background`.
+
+ĐŅĐŊ ŅĐŧĐŋĐžŅŅŅŅŅŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž Ņ FastAPI, ŅОй Đи ĐŧĐžĐŗĐģи виĐēĐžŅиŅŅОвŅваŅи ĐšĐžĐŗĐž С `fastapi` Ņ Đ˛Đ¸ĐŋадĐēОвО ĐŊĐĩ ŅĐŧĐŋĐžŅŅŅваĐģи `BackgroundTask` (ĐąĐĩС s в ĐēŅĐŊŅŅ) С `starlette.background`.
+
+Đ¯ĐēŅĐž виĐēĐžŅиŅŅОвŅваŅи ĐģиŅĐĩ `BackgroundTasks` (а ĐŊĐĩ `BackgroundTask`), ŅĐž ĐšĐžĐŗĐž ĐŧĐžĐļĐŊа ĐŋĐĩŅĐĩдаваŅи ŅĐē ĐŋаŅаĐŧĐĩŅŅ Ņ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, Ņ **FastAPI** ĐŋĐžĐ´ĐąĐ°Ņ ĐŋŅĐž вŅĐĩ ŅĐŊŅĐĩ, ŅаĐē ŅаĐŧĐž ŅĐē Ņ ĐŋŅĐž виĐēĐžŅиŅŅаĐŊĐŊŅ ĐžĐą'ŅĐēŅа `Request`.
+
+ĐĸаĐēĐžĐļ ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи `BackgroundTask` ĐžĐēŅĐĩĐŧĐž в FastAPI, аĐģĐĩ Đ´ĐģŅ ŅŅĐžĐŗĐž ĐаĐŧ дОвĐĩĐ´ĐĩŅŅŅŅ ŅŅвОŅиŅи Ой'ŅĐēŅ Ņ ĐēĐžĐ´Ņ Ņа ĐŋОвĐĩŅĐŊŅŅи Starlette `Response`, вĐēĐģŅŅаŅŅи ĐšĐžĐŗĐž.
+
+ĐĐĩŅаĐģŅĐŊŅŅĐĩ ĐŧĐžĐļĐŊа ĐŋĐžŅиŅаŅи в ĐžŅŅŅŅĐšĐŊŅĐš Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Starlette ĐŋŅĐž ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ .
+
+## ĐаŅŅĐĩŅĐĩĐļĐĩĐŊĐŊŅ
+
+Đ¯ĐēŅĐž ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžĐŊŅваŅи ŅĐēĐģадĐŊŅ ŅĐžĐŊĐžĐ˛Ņ ĐžĐąŅиŅĐģĐĩĐŊĐŊŅ, Ņ ĐŋŅи ŅŅĐžĐŧŅ ĐŊĐĩĐŧа ĐŋĐžŅŅĐĩйи СаĐŋŅŅĐēаŅи ŅŅ
Ņ ŅĐžĐŧŅ Đļ ĐŋŅĐžŅĐĩŅŅ (ĐŊаĐŋŅиĐēĐģад, ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž ŅĐŋŅĐģŅĐŊĐžĐŗĐž Đ´ĐžŅŅŅĐŋŅ Đ´Đž ĐŋаĐŧâŅŅŅ Ņи СĐŧŅĐŊĐŊиŅ
), ĐŧĐžĐļĐģивО, ваŅŅĐž ŅĐēĐžŅиŅŅаŅиŅŅ ĐąŅĐģŅŅ ĐŋĐžŅŅĐļĐŊиĐŧи ŅĐŊŅŅŅŅĐŧĐĩĐŊŅаĐŧи, ŅаĐēиĐŧи ŅĐē Celery.
+
+ĐĸаĐēŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи СаСвиŅаК ĐŋĐžŅŅĐĩĐąŅŅŅŅ ŅĐēĐģадĐŊŅŅĐžŅ ĐēĐžĐŊŅŅĐŗŅŅаŅŅŅ Ņа ĐŧĐĩĐŊĐĩĐ´ĐļĐĩŅа ŅĐĩŅĐŗĐ¸ ĐŋОвŅĐ´ĐžĐŧĐģĐĩĐŊŅ/СавдаĐŊŅ, ĐŊаĐŋŅиĐēĐģад, RabbitMQ айО Redis. ĐĐ´ĐŊаĐē вОĐŊи дОСвОĐģŅŅŅŅ Đ˛Đ¸ĐēĐžĐŊŅваŅи ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ Đ˛ ĐēŅĐģŅĐēĐžŅ
ĐŋŅĐžŅĐĩŅаŅ
Ņ ĐŊавŅŅŅ ĐŊа ĐēŅĐģŅĐēĐžŅ
ŅĐĩŅвĐĩŅаŅ
.
+
+Đ¯ĐēŅĐž Đļ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐžŅŅиĐŧаŅи Đ´ĐžŅŅŅĐŋ Đ´Đž СĐŧŅĐŊĐŊиŅ
Ņ ĐžĐąâŅĐēŅŅв ŅС ŅŅŅŅ Đļ **FastAPI** - ĐŋŅĐžĐŗŅаĐŧи айО виĐēĐžĐŊŅваŅи ĐŊĐĩвĐĩĐģиĐēŅ ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ˛Đ´Đ°ĐŊĐŊŅ (ĐŊаĐŋŅиĐēĐģад, ĐŊадŅиĐģаŅи ŅĐŋОвŅŅĐĩĐŊĐŊŅ ĐĩĐģĐĩĐēŅŅĐžĐŊĐŊĐžŅ ĐŋĐžŅŅĐžŅ), Đ´ĐžŅŅаŅĐŊŅĐž ĐŋŅĐžŅŅĐž виĐēĐžŅиŅŅОвŅваŅи `BackgroundTasks`.
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+ĐĐŧĐŋĐžŅŅŅĐšŅĐĩ Ņа виĐēĐžŅиŅŅОвŅĐšŅĐĩ `BackgroundTasks` ŅĐē ĐŋаŅаĐŧĐĩŅŅ Ņ *ŅŅĐŊĐēŅŅŅŅ
ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* Ņа СаĐģĐĩĐļĐŊĐžŅŅŅŅ
, ŅОй дОдаваŅи ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ.
diff --git a/docs/uk/docs/tutorial/body-multiple-params.md b/docs/uk/docs/tutorial/body-multiple-params.md
new file mode 100644
index 0000000000..e2acf8a703
--- /dev/null
+++ b/docs/uk/docs/tutorial/body-multiple-params.md
@@ -0,0 +1,170 @@
+# ĐĸŅĐģĐž СаĐŋиŅŅ - ĐĐĩĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв
+
+ĐĸĐĩĐŋĐĩŅ, ĐēĐžĐģи Đŧи ŅĐžĐˇĐŗĐģŅĐŊŅĐģи виĐēĐžŅиŅŅаĐŊĐŊŅ `Path` Ņа `Query`, ŅĐžĐˇĐŗĐģŅĐŊŅĐŧĐž ĐąŅĐģŅŅ ĐŋŅĐžŅŅĐŊŅŅŅ ŅĐŋĐžŅОйи ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅŅĐģа СаĐŋиŅŅ Đ˛ **FastAPI**.
+
+## ĐĐŧŅŅŅваĐŊĐŊŅ `Path`, `Query` Ņа ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа СаĐŋиŅŅ
+
+ĐĐž-ĐŋĐĩŅŅĐĩ, СвŅŅĐŊĐž, Đи ĐŧĐžĐļĐĩŅĐĩ вŅĐģŅĐŊĐž СĐŧŅŅŅваŅи ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅŅв `Path`, `Query` Ņа ŅŅĐģа СаĐŋиŅŅ, Ņ **FastAPI** ĐŋŅавиĐģŅĐŊĐž ŅŅ
ОйŅОйиŅŅ.
+
+ĐĸаĐēĐžĐļ Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅи ŅŅĐģа ŅĐē ĐŊĐĩОйОвâŅСĐēОвŅ, вŅŅаĐŊОвивŅи Đ´ĐģŅ ĐŊиŅ
СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `None`:
+
+{* ../../docs_src/body_multiple_params/tutorial001_an_py310.py hl[18:20] *}
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž в ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ĐŋаŅаĐŧĐĩŅŅ `item`, ŅĐēиК ĐąĐĩŅĐĩŅŅŅŅ Đˇ ŅŅĐģа СаĐŋиŅŅ, Ņ ĐŊĐĩОйОв'ŅСĐēОвиĐŧ, ĐžŅĐēŅĐģŅĐēи ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `None`.
+
+///
+
+## ĐĐĩĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа СаĐŋиŅŅ
+
+ĐŖ ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* ĐžŅŅĐēŅваĐģа JSON С аŅŅийŅŅаĐŧи `Item`, ĐŊаĐŋŅиĐēĐģад:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+}
+```
+ĐĐģĐĩ Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи Đ´ĐĩĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа, ĐŊаĐŋŅиĐēĐģад `item` Ņа `user`:
+
+{* ../../docs_src/body_multiple_params/tutorial002_py310.py hl[20] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ **FastAPI** ŅОСĐŋŅСĐŊаŅ, ŅĐž Ņ ĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа (два ĐŋаŅаĐŧĐĩŅŅи Ņ ĐŧОдĐĩĐģŅĐŧи Pydantic).
+
+ĐĸĐžĐŧŅ Đ˛ŅĐŊ виĐēĐžŅиŅŅĐ°Ņ ĐŊаСви ĐŋаŅаĐŧĐĩŅŅŅв ŅĐē ĐēĐģŅŅŅ (ĐŊаСви ĐŋĐžĐģŅв) Ņ ŅŅĐģŅ ĐˇĐ°ĐŋиŅŅ, ĐžŅŅĐēŅŅŅи:
+
+```JSON
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ },
+ "user": {
+ "username": "dave",
+ "full_name": "Dave Grohl"
+ }
+}
+```
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž Ņ
ĐžŅа `item` ĐžĐŗĐžĐģĐžŅĐĩĐŊĐž, ŅаĐē ŅаĐŧĐž ŅĐē Ņ ŅаĐŊŅŅĐĩ, ŅĐĩĐŋĐĩŅ Đ˛ŅĐŊ ĐžŅŅĐēŅŅŅŅŅŅ Đ˛ ŅŅĐģŅ ĐŋŅĐ´ ĐēĐģŅŅĐĩĐŧ `item`.
+
+///
+
+**FastAPI** авŅĐžĐŧаŅиŅĐŊĐž ĐēĐžĐŊвĐĩŅŅŅŅ Đ´Đ°ĐŊŅ ŅС СаĐŋиŅŅ ŅаĐēиĐŧ ŅиĐŊĐžĐŧ, ŅОй ĐŋаŅаĐŧĐĩŅŅ `item` ĐžŅŅиĐŧав ŅвŅĐš вĐŧŅŅŅ, Ņ ŅĐĩ Đļ ŅаĐŧĐĩ ŅŅĐžŅŅŅŅŅŅŅ `user`.
+
+ĐŅĐŊ виĐēĐžĐŊĐ°Ņ Đ˛Đ°ĐģŅдаŅŅŅ ŅĐēĐģадĐĩĐŊиŅ
даĐŊиŅ
Ņ ĐˇĐ°Đ´ĐžĐēŅĐŧĐĩĐŊŅŅŅ ŅŅ
вŅĐ´ĐŋОвŅĐ´ĐŊиĐŧ ŅиĐŊĐžĐŧ Ņ ŅŅ
ĐĩĐŧŅ OpenAPI Ņа в авŅĐžĐŧаŅиŅĐŊŅĐš Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+## ĐдиĐŊиŅĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ Đ˛ ŅŅĐģŅ ĐˇĐ°ĐŋиŅŅ
+
+ĐĸаĐē ŅаĐŧĐž ŅĐē Ņ `Query` Ņ `Path` Đ´ĐģŅ Đ˛Đ¸ĐˇĐŊаŅĐĩĐŊĐŊŅ Đ´ĐžĐ´Đ°ŅĐēОвиŅ
даĐŊиŅ
Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв СаĐŋиŅŅ Ņа ŅĐģŅŅ
Ņ, **FastAPI** ĐŊĐ°Đ´Đ°Ņ ĐĩĐēвŅваĐģĐĩĐŊŅĐŊиК `Body`.
+
+ĐаĐŋŅиĐēĐģад, ŅОСŅиŅŅŅŅи ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅ ĐŧОдĐĩĐģŅ, Đи ĐŧĐžĐļĐĩŅĐĩ виŅŅŅиŅи дОдаŅи ŅĐĩ ОдиĐŊ ĐēĐģŅŅ `importance` в ŅĐĩ Đļ ŅаĐŧĐĩ ŅŅĐģĐž СаĐŋиŅŅ ŅаСОĐŧ ŅС `item` Ņ `user`.
+
+Đ¯ĐēŅĐž Đи ĐžĐŗĐžĐģĐžŅиŅĐĩ ĐšĐžĐŗĐž ŅĐē Ņ, ŅĐž, ĐžŅĐēŅĐģŅĐēи ŅĐĩ ОдиĐŊиŅĐŊĐĩ СĐŊаŅĐĩĐŊĐŊŅ, **FastAPI** ĐŋŅиĐŋŅŅĐēаŅиĐŧĐĩ, ŅĐž ŅĐĩ ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ (query parameter).
+
+ĐĐģĐĩ Đи ĐŧĐžĐļĐĩŅĐĩ вĐēаСаŅи **FastAPI** ОйŅОйĐģŅŅи ĐšĐžĐŗĐž ŅĐē ŅĐŊŅиК ĐēĐģŅŅ ŅŅĐģа (body key), виĐēĐžŅиŅŅОвŅŅŅи `Body`:
+
+{* ../../docs_src/body_multiple_params/tutorial003_an_py310.py hl[23] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ **FastAPI** ĐžŅŅĐēŅваŅиĐŧĐĩ ŅŅĐģĐž СаĐŋиŅŅ Ņ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŗĐģŅĐ´Ņ:
+
+```JSON
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ },
+ "user": {
+ "username": "dave",
+ "full_name": "Dave Grohl"
+ },
+ "importance": 5
+}
+```
+ĐĐŊĐžĐ˛Ņ Đļ ŅаĐēи, **FastAPI** ĐēĐžĐŊвĐĩŅŅŅваŅиĐŧĐĩ ŅиĐŋи даĐŊиŅ
, ĐŋĐĩŅĐĩвŅŅŅŅиĐŧĐĩ ŅŅ
, ŅŅвОŅŅваŅиĐŧĐĩ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ŅĐžŅĐž.
+
+## ĐĐĩĐēŅĐģŅĐēа body Ņа query ĐŋаŅаĐŧĐĩŅŅŅв
+
+ĐвŅŅĐŊĐž, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи дОдаŅĐēĐžĐ˛Ņ query ĐŋаŅаĐŧĐĩŅŅи СаĐŋиŅŅ, ĐēĐžĐģи ŅĐĩ ĐŊĐĩОйŅ
ŅĐ´ĐŊĐž, ĐŊа дОдаŅĐžĐē Đ´Đž ĐąŅĐ´Ņ-ŅĐēиŅ
ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа СаĐŋиŅŅ.
+
+ĐŅĐēŅĐģŅĐēи Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐžĐēŅĐĩĐŧŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ŅĐŊŅĐĩŅĐŋŅĐĩŅŅŅŅŅŅŅ ŅĐē ĐŋаŅаĐŧĐĩŅŅи СаĐŋиŅŅ, ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž ŅвĐŊĐž дОдаваŅи `Query`, ĐŧĐžĐļĐŊа ĐŋŅĐžŅŅĐž виĐēĐžŅиŅŅаŅи:
+
+```Python
+q: Union[str, None] = None
+```
+
+ĐйО в Python 3.10 Ņа виŅĐĩ:
+
+```Python
+q: str | None = None
+```
+
+ĐаĐŋŅиĐēĐģад:
+
+{* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *}
+
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+`Body` ŅаĐēĐžĐļ ĐŧĐ°Ņ ŅŅ ŅаĐŧŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ ĐŋаŅаĐŧĐĩŅŅи ваĐģŅдаŅŅŅ Ņа ĐŧĐĩŅадаĐŊиŅ
, ŅĐž Đš `Query`, `Path` Ņа ŅĐŊŅŅ, ŅĐēŅ Đи ĐŋОйаŅиŅĐĩ ĐŋŅСĐŊŅŅĐĩ.
+
+///
+
+## ĐĐēĐģадĐĩĐŊиК ĐŋООдиĐŊĐžĐēиК ĐŋаŅаĐŧĐĩŅŅ ŅŅĐģа СаĐŋиŅŅ
+
+ĐŅиĐŋŅŅŅиĐŧĐž, Ņ Đ˛Đ°Ņ Ņ ĐģиŅĐĩ ОдиĐŊ ĐŋаŅаĐŧĐĩŅŅ ŅŅĐģа СаĐŋиŅŅ `item` С ĐŧОдĐĩĐģŅ Pydantic `Item`.
+
+Đа СаĐŧОвŅŅваĐŊĐŊŅĐŧ **FastAPI** ĐžŅŅĐēŅваŅиĐŧĐĩ, ŅĐž ŅŅĐģĐž СаĐŋиŅŅ ĐŧŅŅŅиŅиĐŧĐĩ вĐŧŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž.
+
+ĐĐģĐĩ ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ, ŅОй вŅĐŊ ĐžŅŅĐēŅвав JSON С ĐēĐģŅŅĐĩĐŧ `item`, а вŅĐĩŅĐĩдиĐŊŅ â вĐŧŅŅŅ ĐŧОдĐĩĐģŅ (ŅаĐē, ŅĐē ŅĐĩ вŅĐ´ĐąŅваŅŅŅŅŅ ĐŋŅи ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ Đ´ĐžĐ´Đ°ŅĐēОвиŅ
ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа), Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи ŅĐŋĐĩŅŅаĐģŅĐŊиК ĐŋаŅаĐŧĐĩŅŅ `Body` â `embed`:
+
+```Python
+item: Item = Body(embed=True)
+```
+
+ŅĐē Ņ ĐŋŅиĐēĐģадŅ:
+
+{* ../../docs_src/body_multiple_params/tutorial005_an_py310.py hl[17] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ **FastAPI** ĐžŅŅĐēŅваŅиĐŧĐĩ ŅŅĐģĐž СаĐŋиŅŅ ŅаĐēĐžĐŗĐž Đ˛Đ¸ĐŗĐģŅĐ´Ņ:
+
+```JSON hl_lines="2"
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ }
+}
+```
+
+СаĐŧŅŅŅŅ:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+}
+```
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаваŅи ĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐģа Đ´Đž ĐаŅĐžŅ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* (*path operation function*), ĐŊавŅŅŅ ŅĐēŅĐž СаĐŋĐ¸Ņ ĐŧĐžĐļĐĩ ĐŧаŅи ĐģиŅĐĩ ОдĐŊĐĩ ŅŅĐģĐž.
+
+ĐĐģĐĩ **FastAPI** ОйŅОйиŅŅ ŅĐĩ, ĐŊадаŅŅŅ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊŅ Đ´Đ°ĐŊŅ Ņ ŅŅĐŊĐēŅŅŅ, ĐŋĐĩŅĐĩвŅŅиŅŅ ŅŅ
Ņа СадОĐēŅĐŧĐĩĐŊŅŅŅ ĐēĐžŅĐĩĐēŅĐŊŅ ŅŅ
ĐĩĐŧŅ Đ˛ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*.
+
+ĐĸаĐēĐžĐļ Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи ĐžĐēŅĐĩĐŧŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, ŅĐēŅ ĐąŅĐ´ŅŅŅ ĐžŅŅиĐŧаĐŊŅ ŅĐē ŅаŅŅиĐŊа ŅŅĐģа СаĐŋиŅŅ.
+
+ĐŅŅĐŧ ŅĐžĐŗĐž, Đи ĐŧĐžĐļĐĩŅĐĩ вĐēаСаŅи **FastAPI** вйŅдОвŅваŅи ŅŅĐģĐž в ĐēĐģŅŅ, ĐŊавŅŅŅ ŅĐēŅĐž ĐžĐŗĐžĐģĐžŅĐĩĐŊĐž ĐģиŅĐĩ ОдиĐŊ ĐŋаŅаĐŧĐĩŅŅ.
diff --git a/docs/uk/docs/tutorial/body-nested-models.md b/docs/uk/docs/tutorial/body-nested-models.md
new file mode 100644
index 0000000000..abc33f2eb3
--- /dev/null
+++ b/docs/uk/docs/tutorial/body-nested-models.md
@@ -0,0 +1,245 @@
+# ĐĸŅĐģĐž СаĐŋиŅŅ - ĐĐēĐģадĐĩĐŊŅ ĐŧОдĐĩĐģŅ
+
+Đ **FastAPI** Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅаŅи, ĐŋĐĩŅĐĩвŅŅŅŅи, Đ´ĐžĐēŅĐŧĐĩĐŊŅŅваŅи Ņа виĐēĐžŅиŅŅОвŅваŅи ĐŧОдĐĩĐģŅ, ŅĐēŅ ĐŧĐžĐļŅŅŅ ĐąŅŅи вĐēĐģадĐĩĐŊŅ ĐŊа ĐąŅĐ´Ņ-ŅĐēŅ ĐŗĐģийиĐŊŅ (СавдŅĐēи Pydantic).
+
+## ĐĐžĐģŅ ŅĐŋиŅĐēŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи аŅŅийŅŅ ŅĐē ĐŋŅĐ´ŅиĐŋ. ĐаĐŋŅиĐēĐģад, Python-ŅĐŋиŅĐžĐē (`list`):
+
+{* ../../docs_src/body_nested_models/tutorial001_py310.py hl[12] *}
+
+ĐĻĐĩ СŅОйиŅŅ `tags` ŅĐŋиŅĐēĐžĐŧ, Ņ
ĐžŅа ĐŊĐĩ виСĐŊаŅаŅŅŅŅŅ ŅиĐŋ ĐĩĐģĐĩĐŧĐĩĐŊŅŅв ŅĐŋиŅĐēŅ.
+
+## ĐĐžĐģŅ ŅĐŋиŅĐēŅ Đˇ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ ŅиĐŋŅ
+
+ĐĐģĐĩ Python ĐŧĐ°Ņ ŅĐŋĐĩŅиŅŅŅĐŊиК ŅĐŋĐžŅŅĐą ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅĐŋиŅĐēŅв С вĐŊŅŅŅŅŅĐŊŅĐŧи ŅиĐŋаĐŧи айО "ĐŋаŅаĐŧĐĩŅŅаĐŧи ŅиĐŋŅ":
+### ĐĐŧĐŋĐžŅŅŅŅĐŧĐž `List` С ĐŧОдŅĐģŅ typing
+
+ĐŖ Python 3.9 Ņ Đ˛Đ¸ŅĐĩ ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи ŅŅаĐŊдаŅŅĐŊиК `list` Đ´ĐģŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅаĐēиŅ
ŅиĐŋŅв, ŅĐē Đŧи ĐŋОйаŅиĐŧĐž ĐŊиĐļŅĐĩ. đĄ
+
+ĐĐģĐĩ в Python вĐĩŅŅŅŅ Đ´Đž 3.9 (вŅĐ´ 3.6 Ņ Đ˛Đ¸ŅĐĩ) ŅĐŋĐžŅаŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž ŅĐŧĐŋĐžŅŅŅваŅи `List` С ĐŧОдŅĐģŅ ŅŅаĐŊдаŅŅĐŊĐžŅ ĐąŅĐąĐģŅĐžŅĐĩĐēи Python `typing`:
+
+{* ../../docs_src/body_nested_models/tutorial002.py hl[1] *}
+
+### ĐĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ `list` С ĐŋаŅаĐŧĐĩŅŅĐžĐŧ ŅиĐŋŅ
+
+ЊОй ĐžĐŗĐžĐģĐžŅиŅи ŅиĐŋи С ĐŋаŅаĐŧĐĩŅŅаĐŧи ŅиĐŋŅ (вĐŊŅŅŅŅŅĐŊŅĐŧи ŅиĐŋаĐŧи), ŅаĐēиĐŧи ŅĐē `list`, `dict`, `tuple`:
+
+* Đ¯ĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ вĐĩŅŅŅŅ Python Đ´Đž 3.9, ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ ŅŅ
вŅĐ´ĐŋОвŅĐ´ĐŊŅ Đ˛ĐĩŅŅŅŅ Đˇ ĐŧОдŅĐģŅ `typing`.
+* ĐĐĩŅĐĩдаКŅĐĩ вĐŊŅŅŅŅŅĐŊŅ ŅиĐŋи ŅĐē "ĐŋаŅаĐŧĐĩŅŅи ŅиĐŋŅ", виĐēĐžŅиŅŅОвŅŅŅи ĐēвадŅаŅĐŊŅ Đ´ŅĐļĐēи: `[` and `]`.
+
+ĐŖ Python 3.9 ŅĐĩ ĐąŅĐ´Đĩ Đ˛Đ¸ĐŗĐģŅдаŅи ŅаĐē:
+
+```Python
+my_list: list[str]
+```
+
+ĐŖ вĐĩŅŅŅŅŅ
Python Đ´Đž 3.9 ŅĐĩ Đ˛Đ¸ĐŗĐģŅĐ´Đ°Ņ ŅаĐē:
+
+```Python
+from typing import List
+
+my_list: List[str]
+```
+
+ĐĻĐĩ ŅŅаĐŊдаŅŅĐŊиК ŅиĐŊŅаĐēŅĐ¸Ņ Python Đ´ĐģŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅиĐŋŅв.
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ ŅОК ŅаĐŧиК ŅŅаĐŊдаŅŅĐŊиК ŅиĐŊŅаĐēŅĐ¸Ņ Đ´ĐģŅ Đ°ŅŅийŅŅŅв ĐŧОдĐĩĐģĐĩĐš С вĐŊŅŅŅŅŅĐŊŅĐŧи ŅиĐŋаĐŧи.
+
+ĐŅĐļĐĩ, Ņ ĐŊаŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ, Đŧи ĐŧĐžĐļĐĩĐŧĐž СŅОйиŅи `tags` ŅаĐŧĐĩ "ŅĐŋиŅĐēĐžĐŧ ŅŅĐ´ĐēŅв":
+
+{* ../../docs_src/body_nested_models/tutorial002_py310.py hl[12] *}
+
+## ĐĸиĐŋи ĐŧĐŊĐžĐļиĐŊ
+
+ĐĐģĐĩ ĐŋĐžŅŅĐŧ Đŧи ĐŋОдŅĐŧаĐģи, ŅĐž ŅĐĩĐŗĐ¸ ĐŊĐĩ ĐŋОвиĐŊĐŊŅ ĐŋОвŅĐžŅŅваŅиŅŅ, вОĐŊи, ĐšĐŧОвŅŅĐŊĐž, ĐŋОвиĐŊĐŊŅ ĐąŅŅи ŅĐŊŅĐēаĐģŅĐŊиĐŧи ŅŅĐ´ĐēаĐŧи.
+
+Đ Python ĐŧĐ°Ņ ŅĐŋĐĩŅŅаĐģŅĐŊиК ŅиĐŋ даĐŊиŅ
Đ´ĐģŅ ĐŧĐŊĐžĐļиĐŊ ŅĐŊŅĐēаĐģŅĐŊиŅ
ĐĩĐģĐĩĐŧĐĩĐŊŅŅв â ŅĐĩ `set`.
+
+ĐĸĐžĐŧŅ Đŧи ĐŧĐžĐļĐĩĐŧĐž ĐžĐŗĐžĐģĐžŅиŅи `tags` ŅĐē ĐŧĐŊĐžĐļиĐŊŅ ŅŅĐ´ĐēŅв:
+
+{* ../../docs_src/body_nested_models/tutorial003_py310.py hl[12] *}
+
+ĐавŅŅŅ ŅĐēŅĐž Đи ĐžŅŅиĐŧаŅŅĐĩ СаĐŋĐ¸Ņ Đˇ Đ´ŅĐąĐģŅОваĐŊиĐŧи даĐŊиĐŧи, вŅĐŊ ĐąŅĐ´Đĩ ĐŋĐĩŅĐĩŅвОŅĐĩĐŊиК Ņ ĐŧĐŊĐžĐļиĐŊŅ ŅĐŊŅĐēаĐģŅĐŊиŅ
ĐĩĐģĐĩĐŧĐĩĐŊŅŅв.
+
+Đ ĐēĐžĐģи Đи ĐąŅĐ´ĐĩŅĐĩ вивОдиŅи ŅŅ Đ´Đ°ĐŊŅ, ĐŊавŅŅŅ ŅĐēŅĐž Đ´ĐļĐĩŅĐĩĐģĐž ĐŧŅŅŅиŅŅ Đ´ŅĐąĐģŅĐēаŅи, вОĐŊи ĐąŅĐ´ŅŅŅ Đ˛Đ¸Đ˛ĐĩĐ´ĐĩĐŊŅ ŅĐē ĐŧĐŊĐžĐļиĐŊа ŅĐŊŅĐēаĐģŅĐŊиŅ
ĐĩĐģĐĩĐŧĐĩĐŊŅŅв.
+
+Đ ŅĐĩ ĐąŅĐ´Đĩ аĐŊĐžŅОваĐŊĐž/Đ´ĐžĐēŅĐŧĐĩĐŊŅОваĐŊĐž вŅĐ´ĐŋОвŅĐ´ĐŊĐž.
+
+## ĐĐēĐģадĐĩĐŊŅ ĐŧОдĐĩĐģŅ
+
+ĐĐžĐļĐĩĐŊ аŅŅийŅŅ ĐŧОдĐĩĐģŅ Pydantic ĐŧĐ°Ņ ŅиĐŋ.
+
+ĐĐģĐĩ ŅĐĩĐš ŅиĐŋ ŅаĐŧ ĐŧĐžĐļĐĩ ĐąŅŅи ŅĐŊŅĐžŅ ĐŧОдĐĩĐģĐģŅ Pydantic.
+
+ĐŅĐļĐĩ, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐŗĐģийОĐēĐž вĐēĐģадĐĩĐŊŅ JSON "Ой'ŅĐēŅи" С ĐēĐžĐŊĐēŅĐĩŅĐŊиĐŧи ŅĐŧĐĩĐŊаĐŧи аŅŅийŅŅŅв, ŅиĐŋаĐŧи Ņа ĐŋĐĩŅĐĩвŅŅĐēаĐŧи.
+
+ĐŖŅĐĩ ŅĐĩ, вĐēĐģадĐĩĐŊĐĩ ĐąĐĩС ОйĐŧĐĩĐļĐĩĐŊŅ.
+
+### ĐиСĐŊаŅĐĩĐŊĐŊŅ ĐŋŅĐ´ĐŧОдĐĩĐģŅ
+
+ĐаĐŋŅиĐēĐģад, Đŧи ĐŧĐžĐļĐĩĐŧĐž виСĐŊаŅиŅи ĐŧОдĐĩĐģŅ `Image`:
+
+{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[7:9] *}
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ĐŋŅĐ´ĐŧОдĐĩĐģŅ ŅĐē ŅиĐŋŅ
+
+Đ ĐŋĐžŅŅĐŧ Đŧи ĐŧĐžĐļĐĩĐŧĐž виĐēĐžŅиŅŅОвŅваŅи ŅŅ ŅĐē ŅиĐŋ аŅŅийŅŅа:
+
+{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[18] *}
+
+ĐĻĐĩ ОСĐŊаŅаŅиĐŧĐĩ, ŅĐž **FastAPI** ĐžŅŅĐēŅваŅиĐŧĐĩ ŅŅĐģĐž СаĐŋиŅŅ ŅаĐēĐžĐŗĐž Đ˛Đ¸ĐŗĐģŅĐ´Ņ:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2,
+ "tags": ["rock", "metal", "bar"],
+ "image": {
+ "url": "http://example.com/baz.jpg",
+ "name": "The Foo live"
+ }
+}
+```
+
+ĐавдŅĐēи ŅаĐēŅĐš Đ´ĐĩĐēĐģаŅаŅŅŅ Ņ **FastAPI** Đи ĐžŅŅиĐŧŅŅŅĐĩ:
+
+* ĐŅĐ´ŅŅиĐŧĐēŅ Đ˛ ŅĐĩдаĐēŅĐžŅŅ (авŅОСавĐĩŅŅĐĩĐŊĐŊŅ ŅĐžŅĐž), ĐŊавŅŅŅ Đ´ĐģŅ Đ˛ĐēĐģадĐĩĐŊиŅ
ĐŧОдĐĩĐģĐĩĐš
+* ĐĐžĐŊвĐĩŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
+* ĐаĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
+* ĐвŅĐžĐŧаŅиŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+## ĐĄĐŋĐĩŅŅаĐģŅĐŊŅ ŅиĐŋи Ņа ваĐģŅдаŅŅŅ
+
+ĐĐēŅŅĐŧ СвиŅаКĐŊиŅ
ŅиĐŋŅв, ŅаĐēиŅ
ŅĐē `str`, `int`, `float`, Ņа ŅĐŊ. Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅĐēĐģадĐŊŅŅŅ ŅиĐŋи, ŅĐēŅ ĐŊаŅĐģŅĐ´ŅŅŅŅ `str`.
+
+ЊОй ĐŋОйаŅиŅи вŅŅ Đ´ĐžŅŅŅĐŋĐŊŅ Đ˛Đ°ŅŅаĐŊŅи, ОСĐŊаКОĐŧŅĐĩŅŅ Đˇ ĐžĐŗĐģŅĐ´ĐžĐŧ ŅиĐŋŅв Ņ Pydantic. ĐĐĩŅĐēŅ ĐŋŅиĐēĐģади ĐąŅĐ´ŅŅŅ Ņ ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģаŅ
.
+
+ĐаĐŋŅиĐēĐģад, Ņ ĐŧОдĐĩĐģŅ `Image` Ņ ĐŋĐžĐģĐĩ `url`, ŅĐžĐŧŅ Đŧи ĐŧĐžĐļĐĩĐŧĐž ĐžĐŗĐžĐģĐžŅиŅи ĐšĐžĐŗĐž ŅĐē `HttpUrl` вŅĐ´ Pydantic СаĐŧŅŅŅŅ `str`:
+
+{* ../../docs_src/body_nested_models/tutorial005_py310.py hl[2,8] *}
+
+Đ ŅĐ´ĐžĐē ĐąŅĐ´Đĩ ĐŋĐĩŅĐĩвŅŅĐĩĐŊĐž ŅĐē Đ´ŅĐšŅĐŊŅ URL-адŅĐĩŅŅ Ņ ĐˇĐ°Đ´ĐžĐēŅĐŧĐĩĐŊŅОваĐŊĐž в JSON Schema / OpenAPI ŅĐē URL.
+
+## ĐŅŅийŅŅи ĐˇŅ ŅĐŋиŅĐēаĐŧи ĐŋŅĐ´ĐŧОдĐĩĐģĐĩĐš
+
+ĐŖ Pydantic Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐŧОдĐĩĐģŅ ŅĐē ĐŋŅĐ´ŅиĐŋи Đ´ĐģŅ `list`, `set` ŅĐžŅĐž:
+
+{* ../../docs_src/body_nested_models/tutorial006_py310.py hl[18] *}
+
+ĐĻĐĩ ОСĐŊаŅаŅ, ŅĐž **FastAPI** ĐąŅĐ´Đĩ ĐžŅŅĐēŅваŅи (ĐēĐžĐŊвĐĩŅŅŅваŅи, ваĐģŅĐ´ŅваŅи, Đ´ĐžĐēŅĐŧĐĩĐŊŅŅваŅи ŅĐžŅĐž) JSON ŅŅĐģĐž СаĐŋиŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ:
+
+```JSON hl_lines="11"
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2,
+ "tags": [
+ "rock",
+ "metal",
+ "bar"
+ ],
+ "images": [
+ {
+ "url": "http://example.com/baz.jpg",
+ "name": "The Foo live"
+ },
+ {
+ "url": "http://example.com/dave.jpg",
+ "name": "The Baz"
+ }
+ ]
+}
+```
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ŅĐĩĐŋĐĩŅ ĐēĐģŅŅ `images` ĐŧŅŅŅиŅŅ ŅĐŋиŅĐžĐē Ой'ŅĐēŅŅв СОйŅаĐļĐĩĐŊŅ.
+
+///
+
+## ĐĐģийОĐēĐž вĐēĐģадĐĩĐŊŅ ĐŧОдĐĩĐģŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅаŅи вĐēĐģадĐĩĐŊŅ ĐŧОдĐĩĐģŅ Đ´ĐžĐ˛ŅĐģŅĐŊĐžŅ ĐŗĐģийиĐŊи:
+
+{* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž в ĐŧОдĐĩĐģŅ `Offer` Ņ ŅĐŋиŅĐžĐē `Item`Ņв, ŅĐēŅ, ŅвОŅŅ ŅĐĩŅĐŗĐžŅ, ĐŧĐžĐļŅŅŅ ĐŧаŅи ĐŊĐĩОйОв'ŅСĐēОвиК ŅĐŋиŅĐžĐē `Image`Ņв.
+
+///
+
+## ĐĸŅĐģа СаĐŋиŅŅв, ŅĐž ŅĐēĐģадаŅŅŅŅŅ ĐˇŅ ŅĐŋиŅĐēŅв
+
+Đ¯ĐēŅĐž вĐĩŅŅ
ĐŊŅĐš ŅŅвĐĩĐŊŅ JSON ŅŅĐģа, ŅĐēĐĩ Đи ĐžŅŅĐēŅŅŅĐĩ, Ņ JSON `ĐŧаŅивОĐŧ` (Ņ Python â `list`), Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ŅиĐŋ Ņ ĐŋаŅаĐŧĐĩŅŅŅ ŅŅĐŊĐēŅŅŅ, ŅĐē Ņ Đ˛ ĐŧОдĐĩĐģŅŅ
Pydantic:
+
+```Python
+images: List[Image]
+```
+айО в Python 3.9 Ņ Đ˛Đ¸ŅĐĩ:
+
+```Python
+images: list[Image]
+```
+
+ĐŊаĐŋŅиĐēĐģад:
+
+{* ../../docs_src/body_nested_models/tutorial008_py39.py hl[13] *}
+
+## ĐŅĐ´ŅŅиĐŧĐēа в ŅĐĩдаĐēŅĐžŅŅ Đ˛ŅŅди
+
+Đи ĐžŅŅиĐŧаŅŅĐĩ ĐŋŅĐ´ŅŅиĐŧĐēŅ Đ˛ ŅĐĩдаĐēŅĐžŅŅ Đ˛ŅŅди.
+
+ĐавŅŅŅ Đ´ĐģŅ ĐĩĐģĐĩĐŧĐĩĐŊŅŅв Ņ ŅĐŋиŅĐēаŅ
:
+
+
+
+Đи ĐŊĐĩ СĐŧĐžĐŗĐģи Đą ĐžŅŅиĐŧаŅи ŅаĐēŅ ĐŋŅĐ´ŅŅиĐŧĐēŅ Đ˛ ŅĐĩдаĐēŅĐžŅŅ, ŅĐēйи ĐŋŅаŅŅваĐģи ĐŊаĐŋŅŅĐŧŅ ĐˇŅ `dict`, а ĐŊĐĩ С ĐŧОдĐĩĐģŅĐŧи Pydantic.
+
+ĐĐģĐĩ ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž ŅŅŅĐąŅваŅиŅŅ ĐŋŅĐž ŅĐĩ: вŅ
ŅĐ´ĐŊŅ dict'и авŅĐžĐŧаŅиŅĐŊĐž ĐēĐžĐŊвĐĩŅŅŅŅŅŅŅŅ, а виŅ
ŅĐ´ĐŊŅ Đ´Đ°ĐŊŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž ĐŋĐĩŅĐĩŅвОŅŅŅŅŅŅŅ Đ˛ JSON.
+
+## ĐĸŅĐģа С дОвŅĐģŅĐŊиĐŧи `dict`
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ŅŅĐģĐž ŅĐē `dict` С ĐēĐģŅŅаĐŧи ОдĐŊĐžĐŗĐž ŅиĐŋŅ Ņа СĐŊаŅĐĩĐŊĐŊŅĐŧи ŅĐŊŅĐžĐŗĐž ŅиĐŋŅ.
+
+ĐĻĐĩ ĐēĐžŅиŅĐŊĐž, ŅĐēŅĐž Đи ĐŊĐĩ СĐŊаŅŅĐĩ ĐŊаĐŋĐĩŅĐĩĐ´, ŅĐēŅ ŅĐŧĐĩĐŊа ĐŋĐžĐģŅв ĐąŅĐ´ŅŅŅ Đ´ŅĐšŅĐŊиĐŧи (ŅĐē Ņ Đ˛Đ¸ĐŋадĐēŅ Đˇ ĐŧОдĐĩĐģŅĐŧи Pydantic).
+
+ĐĻĐĩ ĐąŅĐ´Đĩ ĐēĐžŅиŅĐŊĐž, ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐŋŅиКĐŧаŅи ĐēĐģŅŅŅ, ŅĐēŅ ĐˇĐ°ĐˇĐ´Đ°ĐģĐĩĐŗŅĐ´Ņ ĐŊĐĩвŅĐ´ĐžĐŧŅ.
+
+---
+
+ĐĻĐĩ ŅаĐēĐžĐļ СŅŅŅĐŊĐž, ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐŧаŅи ĐēĐģŅŅŅ ŅĐŊŅĐžĐŗĐž ŅиĐŋŅ (ĐŊаĐŋŅиĐēĐģад, `int`).
+
+ĐŅŅ ŅĐž Đŧи ŅĐžĐˇĐŗĐģŅĐŊĐĩĐŧĐž даĐģŅ.
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋŅиКĐŧаŅи ĐąŅĐ´Ņ-ŅĐēиК `dict`, ŅĐēŅĐž ĐšĐžĐŗĐž ĐēĐģŅŅŅ â ŅĐĩ `int`, а СĐŊаŅĐĩĐŊĐŊŅ â `float`:
+
+{* ../../docs_src/body_nested_models/tutorial009_py39.py hl[7] *}
+
+/// tip | ĐĐžŅада
+
+ĐаКŅĐĩ ĐŊа ŅваСŅ, ŅĐž в JSON ŅŅĐģŅ ĐēĐģŅŅŅ ĐŧĐžĐļŅŅŅ ĐąŅŅи ĐģиŅĐĩ ŅŅĐ´ĐēаĐŧи (`str`).
+
+ĐĐģĐĩ Pydantic авŅĐžĐŧаŅиŅĐŊĐž ĐēĐžĐŊвĐĩŅŅŅŅ Đ´Đ°ĐŊŅ.
+
+ĐĻĐĩ ОСĐŊаŅаŅ, ŅĐž ĐŊавŅŅŅ ŅĐēŅĐž ĐēĐģŅŅĐŊŅи ваŅĐžĐŗĐž API ĐŊадŅиĐģаŅиĐŧŅŅŅ ĐēĐģŅŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ ŅŅĐ´ĐēŅв, ŅĐēŅĐž вОĐŊи ĐŧŅŅŅŅŅŅ ŅŅĐģŅ ŅиŅĐģа, Pydantic ĐēĐžĐŊвĐĩŅŅŅŅ ŅŅ
Ņ ĐŋŅОвĐĩĐ´Đĩ ваĐģŅдаŅŅŅ.
+
+ĐĸОйŅĐž `dict`, ŅĐēиК Đи ĐžŅŅиĐŧаŅŅĐĩ ŅĐē `weights`, ĐŧаŅиĐŧĐĩ ĐēĐģŅŅŅ ŅиĐŋŅ `int` Ņа СĐŊаŅĐĩĐŊĐŊŅ ŅиĐŋŅ `float`.
+
+///
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+Đ **FastAPI** Đи ĐŧаŅŅĐĩ ĐŧаĐēŅиĐŧаĐģŅĐŊŅ ĐŗĐŊŅŅĐēŅŅŅŅ ĐˇĐ°Đ˛Đ´ŅĐēи ĐŧОдĐĩĐģŅĐŧ Pydantic, СйĐĩŅŅĐŗĐ°ŅŅи ĐŋŅи ŅŅĐžĐŧŅ ĐēОд ĐŋŅĐžŅŅиĐŧ, ĐēĐžŅĐžŅĐēиĐŧ Ņа ĐĩĐģĐĩĐŗĐ°ĐŊŅĐŊиĐŧ.
+
+Đ ŅаĐēĐžĐļ ĐžŅŅиĐŧŅŅŅĐĩ вŅŅ ĐŋĐĩŅĐĩĐ˛Đ°ĐŗĐ¸:
+
+* ĐŅĐ´ŅŅиĐŧĐēа в ŅĐĩдаĐēŅĐžŅŅ (авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ Đ˛ŅŅди!)
+* ĐĐžĐŊвĐĩŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
(ĐŋаŅŅиĐŊĐŗ/ŅĐĩŅиаĐģŅСаŅŅŅ)
+* ĐаĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
+* ĐĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ŅŅ
ĐĩĐŧ
+* ĐвŅĐžĐŧаŅиŅĐŊĐĩ ŅŅвОŅĐĩĐŊĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
diff --git a/docs/uk/docs/tutorial/body-updates.md b/docs/uk/docs/tutorial/body-updates.md
new file mode 100644
index 0000000000..e78b5a5bf3
--- /dev/null
+++ b/docs/uk/docs/tutorial/body-updates.md
@@ -0,0 +1,116 @@
+# ĐĸŅĐģĐž â ĐĐŊОвĐģĐĩĐŊĐŊŅ
+
+## ĐĐŊОвĐģĐĩĐŊĐŊŅ Đˇ виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ `PUT`
+
+ЊОй ĐžĐŊОвиŅи ĐĩĐģĐĩĐŧĐĩĐŊŅ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи HTTP `PUT` ĐžĐŋĐĩŅаŅŅŅ.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `jsonable_encoder`, ŅОй ĐŋĐĩŅĐĩŅвОŅиŅи вŅ
ŅĐ´ĐŊŅ Đ´Đ°ĐŊŅ ĐŊа ŅаĐēŅ, ŅĐēŅ ĐŧĐžĐļĐŊа СйĐĩŅŅĐŗĐ°Ņи ŅĐē JSON (ĐŊаĐŋŅиĐēĐģад, Ņ NoSQL ĐąĐ°ĐˇŅ Đ´Đ°ĐŊиŅ
). ĐаĐŋŅиĐēĐģад, ĐŋĐĩŅĐĩŅвОŅŅŅŅи `datetime` Ņ `str`.
+
+{* ../../docs_src/body_updates/tutorial001_py310.py hl[28:33] *}
+
+`PUT` виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ´ĐģŅ ĐžŅŅиĐŧаĐŊĐŊŅ Đ´Đ°ĐŊиŅ
, ŅĐēŅ ĐŧаŅŅŅ ĐˇĐ°ĐŧŅĐŊиŅи ŅиĐŊĐŊŅ Đ´Đ°ĐŊŅ.
+
+### ĐĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ ĐŋŅĐž СаĐŧŅĐŊŅ
+
+ĐĻĐĩ ОСĐŊаŅаŅ, ŅĐž ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐžĐŊОвиŅи ĐĩĐģĐĩĐŧĐĩĐŊŅ `bar`, виĐēĐžŅиŅŅОвŅŅŅи `PUT` С ŅŅĐģĐžĐŧ:
+
+```Python
+{
+ "name": "Barz",
+ "price": 3,
+ "description": None,
+}
+```
+
+ĐžŅĐēŅĐģŅĐēи вŅĐŊ ĐŊĐĩ ĐŧŅŅŅиŅŅ Đ˛ĐļĐĩ СйĐĩŅĐĩĐļĐĩĐŊĐžĐŗĐž аŅŅийŅŅа `"tax": 20.2`, ĐŧОдĐĩĐģŅ Đ˛Đ˛ĐĩĐ´ĐĩĐŊĐŊŅ ĐŋŅиКĐŧĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `"tax": 10.5`.
+
+РдаĐŊŅ ĐąŅĐ´ŅŅŅ ĐˇĐąĐĩŅĐĩĐļĐĩĐŊŅ Đˇ ŅиĐŧ "ĐŊОвиĐŧ" СĐŊаŅĐĩĐŊĐŊŅĐŧ `tax` = `10.5`.
+
+## ЧаŅŅĐēĐžĐ˛Ņ ĐžĐŊОвĐģĐĩĐŊĐŊŅ Đˇ `PATCH`
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐžĐŋĐĩŅаŅŅŅ HTTP `PATCH` Đ´ĐģŅ *ŅаŅŅĐēĐžĐ˛ĐžĐŗĐž* ĐžĐŊОвĐģĐĩĐŊĐŊŅ Đ´Đ°ĐŊиŅ
.
+
+ĐĻĐĩ ОСĐŊаŅаŅ, ŅĐž Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊадŅŅĐģаŅи ĐģиŅĐĩ ŅŅ Đ´Đ°ĐŊŅ, ŅĐēŅ Ņ
ĐžŅĐĩŅĐĩ ĐžĐŊОвиŅи, СаĐģиŅаŅŅи ŅĐŊŅŅ ĐąĐĩС СĐŧŅĐŊ.
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+`PATCH` ĐŧĐĩĐŊŅ Đ˛ŅĐ´ĐžĐŧиК Ņ ŅŅĐ´ŅĐĩ виĐēĐžŅиŅŅОвŅŅŅŅŅŅ, ĐŊŅĐļ `PUT`.
+
+Đ ĐąĐ°ĐŗĐ°ŅĐž ĐēĐžĐŧаĐŊĐ´ виĐēĐžŅиŅŅОвŅŅŅŅ ĐģиŅĐĩ `PUT`, ĐŊавŅŅŅ Đ´ĐģŅ ŅаŅŅĐēОвиŅ
ĐžĐŊОвĐģĐĩĐŊŅ.
+
+Đи **вŅĐģŅĐŊŅ** виĐēĐžŅиŅŅОвŅваŅи ŅŅ
ŅаĐē, ŅĐē Ņ
ĐžŅĐĩŅĐĩ, **FastAPI** ĐŊĐĩ ĐŊаĐēĐģĐ°Đ´Đ°Ņ ĐžĐąĐŧĐĩĐļĐĩĐŊŅ.
+
+ĐĐģĐĩ ŅĐĩĐš ĐŋĐžŅŅĐąĐŊиĐē ĐŋĐžĐēаСŅŅ ĐаĐŧ ĐąŅĐģŅŅ-ĐŧĐĩĐŊŅ ŅĐē ŅŅ
СадŅĐŧаĐŊĐž виĐēĐžŅиŅŅОвŅваŅи.
+
+///
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅа `exclude_unset` Ņ Pydantic
+
+Đ¯ĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐžŅŅиĐŧаŅи ŅаŅŅĐēĐžĐ˛Ņ ĐžĐŊОвĐģĐĩĐŊĐŊŅ, Đ´ŅĐļĐĩ СŅŅŅĐŊĐž виĐēĐžŅиŅŅОвŅваŅи ĐŋаŅаĐŧĐĩŅŅ `exclude_unset` Ņ ĐŧĐĩŅĐžĐ´Ņ `.model_dump()` ĐŧОдĐĩĐģŅ Pydantic.
+
+ĐаĐŋŅиĐēĐģад: `item.model_dump(exclude_unset=True)`.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐŖ Pydantic v1 ŅĐĩĐš ĐŧĐĩŅОд ĐŊаСивавŅŅ `.dict()`, вŅĐŊ ĐąŅв СаŅŅаŅŅĐģиК (аĐģĐĩ вŅĐĩ ŅĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ) Ņ Pydantic v2, Ņ ĐąŅв ĐŋĐĩŅĐĩĐšĐŧĐĩĐŊОваĐŊиК Ņ `.model_dump()`.
+
+ĐŅиĐēĐģади ŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅ `.dict()` Đ´ĐģŅ ŅŅĐŧŅŅĐŊĐžŅŅŅ Đˇ Pydantic v1, аĐģĐĩ ĐаĐŧ ŅĐģŅĐ´ виĐēĐžŅиŅŅОвŅваŅи `.model_dump()`, ŅĐēŅĐž ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи Pydantic v2.
+
+///
+
+ĐĻĐĩ ŅŅвОŅиŅŅ `dict` ĐģиŅĐĩ С ŅиĐŧи даĐŊиĐŧи, ŅĐēŅ ĐąŅĐģи ŅвĐŊĐž вŅŅаĐŊОвĐģĐĩĐŊŅ ĐŋŅĐ´ ŅĐ°Ņ ŅŅвОŅĐĩĐŊĐŊŅ ĐŧОдĐĩĐģŅ `item`, виĐēĐģŅŅаŅŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+ĐĸĐžĐ´Ņ Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅĐĩ, ŅОй ŅŅвОŅиŅи `dict` ĐģиŅĐĩ С даĐŊиĐŧи, ŅĐēŅ ĐąŅĐģи вŅŅаĐŊОвĐģĐĩĐŊŅ (ĐŊадŅŅĐģаĐŊŅ Ņ ĐˇĐ°ĐŋиŅŅ), ĐŋŅĐžĐŋŅŅĐēаŅŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ:
+
+{* ../../docs_src/body_updates/tutorial002_py310.py hl[32] *}
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅа `update` Ņ Pydantic
+
+ĐĸĐĩĐŋĐĩŅ Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи ĐēĐžĐŋŅŅ ĐŊаŅвĐŊĐžŅ ĐŧОдĐĩĐģŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `.model_copy()`, Ņ ĐŋĐĩŅĐĩдаŅи ĐŋаŅаĐŧĐĩŅŅ `update` С `dict` , ŅĐēиК ĐŧŅŅŅиŅŅ Đ´Đ°ĐŊŅ Đ´ĐģŅ ĐžĐŊОвĐģĐĩĐŊĐŊŅ.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐŖ Pydantic v1 ĐŧĐĩŅОд ĐŊаСивавŅŅ `.copy()`, вŅĐŊ ĐąŅв СаŅŅаŅŅĐģиК (аĐģĐĩ вŅĐĩ ŅĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ) Ņ Pydantic v2, Ņ ĐąŅв ĐŋĐĩŅĐĩĐšĐŧĐĩĐŊОваĐŊиК Ņ `.model_copy()`.
+
+ĐŅиĐēĐģади ŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅ `.copy()` Đ´ĐģŅ ŅŅĐŧŅŅĐŊĐžŅŅŅ Đˇ Pydantic v1, аĐģĐĩ ŅĐēŅĐž Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи Pydantic v2 â ĐаĐŧ ŅĐģŅĐ´ виĐēĐžŅиŅŅОвŅваŅи `.model_copy()` СаĐŧŅŅŅŅ ŅŅĐžĐŗĐž.
+
+///
+
+ĐаĐŋŅиĐēĐģад: `stored_item_model.model_copy(update=update_data)`:
+
+{* ../../docs_src/body_updates/tutorial002_py310.py hl[33] *}
+
+### ĐŅĐ´ŅŅĐŧĐžĐē ŅаŅŅĐēОвиŅ
ĐžĐŊОвĐģĐĩĐŊŅ
+
+ĐŖ ĐŋŅĐ´ŅŅĐŧĐēŅ, ŅОй СаŅŅĐžŅŅваŅи ŅаŅŅĐēĐžĐ˛Ņ ĐžĐŊОвĐģĐĩĐŊĐŊŅ, Đи:
+
+* (ĐĐŋŅŅĐžĐŊаĐģŅĐŊĐž) виĐēĐžŅиŅŅОвŅŅŅĐĩ `PATCH` СаĐŧŅŅŅŅ `PUT`.
+* ĐŅŅиĐŧŅŅŅĐĩ СйĐĩŅĐĩĐļĐĩĐŊŅ Đ´Đ°ĐŊŅ.
+* ĐĐžĐŧŅŅаŅŅĐĩ ŅŅ Đ´Đ°ĐŊŅ Đ˛ ĐŧОдĐĩĐģŅ Pydantic.
+* ĐĐĩĐŊĐĩŅŅŅŅĐĩ `dict` ĐąĐĩС СĐŊаŅĐĩĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ С ĐŧОдĐĩĐģŅ Đ˛Đ˛ĐĩĐ´ĐĩĐŊĐŊŅ (виĐēĐžŅиŅŅОвŅŅŅи `exclude_unset`).
+ * ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ Đи ĐžĐŊОвиŅĐĩ ĐģиŅĐĩ ŅŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, ŅĐēŅ ĐąŅĐģи ŅвĐŊĐž СадаĐŊŅ ĐēĐžŅиŅŅŅваŅĐĩĐŧ, СаĐŧŅŅŅŅ ŅĐžĐŗĐž, ŅОй ĐŋĐĩŅĐĩСаĐŋиŅŅваŅи вĐļĐĩ СйĐĩŅĐĩĐļĐĩĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧи Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ С ваŅĐžŅ ĐŧОдĐĩĐģŅ.
+* ĐĄŅвОŅŅŅŅĐĩ ĐēĐžĐŋŅŅ ĐˇĐąĐĩŅĐĩĐļĐĩĐŊĐžŅ ĐŧОдĐĩĐģŅ, ĐžĐŊОвĐģŅŅŅи ŅŅ Đ°ŅŅийŅŅи ĐžŅŅиĐŧаĐŊиĐŧи ŅаŅŅĐēОвиĐŧи ĐžĐŊОвĐģĐĩĐŊĐŊŅĐŧи (виĐēĐžŅиŅŅОвŅŅŅи ĐŋаŅаĐŧĐĩŅŅ `update`).
+* ĐĐĩŅĐĩŅвОŅŅŅŅĐĩ ŅĐēĐžĐŋŅКОваĐŊŅ ĐŧОдĐĩĐģŅ ĐŊа ŅĐžŅŅ, ŅĐž ĐŧĐžĐļĐŊа СйĐĩŅĐĩĐŗŅи Ņ Đ˛Đ°ŅŅ ĐĐ (ĐŊаĐŋŅиĐēĐģад, виĐēĐžŅиŅŅОвŅŅŅи `jsonable_encoder`).
+ * ĐĻĐĩ ĐŧĐžĐļĐŊа ĐŋĐžŅŅвĐŊŅŅи С ĐŋОвŅĐžŅĐŊиĐŧ виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ ĐŧĐĩŅĐžĐ´Ņ `.model_dump()` ĐŧОдĐĩĐģŅ, аĐģĐĩ ŅĐĩ ĐŗĐ°ŅаĐŊŅŅŅ (Ņ ĐŋĐĩŅĐĩŅвОŅŅŅ) СĐŊаŅĐĩĐŊĐŊŅ Ņ ŅиĐŋи даĐŊиŅ
, ŅĐēŅ ĐŧĐžĐļĐŊа ĐŋĐĩŅĐĩŅвОŅиŅи ĐŊа JSON, ĐŊаĐŋŅиĐēĐģад, `datetime` ĐŊа `str`.
+* ĐĐąĐĩŅŅĐŗĐ°ŅŅĐĩ даĐŊŅ Ņ Đ˛Đ°ŅŅ ĐĐ.
+* ĐОвĐĩŅŅаŅŅĐĩ ĐžĐŊОвĐģĐĩĐŊŅ ĐŧОдĐĩĐģŅ.
+
+{* ../../docs_src/body_updates/tutorial002_py310.py hl[28:35] *}
+
+/// tip | ĐĐžŅада
+
+ĐаŅĐŋŅĐ°Đ˛Đ´Ņ Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅŅ ŅаĐŧŅ ŅĐĩŅ
ĐŊŅĐēŅ Ņ Đˇ ĐžĐŋĐĩŅаŅŅŅŅ HTTP `PUT`.
+
+ĐĐģĐĩ ĐŋŅиĐēĐģад ŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅ `PATCH`, ŅĐžĐŧŅ ŅĐž вŅĐŊ ĐąŅв ŅŅвОŅĐĩĐŊиК ŅаĐŧĐĩ Đ´ĐģŅ ŅаĐēиŅ
виĐŋадĐēŅв.
+
+///
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ĐŧОдĐĩĐģŅ ĐˇĐ°ĐŋиŅŅ Đ˛ŅĐĩ ŅĐĩ ĐŋŅĐžŅ
ОдиŅŅ Đ˛Đ°ĐģŅдаŅŅŅ.
+
+ĐĸĐžĐļ, ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐžŅŅиĐŧŅваŅи ŅаŅŅĐēĐžĐ˛Ņ ĐžĐŊОвĐģĐĩĐŊĐŊŅ, ŅĐēŅ ĐŧĐžĐļŅŅŅ ĐŊĐĩ ĐŧŅŅŅиŅи ĐļОдĐŊĐžĐŗĐž аŅŅийŅŅа, ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐŧаŅи ĐŧОдĐĩĐģŅ, Đ´Đĩ вŅŅ Đ°ŅŅийŅŅи ĐŋОСĐŊаŅĐĩĐŊŅ ŅĐē ĐŊĐĩОйОвâŅСĐēĐžĐ˛Ņ (ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧи Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ айО `None`).
+
+ЊОй ŅОСŅŅСĐŊŅŅи ĐŧОдĐĩĐģŅ Đˇ ŅŅŅĐŧа ĐŊĐĩОйОвâŅСĐēОвиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи Đ´ĐģŅ **ĐžĐŊОвĐģĐĩĐŊĐŊŅ** Ņ ĐŧОдĐĩĐģŅ Đˇ ОйОвâŅСĐēОвиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи Đ´ĐģŅ **ŅŅвОŅĐĩĐŊĐŊŅ**, Đи ĐŧĐžĐļĐĩŅĐĩ ŅĐēĐžŅиŅŅаŅиŅŅ ŅĐ´ĐĩŅĐŧи, ĐžĐŋиŅаĐŊиĐŧи Ņ [ĐОдаŅĐēĐžĐ˛Ņ ĐŧОдĐĩĐģŅ](extra-models.md){.internal-link target=_blank}.
+
+///
diff --git a/docs/uk/docs/tutorial/cookie-param-models.md b/docs/uk/docs/tutorial/cookie-param-models.md
new file mode 100644
index 0000000000..f070b6ac83
--- /dev/null
+++ b/docs/uk/docs/tutorial/cookie-param-models.md
@@ -0,0 +1,76 @@
+# ĐОдĐĩĐģŅ Đ´ĐģŅ Cookie-ĐŋаŅаĐŧĐĩŅŅŅв
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐŗŅŅĐŋа **cookies** ĐŋаŅаĐŧĐĩŅŅŅв, ŅĐēŅ ĐŋОв'ŅСаĐŊŅ ĐŧŅĐļ ŅОйОŅ, Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи **Pydantic-ĐŧОдĐĩĐģŅ**, ŅОй ĐžĐŗĐžĐģĐžŅиŅи ŅŅ
. đĒ
+
+ĐĻĐĩ дОСвОĐģиŅŅ ĐаĐŧ ĐŋОвŅĐžŅĐŊĐž **виĐēĐžŅиŅŅОвŅваŅи ĐŧОдĐĩĐģŅ** Ņ **ŅŅСĐŊиŅ
ĐŧŅŅŅŅŅ
**, а ŅаĐēĐžĐļ ĐžĐŗĐžĐģĐžŅиŅи ваĐģŅдаŅŅŅ Ņа ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ Đ˛ŅŅŅ
ĐŋаŅаĐŧĐĩŅŅŅв ОдĐŊĐžŅаŅĐŊĐž. đ
+
+/// note | ĐĐžŅаŅĐēи
+
+ĐĻĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ Đˇ вĐĩŅŅŅŅ FastAPI `0.115.0`. đ¤
+
+///
+
+/// tip | ĐĐžŅада
+
+ĐĻŅ Đļ ŅĐĩŅ
ĐŊŅĐēа СаŅŅĐžŅОвŅŅŅŅŅŅ Đ´Đž `Query`, `Cookie`, Ņа `Header`. đ
+
+///
+
+## Cookie С Pydantic-ĐŧОдĐĩĐģĐģŅ
+
+ĐĐŗĐžĐģĐžŅŅŅŅ **cookie-ĐŋаŅаĐŧĐĩŅŅи**, ŅĐēŅ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊŅ, Ņ **Pydantic-ĐŧОдĐĩĐģŅ**, а ĐŋĐžŅŅĐŧ ĐžĐŗĐžĐģĐžŅŅŅŅ ĐŋаŅаĐŧĐĩŅŅ ŅĐē `Cookie`:
+
+{* ../../docs_src/cookie_param_models/tutorial001_an_py310.py hl[9:12,16] *}
+
+**FastAPI** ĐąŅĐ´Đĩ **виŅŅĐŗŅваŅи** даĐŊŅ Đ´ĐģŅ **ĐēĐžĐļĐŊĐžĐŗĐž ĐŋĐžĐģŅ** С **cookie** ĐŋаŅаĐŧĐĩŅŅŅв, ĐžŅŅиĐŧаĐŊиŅ
Ņ ĐˇĐ°ĐŋиŅŅ, Ņ ĐŋĐĩŅĐĩдаваŅи ĐаĐŧ Pydantic-ĐŧОдĐĩĐģŅ, ŅĐēŅ Đи виСĐŊаŅиĐģи.
+
+## ĐĐĩŅĐĩвŅŅĐēа Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋОйаŅиŅи виСĐŊаŅĐĩĐŊŅ cookie в ŅĐŊŅĐĩŅŅĐĩĐšŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐ° адŅĐĩŅĐžŅ `/docs`:
+
+
+
+
+---
+Đ¯ĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ PyCharm, ви ĐŧĐžĐļĐĩŅĐĩ:
+
+* ĐŅĐ´ĐēŅиŅи ĐŧĐĩĐŊŅ "Run".
+* ĐийŅаŅи ĐžĐŋŅŅŅ "Debug...".
+* ĐĐžŅŅĐŧ С'ŅвиŅŅŅŅ ĐēĐžĐŊŅĐĩĐēŅŅĐŊĐĩ ĐŧĐĩĐŊŅ.
+* ĐийŅаŅи ŅаКĐģ Đ´ĐģŅ ĐŊаĐģĐ°ĐŗĐžĐ´ĐļĐĩĐŊĐŊŅ (Ņ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ, `main.py`).
+
+ĐĻĐĩ СаĐŋŅŅŅиŅŅ ŅĐĩŅвĐĩŅ Đˇ ĐаŅиĐŧ **FastAPI** ĐēОдОĐŧ, СŅĐŋиĐŊиŅŅŅŅ ĐŊа ŅĐžŅĐēаŅ
СŅĐŋиĐŊŅ ŅĐžŅĐž.
+
+ĐŅŅ ŅĐē ŅĐĩ ĐŧĐžĐļĐĩ Đ˛Đ¸ĐŗĐģŅдаŅи:
+
+
diff --git a/docs/uk/docs/tutorial/handling-errors.md b/docs/uk/docs/tutorial/handling-errors.md
new file mode 100644
index 0000000000..12a356cd04
--- /dev/null
+++ b/docs/uk/docs/tutorial/handling-errors.md
@@ -0,0 +1,255 @@
+# ĐĐąŅОйĐēа ĐĐžĐŧиĐģĐžĐē
+
+Đ ĐąĐ°ĐŗĐ°ŅĐž ŅиŅŅаŅŅĐš, ĐēĐžĐģи ĐŋĐžŅŅŅĐąĐŊĐž ĐŋОвŅĐ´ĐžĐŧиŅи ĐēĐģŅŅĐŊŅа, ŅĐēиК виĐēĐžŅиŅŅОвŅŅ ĐĐ°Ņ API, ĐŋŅĐž ĐŋĐžĐŧиĐģĐēŅ.
+
+ĐĻиĐŧ ĐēĐģŅŅĐŊŅĐžĐŧ ĐŧĐžĐļĐĩ ĐąŅŅи ĐąŅаŅСĐĩŅ ŅС ŅŅĐžĐŊŅĐĩĐŊĐ´ĐžĐŧ, ĐēОд ŅĐŊŅĐžĐŗĐž ŅОСŅОйĐŊиĐēа, IoT-ĐŋŅиŅŅŅŅĐš ŅĐžŅĐž.
+
+ĐĐžĐļĐģивО, ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋОвŅĐ´ĐžĐŧиŅи ĐēĐģŅŅĐŊŅа, ŅĐž:
+
+* ĐŖ ĐŊŅĐžĐŗĐž ĐŊĐĩĐ´ĐžŅŅаŅĐŊŅĐž ĐŋŅав Đ´ĐģŅ Đ˛Đ¸ĐēĐžĐŊаĐŊĐŊŅ ŅŅŅŅ ĐžĐŋĐĩŅаŅŅŅ.
+* ĐŅĐŊ ĐŊĐĩ ĐŧĐ°Ņ Đ´ĐžŅŅŅĐŋŅ Đ´Đž ŅŅĐžĐŗĐž ŅĐĩŅŅŅŅŅ.
+* ĐĐģĐĩĐŧĐĩĐŊŅ, Đ´Đž ŅĐēĐžĐŗĐž вŅĐŊ ĐŊаĐŧĐ°ĐŗĐ°ŅŅŅŅŅ ĐžŅŅиĐŧаŅи Đ´ĐžŅŅŅĐŋ, ĐŊĐĩ ŅŅĐŊŅŅ.
+* ŅĐžŅĐž.
+
+ĐŖ ŅаĐēиŅ
виĐŋадĐēаŅ
СаСвиŅаК ĐŋОвĐĩŅŅаŅŅŅŅŅ **HTTP ŅŅаŅŅŅ-ĐēОд** в Đ´ŅаĐŋаСОĐŊŅ **400** (вŅĐ´ 400 Đ´Đž 499).
+
+ĐĻĐĩ ŅŅ
ĐžĐļĐĩ ĐŊа HTTP ŅŅаŅŅŅ-ĐēОди 200 (вŅĐ´ 200 Đ´Đž 299). ĐĻŅ "200" ŅŅаŅŅŅ-ĐēОди ОСĐŊаŅаŅŅŅ, ŅĐž СаĐŋĐ¸Ņ ĐŋŅОКŅОв ŅŅĐŋŅŅĐŊĐž.
+
+ĐĄŅаŅŅŅ-ĐēОди в Đ´ŅаĐŋаСОĐŊŅ 400 ОСĐŊаŅаŅŅŅ, ŅĐž ŅŅаĐģаŅŅ ĐŋĐžĐŧиĐģĐēа С йОĐēŅ ĐēĐģŅŅĐŊŅа.
+
+ĐаĐŧ'ŅŅаŅŅĐĩ вŅŅ ŅŅ ĐŋĐžĐŧиĐģĐēи **404 Not Found** (Ņ ĐļаŅŅи ĐŋŅĐž ĐŊиŅ
)?
+
+## ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `HTTPException`
+
+ЊОй ĐŋОвĐĩŅĐŊŅŅи HTTP-вŅĐ´ĐŋОвŅĐ´Ņ Đˇ ĐŋĐžĐŧиĐģĐēаĐŧи ĐēĐģŅŅĐŊŅŅ, виĐēĐžŅиŅŅОвŅĐšŅĐĩ `HTTPException`.
+
+### ĐĐŧĐŋĐžŅŅ `HTTPException`
+
+{* ../../docs_src/handling_errors/tutorial001.py hl[1] *}
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `HTTPException` Ņ ĐēОдŅ
+
+`HTTPException` â ŅĐĩ СвиŅаКĐŊа ĐŋĐžĐŧиĐģĐēа Python ŅС дОдаŅĐēОвиĐŧи даĐŊиĐŧи, ŅĐēŅ ŅŅĐžŅŅŅŅŅŅŅ API.
+
+ĐŅĐēŅĐģŅĐēи ŅĐĩ ĐŋĐžĐŧиĐģĐēа Python, Đи ĐŊĐĩ `ĐŋОвĐĩŅŅаŅŅĐĩ` ĐšĐžĐŗĐž, а `ĐŗĐĩĐŊĐĩŅŅŅŅĐĩ` (ĐŗĐĩĐŊĐĩŅŅŅŅĐĩ ĐŋĐžĐŧиĐģĐēŅ).
+
+ĐĻĐĩ ŅаĐēĐžĐļ ОСĐŊаŅаŅ, ŅĐž ŅĐēŅĐž Đи ĐŋĐĩŅĐĩĐąŅваŅŅĐĩ вŅĐĩŅĐĩдиĐŊŅ Đ´ĐžĐŋĐžĐŧŅĐļĐŊĐžŅ ŅŅĐŊĐēŅŅŅ, ŅĐēŅ Đ˛Đ¸ĐēĐģиĐēаŅŅĐĩ вŅĐĩŅĐĩдиĐŊŅ ŅвОŅŅ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, Ņ ŅаĐŧ ĐŗĐĩĐŊĐĩŅŅŅŅĐĩ `HTTPException`, вŅĐĩŅĐĩдиĐŊŅ ŅŅŅŅ Đ´ĐžĐŋĐžĐŧŅĐļĐŊĐžŅ ŅŅĐŊĐēŅŅŅ, ŅĐž ŅĐĩŅŅа ĐēĐžĐ´Ņ Đ˛ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* ĐŊĐĩ ĐąŅĐ´Đĩ виĐēĐžĐŊаĐŊа. ĐаĐŋĐ¸Ņ ĐžĐ´ŅĐ°ĐˇŅ ĐˇĐ°Đ˛ĐĩŅŅиŅŅŅŅ, Ņ HTTP-ĐŋĐžĐŧиĐģĐēа С `HTTPException` ĐąŅĐ´Đĩ ĐŊадŅŅĐģаĐŊа ĐēĐģŅŅĐŊŅŅ.
+
+ĐĐĩŅĐĩĐ˛Đ°ĐŗĐ° виĐēĐžŅиŅŅаĐŊĐŊŅ `ĐŗĐĩĐŊĐĩŅаŅŅŅ` (raise) ĐŋĐžĐŧиĐģĐēи СаĐŧŅŅŅŅ `ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ` СĐŊаŅĐĩĐŊĐŊŅ (return) ŅŅаĐŊĐĩ ĐąŅĐģŅŅ ĐžŅĐĩвидĐŊиĐŧ в ŅОСдŅĐģŅ ĐŋŅĐž ĐаĐģĐĩĐļĐŊĐžŅŅŅ Ņа ĐĐĩСĐŋĐĩĐēŅ.
+
+ĐŖ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ, ŅĐēŅĐž ĐēĐģŅŅĐŊŅ ĐˇĐ°ĐŋиŅŅŅ ĐĩĐģĐĩĐŧĐĩĐŊŅ ĐˇĐ° ID, ŅĐēĐžĐŗĐž ĐŊĐĩ ŅŅĐŊŅŅ, ĐąŅĐ´Đĩ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊĐž ĐŋĐžĐŧиĐģĐēŅ ĐˇŅ ŅŅаŅŅŅ-ĐēОдОĐŧ `404`:
+
+{* ../../docs_src/handling_errors/tutorial001.py hl[11] *}
+
+### ĐŅŅиĐŧаĐŊа вŅĐ´ĐŋОвŅĐ´Ņ
+
+Đ¯ĐēŅĐž ĐēĐģŅŅĐŊŅ ŅОйиŅŅ ĐˇĐ°ĐŋĐ¸Ņ ĐˇĐ° ŅĐģŅŅ
ĐžĐŧ `http://example.com/items/foo` (Đ´Đĩ `item_id` `"foo"`), вŅĐŊ ĐžŅŅиĐŧĐ°Ņ ŅŅаŅŅŅ-ĐēОд 200 Ņ JSON вŅĐ´ĐŋОвŅĐ´Ņ:
+
+```JSON
+{
+ "item": "The Foo Wrestlers"
+}
+```
+
+ĐĐģĐĩ ŅĐēŅĐž ĐēĐģŅŅĐŊŅ ŅОйиŅŅ ĐˇĐ°ĐŋĐ¸Ņ ĐŊа `http://example.com/items/bar` (Đ´Đĩ `item_id` ĐŧĐ°Ņ ĐŊĐĩ ŅŅĐŊŅŅŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ `"bar"`), ŅĐž ĐžŅŅиĐŧĐ°Ņ ŅŅаŅŅŅ-ĐēОд 404 (ĐŋĐžĐŧиĐģĐēа "ĐŊĐĩ СĐŊаКдĐĩĐŊĐž") Ņа вŅĐ´ĐŋОвŅĐ´Ņ:
+
+```JSON
+{
+ "detail": "Item not found"
+}
+```
+
+/// tip | ĐĐžŅада
+
+ĐŅĐ´ ŅĐ°Ņ Đ˛Đ¸ĐēĐģиĐēŅ `HTTPException` Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи ĐąŅĐ´Ņ-ŅĐēĐĩ СĐŊаŅĐĩĐŊĐŊŅ, ŅĐēĐĩ ĐŧĐžĐļĐĩ ĐąŅŅи ĐŋĐĩŅĐĩŅвОŅĐĩĐŊĐĩ в JSON, ŅĐē ĐŋаŅаĐŧĐĩŅŅ `detail`, а ĐŊĐĩ ĐģиŅĐĩ ŅŅĐ´ĐžĐē (`str`).
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи `dict`, `list` ŅĐžŅĐž.
+
+ĐĐžĐŊи ОйŅОйĐģŅŅŅŅŅŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ **FastAPI** Ņа ĐŋĐĩŅĐĩŅвОŅŅŅŅŅŅŅ Đ˛ JSON.
+
+///
+
+## ĐОдаваĐŊĐŊŅ Đ˛ĐģаŅĐŊиŅ
ĐˇĐ°ĐŗĐžĐģОвĐēŅв
+
+ĐĐŊĐžĐ´Ņ ĐŋĐžŅŅŅĐąĐŊĐž дОдаŅи вĐģаŅĐŊŅ ĐˇĐ°ĐŗĐžĐģОвĐēи Đ´Đž HTTP-ĐŋĐžĐŧиĐģĐēи, ĐŊаĐŋŅиĐēĐģад, Đ´ĐģŅ ĐŋĐĩвĐŊиŅ
ŅиĐŋŅв ĐąĐĩСĐŋĐĩĐēи.
+
+ĐĐŧОвŅŅĐŊĐž, ĐаĐŧ ĐŊĐĩ дОвĐĩĐ´ĐĩŅŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваŅи ŅĐĩ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž Ņ ŅвОŅĐŧŅ ĐēОдŅ.
+
+ĐĐģĐĩ ŅĐēŅĐž ĐаĐŧ СĐŊадОйиŅŅŅŅ ŅĐĩ Đ´ĐģŅ ŅĐēĐģадĐŊĐžĐŗĐž ŅŅĐĩĐŊаŅŅŅ, Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи вĐģаŅĐŊŅ ĐˇĐ°ĐŗĐžĐģОвĐēи:
+
+{* ../../docs_src/handling_errors/tutorial002.py hl[14] *}
+
+## ĐŅŅаĐŊОвĐģĐĩĐŊĐŊŅ Đ˛ĐģаŅĐŊиŅ
ОйŅОйĐŊиĐēŅв ĐŋĐžĐŧиĐģĐžĐē
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи вĐģаŅĐŊŅ ĐžĐąŅОйĐŊиĐēи ĐŋĐžĐŧиĐģĐžĐē Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ŅиŅ
ŅаĐŧиŅ
ŅŅиĐģŅŅ ĐžĐąŅОйĐēи ĐŋĐžĐŧиĐģĐžĐē ĐˇŅ Starlette.
+
+ĐŅиĐŋŅŅŅиĐŧĐž, Ņ ĐĐ°Ņ Ņ Đ˛ĐģаŅĐŊиК ОйĘŧŅĐēŅ ĐŋĐžĐŧиĐģĐēи `UnicornException`, ŅĐēĐĩ Đи (айО ĐąŅĐąĐģŅĐžŅĐĩĐēа, ŅĐēŅ Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ) ĐŧĐžĐļĐĩ `ĐˇĐŗĐĩĐŊĐĩŅŅваŅи` (`raise`).
+
+Đ Đи Ņ
ĐžŅĐĩŅĐĩ ОйŅОйĐģŅŅи ŅĐĩ виĐēĐģŅŅĐĩĐŊĐŊŅ ĐŗĐģОйаĐģŅĐŊĐž Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ FastAPI.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи вĐģаŅĐŊиК ОйŅОйĐŊиĐē виĐēĐģŅŅĐĩĐŊŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `@app.exception_handler()`:
+
+{* ../../docs_src/handling_errors/tutorial003.py hl[5:7,13:18,24] *}
+
+ĐĸŅŅ, ŅĐēŅĐž Đи СвĐĩŅĐŊĐĩŅĐĩŅŅ Đ´Đž `/unicorns/yolo`, ŅĐž ĐˇĐŗĐĩĐŊĐĩŅŅŅŅŅŅŅ ĐŋĐžĐŧиĐģĐēа `UnicornException`.
+
+ĐĐģĐĩ вОĐŊа ĐąŅĐ´Đĩ ОйŅОйĐģĐĩĐŊа ŅŅĐŊĐēŅŅŅŅ-ОйŅОйĐŊиĐēĐžĐŧ `unicorn_exception_handler`.
+
+ĐŅĐļĐĩ, Đи ĐžŅŅиĐŧаŅŅĐĩ СŅОСŅĐŧŅĐģŅ ĐŋĐžĐŧиĐģĐēŅ ĐˇŅ HTTP-ŅŅаŅŅŅĐžĐŧ `418` Ņ JSON-вŅĐ´ĐŋОвŅĐ´Đ´Ņ:
+
+```JSON
+{"message": "Oops! yolo did something. There goes a rainbow..."}
+```
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `from starlette.requests import Request` Ņ `from starlette.responses import JSONResponse`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅŅ ŅаĐŧŅ `starlette.responses`, ŅĐž Đš `fastapi.responses`, ĐŋŅĐžŅŅĐž Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēа. ĐĐģĐĩ ĐąŅĐģŅŅŅŅŅŅ Đ´ĐžŅŅŅĐŋĐŊиŅ
вŅĐ´ĐŋОвŅĐ´ĐĩĐš ĐŊадŅ
ОдŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐˇŅ Starlette. ĐĸĐĩ Đļ ŅаĐŧĐĩ ŅŅĐžŅŅŅŅŅŅŅ Ņ `Request`.
+
+///
+
+## ĐĐĩŅĐĩвиСĐŊаŅĐĩĐŊĐŊŅ ĐžĐąŅОйĐŊиĐēŅв ĐŋĐžĐŧиĐģĐžĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+
+**FastAPI** ĐŧĐ°Ņ ĐēŅĐģŅĐēа ОйŅОйĐŊиĐēŅв ĐŋĐžĐŧиĐģĐžĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+ĐĻŅ ĐžĐąŅОйĐŊиĐēи вŅĐ´ĐŋОвŅдаŅŅŅ ĐˇĐ° ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ŅŅаĐŊдаŅŅĐŊиŅ
JSON-вŅĐ´ĐŋОвŅĐ´ĐĩĐš, ĐēĐžĐģи Đи `ĐŗĐĩĐŊĐĩŅŅŅŅĐĩ` (`raise`) `HTTPException`, а ŅаĐēĐžĐļ ĐēĐžĐģи СаĐŋĐ¸Ņ ĐŧŅŅŅиŅŅ ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊŅ Đ´Đ°ĐŊŅ.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩвиСĐŊаŅиŅи ŅŅ ĐžĐąŅОйĐŊиĐēи, ŅŅвОŅивŅи вĐģаŅĐŊŅ.
+
+### ĐĐĩŅĐĩвиСĐŊаŅĐĩĐŊĐŊŅ ĐŋĐžĐŧиĐģĐžĐē ваĐģŅдаŅŅŅ ĐˇĐ°ĐŋиŅŅ
+
+ĐĐžĐģи СаĐŋĐ¸Ņ ĐŧŅŅŅиŅŅ ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊŅ Đ´Đ°ĐŊŅ, **FastAPI** ĐŗĐĩĐŊĐĩŅŅŅ `RequestValidationError`.
+
+Đ ŅаĐēĐžĐļ вĐēĐģŅŅĐ°Ņ ĐžĐąŅОйĐŊиĐē ĐŋĐžĐŧиĐģĐžĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ Đ´ĐģŅ ĐŊŅĐžĐŗĐž.
+
+ЊОй ĐŋĐĩŅĐĩвиСĐŊаŅиŅи ĐšĐžĐŗĐž, ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ `RequestValidationError` Ņ Đ˛Đ¸ĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐšĐžĐŗĐž С `@app.exception_handler(RequestValidationError)` Đ´ĐģŅ Đ´ĐĩĐēĐžŅŅваĐŊĐŊŅ ĐžĐąŅОйĐŊиĐēа ĐŋĐžĐŧиĐģĐžĐē.
+
+ĐĐąŅОйĐŊиĐē ĐŋĐžĐŧиĐģĐžĐē ĐžŅŅиĐŧŅŅ `Request` Ņ ŅаĐŧŅ ĐŋĐžĐŧиĐģĐēŅ.
+
+{* ../../docs_src/handling_errors/tutorial004.py hl[2,14:16] *}
+
+ĐĸĐĩĐŋĐĩŅ, ŅĐēŅĐž Đи ĐŋĐĩŅĐĩКдĐĩŅĐĩ Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ `/items/foo`, СаĐŧŅŅŅŅ ŅĐžĐŗĐž, ŅОй ĐžŅŅиĐŧаŅи ŅŅаĐŊдаŅŅĐŊŅ JSON-ĐŋĐžĐŧиĐģĐēŅ:
+
+```JSON
+{
+ "detail": [
+ {
+ "loc": [
+ "path",
+ "item_id"
+ ],
+ "msg": "value is not a valid integer",
+ "type": "type_error.integer"
+ }
+ ]
+}
+```
+
+Đи ĐžŅŅиĐŧаŅŅĐĩ ŅĐĩĐēŅŅĐžĐ˛Ņ Đ˛ĐĩŅŅŅŅ:
+
+```
+1 validation error
+path -> item_id
+ value is not a valid integer (type=type_error.integer)
+```
+
+#### `RequestValidationError` ĐŋŅĐžŅи `ValidationError`
+
+/// warning | ĐŖĐ˛Đ°ĐŗĐ°
+
+ĐĻĐĩ ŅĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ, ŅĐēŅ Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋŅĐžĐŋŅŅŅиŅи, ŅĐēŅĐž вОĐŊи СаŅаС ĐŊĐĩ ваĐļĐģĐ¸Đ˛Ņ Đ´ĐģŅ ĐаŅ.
+
+///
+
+`RequestValidationError` Ņ ĐŋŅĐ´ĐēĐģаŅĐžĐŧ Pydantic `ValidationError`.
+
+**FastAPI** виĐēĐžŅиŅŅОвŅŅ ĐšĐžĐŗĐž Đ´ĐģŅ ŅĐžĐŗĐž, ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ ĐŧОдĐĩĐģŅ Pydantic Ņ `response_model` Ņ Ņ Đ˛Đ°ŅиŅ
даĐŊиŅ
Ņ ĐŋĐžĐŧиĐģĐēа, Đи ĐŋОйаŅиĐģи ĐŋĐžĐŧиĐģĐēŅ Ņ ŅвОŅĐŧŅ ĐļŅŅĐŊаĐģŅ.
+
+ĐĐģĐĩ ĐēĐģŅŅĐŊŅ/ĐēĐžŅиŅŅŅĐ˛Đ°Ņ ĐŊĐĩ ĐŋОйаŅиŅŅ ŅŅ. ĐаŅĐžĐŧŅŅŅŅ ĐēĐģŅŅĐŊŅ ĐžŅŅиĐŧĐ°Ņ "Internal Server Error" ĐˇŅ ŅŅаŅŅŅĐžĐŧ HTTP `500`.
+
+ĐĸаĐē ĐŧĐ°Ņ ĐąŅŅи, ŅĐēŅĐž Ņ ĐĐ°Ņ Đ˛Đ¸ĐŊиĐēĐģа `ValidationError` Pydantic Ņ *вŅĐ´ĐŋОвŅĐ´Ņ* айО Đ´ĐĩŅĐŊĐ´Đĩ Ņ Đ˛Đ°ŅĐžĐŧŅ ĐēĐžĐ´Ņ (ĐŊĐĩ Ņ *СаĐŋиŅŅ* ĐēĐģŅŅĐŊŅа), ŅĐĩ ĐŊаŅĐŋŅĐ°Đ˛Đ´Ņ Ņ ĐŋĐžĐŧиĐģĐēĐžŅ Ņ ĐаŅĐžĐŧŅ ĐēОдŅ.
+
+Đ ĐŋĐžĐēи Đи ŅŅ Đ˛Đ¸ĐŋŅавĐģŅŅŅĐĩ, ĐēĐģŅŅĐŊŅи/ĐēĐžŅиŅŅŅваŅŅ ĐŊĐĩ ĐŋОвиĐŊĐŊŅ ĐŧаŅи Đ´ĐžŅŅŅĐŋŅ Đ´Đž вĐŊŅŅŅŅŅĐŊŅĐžŅ ŅĐŊŅĐžŅĐŧаŅŅŅ ĐŋŅĐž ĐŋĐžĐŧиĐģĐēŅ, ĐžŅĐēŅĐģŅĐēи ŅĐĩ ĐŧĐžĐļĐĩ ĐŋŅиСвĐĩŅŅи Đ´Đž вŅаСĐģивОŅŅŅ ĐąĐĩСĐŋĐĩĐēи.
+
+### ĐĐĩŅĐĩвиСĐŊаŅĐĩĐŊĐŊŅ ĐžĐąŅОйĐŊиĐēа ĐŋĐžĐŧиĐģĐžĐē `HTTPException`
+
+ĐĐŊаĐģĐžĐŗŅŅĐŊĐž, Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩвиСĐŊаŅиŅи ОйŅОйĐŊиĐē `HTTPException`.
+
+ĐаĐŋŅиĐēĐģад, Đи ĐŧĐžĐļĐĩŅĐĩ СаŅ
ĐžŅŅŅи ĐŋОвĐĩŅĐŊŅŅи ŅĐĩĐēŅŅĐžĐ˛Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐˇĐ°ĐŧŅŅŅŅ JSON Đ´ĐģŅ ŅиŅ
ĐŋĐžĐŧиĐģĐžĐē:
+
+{* ../../docs_src/handling_errors/tutorial004.py hl[3:4,9:11,22] *}
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `from starlette.responses import PlainTextResponse`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅŅ ŅаĐŧŅ `starlette.responses`, ŅĐž Đš `fastapi.responses`, ĐŋŅĐžŅŅĐž Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēа. ĐĐģĐĩ ĐąŅĐģŅŅŅŅŅŅ Đ´ĐžŅŅŅĐŋĐŊиŅ
вŅĐ´ĐŋОвŅĐ´ĐĩĐš ĐŊадŅ
ОдŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐˇŅ Starlette.
+
+///
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ŅŅĐģа `RequestValidationError`
+
+`RequestValidationError` ĐŧŅŅŅиŅŅ `body`, ŅĐēиК вŅĐŊ ĐžŅŅиĐŧав ŅС ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊиĐŧи даĐŊиĐŧи.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅĐĩ ĐŋŅĐ´ ŅĐ°Ņ ŅОСŅОйĐēи ŅĐ˛ĐžĐŗĐž дОдаŅĐēа, ŅОй ĐģĐžĐŗŅваŅи ŅŅĐģĐž СаĐŋиŅŅ Ņа ĐŊаĐģĐ°ĐŗĐžĐ´ĐļŅваŅи ĐšĐžĐŗĐž, ĐŋОвĐĩŅŅаŅи ĐēĐžŅиŅŅŅваŅĐĩĐ˛Ņ ŅĐžŅĐž.
+
+{* ../../docs_src/handling_errors/tutorial005.py hl[14] *}
+
+ĐĸĐĩĐŋĐĩŅ ŅĐŋŅОйŅĐšŅĐĩ ĐŊадŅŅĐģаŅи ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊиК ĐĩĐģĐĩĐŧĐĩĐŊŅ, ĐŊаĐŋŅиĐēĐģад:
+
+```JSON
+{
+ "title": "towel",
+ "size": "XL"
+}
+```
+Đи ĐžŅŅиĐŧаŅŅĐĩ вŅĐ´ĐŋОвŅĐ´Ņ, ŅĐēа ĐŋОвŅĐ´ĐžĐŧиŅŅ ĐаĐŧ, ŅĐēŅ ŅаĐŧĐĩ даĐŊŅ Ņ ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊŅ Ņ Đ˛Đ°ŅĐžĐŧŅ ŅŅĐģŅ ĐˇĐ°ĐŋиŅŅ:
+
+
+```JSON hl_lines="12-15"
+{
+ "detail": [
+ {
+ "loc": [
+ "body",
+ "size"
+ ],
+ "msg": "value is not a valid integer",
+ "type": "type_error.integer"
+ }
+ ],
+ "body": {
+ "title": "towel",
+ "size": "XL"
+ }
+}
+```
+
+#### `HTTPException` FastAPI ĐŋŅĐžŅи `HTTPException` Starlette
+
+**FastAPI** ĐŧĐ°Ņ Đ˛ĐģаŅĐŊиК `HTTPException`.
+
+Đ ĐēĐģĐ°Ņ ĐŋĐžĐŧиĐģĐēи `HTTPException` в **FastAPI** ŅŅĐŋадĐēОвŅŅŅŅŅŅ Đ˛ŅĐ´ ĐēĐģаŅŅ ĐŋĐžĐŧиĐģĐēи `HTTPException` в Starlette.
+
+ĐдиĐŊа ŅŅСĐŊиŅŅ ĐŋĐžĐģŅĐŗĐ°Ņ Đ˛ ŅĐžĐŧŅ, ŅĐž `HTTPException` в **FastAPI** ĐŋŅиКĐŧĐ°Ņ ĐąŅĐ´Ņ-ŅĐēŅ Đ´Đ°ĐŊŅ, ŅĐēŅ ĐŧĐžĐļĐŊа ĐŋĐĩŅĐĩŅвОŅиŅи ĐŊа JSON, Đ´ĐģŅ ĐŋĐžĐģŅ `detail`, ŅĐžĐ´Ņ ŅĐē `HTTPException` Ņ Starlette ĐŋŅиКĐŧĐ°Ņ ŅŅĐģŅĐēи ŅŅĐ´Đēи.
+
+ĐŅĐļĐĩ, Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋŅОдОвĐļŅваŅи виĐēĐžŅиŅŅОвŅваŅи `HTTPException` в **FastAPI** ŅĐē СаСвиŅаК Ņ ŅвОŅĐŧŅ ĐēОдŅ.
+
+ĐĐģĐĩ ĐēĐžĐģи Đи ŅĐĩŅŅŅŅŅŅŅĐĩ ОйŅОйĐŊиĐē виĐēĐģŅŅĐĩĐŊŅ, ŅĐģŅĐ´ ŅĐĩŅŅŅŅŅваŅи ĐšĐžĐŗĐž Đ´ĐģŅ `HTTPException` ĐˇŅ Starlette.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, ŅĐēŅĐž ĐąŅĐ´Ņ-ŅĐēа ŅаŅŅиĐŊа вĐŊŅŅŅŅŅĐŊŅĐžĐŗĐž ĐēĐžĐ´Ņ Starlette айО ŅОСŅиŅĐĩĐŊĐŊŅ Ņи ĐŋĐģĐ°ĐŗŅĐŊ Starlette ĐˇĐŗĐĩĐŊĐĩŅŅŅ (raise) `HTTPException`, ĐĐ°Ņ ĐžĐąŅОйĐŊиĐē СĐŧĐžĐļĐĩ ĐŋĐĩŅĐĩŅ
ĐžĐŋиŅи Ņа ОйŅОйиŅи ŅŅ.
+
+ĐŖ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ, ŅОй ĐŧаŅи ĐŧĐžĐļĐģивŅŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваŅи Ойидва `HTTPException` в ОдĐŊĐžĐŧŅ ĐēОдŅ, ĐŋĐžĐŧиĐģĐēа Starlette ĐŋĐĩŅĐĩĐšĐŧĐĩĐŊОвŅŅŅŅŅŅ ĐŊа `StarletteHTTPException`:
+
+```Python
+from starlette.exceptions import HTTPException as StarletteHTTPException
+```
+
+### ĐОвŅĐžŅĐŊĐĩ виĐēĐžŅиŅŅаĐŊĐŊŅ ĐžĐąŅОйĐŊиĐēŅв ĐŋĐžĐŧиĐģĐžĐē **FastAPI**
+
+Đ¯ĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐŋĐžĐŧиĐģĐēи ŅаСОĐŧ ŅС ŅаĐēиĐŧи Đļ ОйŅОйĐŊиĐēаĐŧи ĐŋĐžĐŧиĐģĐžĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ, ŅĐē Ņ **FastAPI**, Đи ĐŧĐžĐļĐĩŅĐĩ ŅĐŧĐŋĐžŅŅŅваŅи Ņа ĐŋОвŅĐžŅĐŊĐž виĐēĐžŅиŅŅОвŅваŅи ŅŅ
ŅС `fastapi.exception_handlers`:
+
+{* ../../docs_src/handling_errors/tutorial006.py hl[2:5,15,21] *}
+
+ĐŖ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ Đи ĐŋŅĐžŅŅĐž виĐēĐžŅиŅŅОвŅŅŅĐĩ `print` Đ´ĐģŅ Đ˛Đ¸Đ˛ĐĩĐ´ĐĩĐŊĐŊŅ Đ´ŅĐļĐĩ ŅĐŊŅĐžŅĐŧаŅивĐŊĐžĐŗĐž ĐŋОвŅĐ´ĐžĐŧĐģĐĩĐŊĐŊŅ, аĐģĐĩ Đи СŅОСŅĐŧŅĐģи ĐžŅĐŊОвĐŊŅ ŅĐ´ĐĩŅ. Đи ĐŧĐžĐļĐĩŅĐĩ ОйŅОйиŅи ĐŋĐžĐŧиĐģĐēŅ Ņа ĐŋОвŅĐžŅĐŊĐž виĐēĐžŅиŅŅОвŅваŅи ОйŅОйĐŊиĐēи ĐŋĐžĐŧиĐģĐžĐē Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
diff --git a/docs/uk/docs/tutorial/header-param-models.md b/docs/uk/docs/tutorial/header-param-models.md
new file mode 100644
index 0000000000..6f7b0bdae7
--- /dev/null
+++ b/docs/uk/docs/tutorial/header-param-models.md
@@ -0,0 +1,58 @@
+# ĐОдĐĩĐģŅ ĐаŅаĐŧĐĩŅŅŅв ĐĐ°ĐŗĐžĐģОвĐēŅв
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐŗŅŅĐŋа ĐŋОвâŅСаĐŊиŅ
ĐŋаŅаĐŧĐĩŅŅŅв ĐˇĐ°ĐŗĐžĐģОвĐēŅв, Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи **Pydantic ĐŧОдĐĩĐģŅ** Đ´ĐģŅ ŅŅ
ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ.
+
+ĐĻĐĩ дОСвОĐģиŅŅ ĐаĐŧ ĐŋОвŅĐžŅĐŊĐž **виĐēĐžŅиŅŅОвŅваŅи ĐŧОдĐĩĐģŅ** в **ŅŅСĐŊиŅ
ĐŧŅŅŅŅŅ
**, а ŅаĐēĐžĐļ ĐžĐŗĐžĐģĐžŅиŅи ваĐģŅдаŅŅŅ Ņа ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ Đ˛ŅŅŅ
ĐŋаŅаĐŧĐĩŅŅŅв ОдĐŊĐžŅаŅĐŊĐž. đ
+
+/// note | ĐĐžŅаŅĐēи
+
+ĐĻŅ ĐŧĐžĐļĐģивŅŅŅŅ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ ĐŋĐžŅиĐŊаŅŅи С вĐĩŅŅŅŅ FastAPI `0.115.0`. đ¤
+
+///
+
+## ĐаŅаĐŧĐĩŅŅи ĐĐ°ĐŗĐžĐģОвĐēŅв С ĐиĐēĐžŅиŅŅаĐŊĐŊŅĐŧ Pydantic Model
+
+ĐĐŗĐžĐģĐžŅŅŅŅ ĐŋĐžŅŅŅĐąĐŊŅ **ĐŋаŅаĐŧĐĩŅŅи ĐˇĐ°ĐŗĐžĐģОвĐēŅв** Ņ **Pydantic ĐŧОдĐĩĐģŅ**, а ĐŋĐžŅŅĐŧ ĐžĐŗĐžĐģĐžŅŅŅŅ ĐŋаŅаĐŧĐĩŅŅ ŅĐē `Header`:
+
+{* ../../docs_src/header_param_models/tutorial001_an_py310.py hl[9:14,18] *}
+
+FastAPI ĐąŅĐ´Đĩ виŅŅĐŗŅваŅи даĐŊŅ Đ´ĐģŅ ĐēĐžĐļĐŊĐžĐŗĐž ĐŋĐžĐģŅ Đˇ ĐˇĐ°ĐŗĐžĐģОвĐēŅв Ņ ĐˇĐ°ĐŋиŅŅ Ņа ĐŋĐĩŅĐĩдаваŅи ŅŅ
Ņ ŅŅвОŅĐĩĐŊŅ ĐаĐŧи Pydantic ĐŧОдĐĩĐģŅ.
+
+**FastAPI** ĐąŅĐ´Đĩ **виŅŅĐŗŅваŅи** даĐŊŅ Đ´ĐģŅ **ĐēĐžĐļĐŊĐžĐŗĐž ĐŋĐžĐģŅ** С **ĐˇĐ°ĐŗĐžĐģОвĐēŅв** Ņ ĐˇĐ°ĐŋиŅŅ Ņа ĐŋĐĩŅĐĩдаваŅи ŅŅ
Ņ ŅŅвОŅĐĩĐŊŅ ĐаĐŧи Pydantic ĐŧОдĐĩĐģŅ.
+
+## ĐĐĩŅĐĩвŅŅĐēа в ĐĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋОйаŅиŅи ĐŊĐĩОйŅ
ŅĐ´ĐŊŅ ĐˇĐ°ĐŗĐžĐģОвĐēи в ŅĐŊŅĐĩŅŅĐĩĐšŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐ° адŅĐĩŅĐžŅ `/docs`:
+
+
+contact ĐŋĐžĐģŅ| ĐаŅаĐŧĐĩŅŅ | ĐĸиĐŋ | ĐĐŋĐ¸Ņ |
|---|---|---|
name | str | ĐĐŧ'Ņ ĐēĐžĐŊŅаĐēŅĐŊĐžŅ ĐžŅОйи айО ĐžŅĐŗĐ°ĐŊŅСаŅŅŅ. |
url | str | URL С ŅĐŊŅĐžŅĐŧаŅŅŅŅ Đ´ĐģŅ ĐēĐžĐŊŅаĐēŅŅ. ĐОвиĐŊĐĩĐŊ ĐąŅŅи Ņ ŅĐžŅĐŧаŅŅ URL. |
email | str | Email ĐēĐžĐŊŅаĐēŅĐŊĐžŅ ĐžŅОйи айО ĐžŅĐŗĐ°ĐŊŅСаŅŅŅ. ĐОвиĐŊĐĩĐŊ ĐąŅŅи Ņ ŅĐžŅĐŧаŅŅ ĐĩĐģĐĩĐēŅŅĐžĐŊĐŊĐžŅ ĐŋĐžŅŅи. |
license_info ĐŋĐžĐģŅ| ĐаŅаĐŧĐĩŅŅ | ĐĸиĐŋ | ĐĐŋĐ¸Ņ |
|---|---|---|
name | str | ĐĐĐĐ'Đ¯ĐĐĐĐĐ (ŅĐēŅĐž вŅŅаĐŊОвĐģĐĩĐŊĐž license_info). ĐаСва ĐģŅŅĐĩĐŊСŅŅ Đ´ĐģŅ API. |
identifier | str | ĐŅŅĐĩĐŊСŅĐšĐŊиК виŅаС Са SPDX Đ´ĐģŅ API. ĐĐžĐģĐĩ identifier вСаŅĐŧОвиĐēĐģŅŅĐŊĐĩ С ĐŋĐžĐģĐĩĐŧ url. ĐĐžŅŅŅĐŋĐŊĐž С OpenAPI 3.1.0, FastAPI 0.99.0. |
url | str | URL Đ´Đž ĐģŅŅĐĩĐŊСŅŅ, ŅĐēа виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ´ĐģŅ API. ĐОвиĐŊĐĩĐŊ ĐąŅŅи Ņ ŅĐžŅĐŧаŅŅ URL. |
+
+## ĐĐ´ĐĩĐŊŅиŅŅĐēаŅĐžŅ ĐģŅŅĐĩĐŊСŅŅ
+
+Đ ĐŋĐžŅаŅĐēŅ Đ˛Đ¸ĐēĐžŅиŅŅаĐŊĐŊŅ OpenAPI 3.1.0 Ņа FastAPI 0.99.0 Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐŊаĐģаŅŅŅваŅи `license_info` Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `identifier` СаĐŧŅŅŅŅ `url`.
+
+ĐаĐŋŅиĐēĐģад:
+
+{* ../../docs_src/metadata/tutorial001_1.py hl[31] *}
+
+## ĐĐĩŅадаĐŊŅ Đ´ĐģŅ ŅĐĩĐŗŅв
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ дОдаŅи дОдаŅĐēĐžĐ˛Ņ ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ ŅŅСĐŊиŅ
ŅĐĩĐŗŅв, ŅĐēŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ´ĐģŅ ĐŗŅŅĐŋŅваĐŊĐŊŅ ĐžĐŋĐĩŅаŅŅĐš ŅĐģŅŅ
Ņв, Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `openapi_tags`.
+
+ĐŅĐŊ ĐŋŅиКĐŧĐ°Ņ ŅĐŋиŅĐžĐē, ŅĐēиК ĐŧŅŅŅиŅŅ ĐžĐ´Đ¸ĐŊ ŅĐģОвĐŊиĐē Đ´ĐģŅ ĐēĐžĐļĐŊĐžĐŗĐž ŅĐĩĐŗĐ°.
+
+ĐĐžĐļĐĩĐŊ ŅĐģОвĐŊиĐē ĐŧĐžĐļĐĩ ĐŧŅŅŅиŅи:
+
+* `name` (**ОйОв'ŅСĐēОвО**): `str` С ŅŅŅŅ Đļ ĐŊĐ°ĐˇĐ˛ĐžŅ ŅĐĩĐŗŅ, ŅĐēŅ Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ Ņ ĐŋаŅаĐŧĐĩŅŅŅ `tags` Ņ ĐаŅиŅ
*ĐžĐŋĐĩŅаŅŅŅŅ
ŅĐģŅŅ
Ņ* Ņа `APIRouter`s.
+* `description`: `str` С ĐēĐžŅĐžŅĐēиĐŧ ĐžĐŋиŅĐžĐŧ ŅĐĩĐŗŅ. ĐĐžĐļĐĩ ĐŧŅŅŅиŅи Markdown Ņ ĐąŅĐ´Đĩ вŅдОйŅаĐļĐĩĐŊĐž в ŅĐŊŅĐĩŅŅĐĩĐšŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+* `externalDocs`: `dict` ŅĐēиК ĐžĐŋиŅŅŅ ĐˇĐžĐ˛ĐŊŅŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Đˇ ŅаĐēиĐŧи ĐŋĐžĐģŅĐŧи:
+ * `description`: `str` С ĐēĐžŅĐžŅĐēиĐŧ ĐžĐŋиŅĐžĐŧ СОвĐŊŅŅĐŊŅĐžŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+ * `url` (**ОйОв'ŅСĐēОвО**): `str`С URL-адŅĐĩŅĐžŅ ĐˇĐžĐ˛ĐŊŅŅĐŊŅĐžŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+### ĐĄŅвОŅĐĩĐŊĐŊŅ ĐŧĐĩŅадаĐŊиŅ
Đ´ĐģŅ ŅĐĩĐŗŅв
+
+ĐĄĐŋŅОйŅĐšĐŧĐž ŅĐĩ ĐŊа ĐŋŅиĐēĐģĐ°Đ´Ņ Đˇ ŅĐĩĐŗĐ°Đŧи Đ´ĐģŅ `users` Ņа `items`.
+
+ĐĄŅвОŅŅŅŅ ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ ŅвОŅŅ
ŅĐĩĐŗŅв Ņ ĐŋĐĩŅĐĩдаКŅĐĩ ŅŅ
Ņ ĐŋаŅаĐŧĐĩŅŅ `openapi_tags`:
+
+{* ../../docs_src/metadata/tutorial004.py hl[3:16,18] *}
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž в ĐžĐŋиŅаŅ
ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи Markdown, ĐŊаĐŋŅиĐēĐģад, "login" ĐąŅĐ´Đĩ ĐŋĐžĐēаСаĐŊĐž ĐļиŅĐŊиĐŧ ŅŅиŅŅĐžĐŧ (**login**), а "fancy" ĐąŅĐ´Đĩ ĐŋĐžĐēаСаĐŊĐž ĐēŅŅŅивОĐŧ (_fancy_).
+
+/// tip | ĐĐžŅада
+
+ĐĐĩ ОйОв'ŅСĐēОвО дОдаваŅи ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ Đ˛ŅŅŅ
ŅĐĩĐŗŅв, ŅĐēŅ Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ.
+
+///
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ŅĐĩĐŗŅв
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅ `tags` ĐˇŅ ŅвОŅĐŧи *ĐžĐŋĐĩŅаŅŅŅĐŧи ŅĐģŅŅ
Ņ* (Ņ `APIRouter`) Đ´ĐģŅ ĐŋŅиСĐŊаŅĐĩĐŊĐŊŅ ŅŅ
Đ´Đž ŅŅСĐŊиŅ
ŅĐĩĐŗŅв:
+
+{* ../../docs_src/metadata/tutorial004.py hl[21,26] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐĐĩŅаĐģŅĐŊŅŅĐĩ ĐŋŅĐž ŅĐĩĐŗĐ¸ ŅиŅаКŅĐĩ в ŅОСдŅĐģŅ [ĐĐžĐŊŅŅĐŗŅŅаŅŅŅ ŅĐģŅŅ
Ņв ĐžĐŋĐĩŅаŅŅĐš](path-operation-configuration.md#tags){.internal-link target=_blank}.
+
+///
+
+### ĐĐĩŅĐĩвŅŅĐēа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đ¯ĐēŅĐž Đи СаŅаС ĐŋĐĩŅĐĩвŅŅиŅĐĩ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, вОĐŊа ĐŋĐžĐēаĐļĐĩ вŅŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ ĐŧĐĩŅадаĐŊŅ:
+
+
+
+### ĐĐžŅŅĐ´ĐžĐē ŅĐĩĐŗŅв
+
+ĐĐžŅŅĐ´ĐžĐē ĐēĐžĐļĐŊĐžĐŗĐž ŅĐģОвĐŊиĐēа ĐŧĐĩŅадаĐŊиŅ
ŅĐĩĐŗŅ ŅаĐēĐžĐļ виСĐŊаŅĐ°Ņ ĐŋĐžŅŅĐ´ĐžĐē вŅдОйŅаĐļĐĩĐŊĐŊŅ Đ˛ ŅĐŊŅĐĩŅŅĐĩĐšŅŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+ĐаĐŋŅиĐēĐģад, Ņ
ĐžŅа `users` Đŧав йи ĐšŅи ĐŋŅŅĐģŅ `items` в аĐģŅавŅŅĐŊĐžĐŧŅ ĐŋĐžŅŅĐ´ĐēŅ, вŅĐŊ вŅдОйŅаĐļаŅŅŅŅŅ ĐŋĐĩŅĐĩĐ´ ĐŊиĐŧи, ĐžŅĐēŅĐģŅĐēи Đŧи дОдаĐģи ĐšĐžĐŗĐž ĐŧĐĩŅадаĐŊŅ ŅĐē ĐŋĐĩŅŅиК ŅĐģОвĐŊиĐē Ņ ŅĐŋиŅĐēŅ.
+
+## URL Đ´ĐģŅ OpenAPI
+
+Đа СаĐŧОвŅŅваĐŊĐŊŅĐŧ ŅŅ
ĐĩĐŧа OpenAPI ĐŊадаŅŅŅŅŅ ĐˇĐ° адŅĐĩŅĐžŅ `/openapi.json`.
+
+ĐĐģĐĩ Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊаĐģаŅŅŅваŅи ŅĐĩ Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `openapi_url`.
+
+ĐаĐŋŅиĐēĐģад, ŅОй ĐŊаĐģаŅŅŅваŅи ĐšĐžĐŗĐž ĐŊа `/api/v1/openapi.json`:
+
+{* ../../docs_src/metadata/tutorial002.py hl[3] *}
+
+Đ¯ĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ ĐŋОвĐŊŅŅŅŅ Đ˛Đ¸ĐŧĐēĐŊŅŅи ŅŅ
ĐĩĐŧŅ OpenAPI, Đи ĐŧĐžĐļĐĩŅĐĩ вŅŅаĐŊОвиŅи `openapi_url=None`, ŅĐĩ ŅаĐēĐžĐļ виĐŧĐēĐŊĐĩ ŅĐŊŅĐĩŅŅĐĩĐšŅи Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ŅĐēŅ ŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅ.
+
+## URL-адŅĐĩŅи Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊаĐģаŅŅŅваŅи два ŅĐŊŅĐĩŅŅĐĩĐšŅи ĐēĐžŅиŅŅŅваŅа Đ´ĐģŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ŅĐēŅ Đ˛ĐēĐģŅŅĐĩĐŊŅ:
+
+* **Swagger UI**: Đ´ĐžŅŅŅĐŋĐŊиК Са адŅĐĩŅĐžŅ `/docs`.
+ * Đи ĐŧĐžĐļĐĩŅĐĩ СĐŧŅĐŊиŅи ĐšĐžĐŗĐž URL Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `docs_url`.
+ * Đи ĐŧĐžĐļĐĩŅĐĩ виĐŧĐēĐŊŅŅи ĐšĐžĐŗĐž, вŅŅаĐŊОвивŅи `docs_url=None`.
+* **ReDoc**: Đ´ĐžŅŅŅĐŋĐŊиК Са адŅĐĩŅĐžŅ `/redoc`.
+ * Đи ĐŧĐžĐļĐĩŅĐĩ СĐŧŅĐŊиŅи ĐšĐžĐŗĐž URL Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `redoc_url`.
+ * Đи ĐŧĐžĐļĐĩŅĐĩ виĐŧĐēĐŊŅŅи ĐšĐžĐŗĐž, вŅŅаĐŊОвивŅи `redoc_url=None`.
+
+ĐаĐŋŅиĐēĐģад, ŅОй ĐŊаĐģаŅŅŅваŅи Swagger UI ĐŊа `/documentation` Ņ Đ˛Đ¸ĐŧĐēĐŊŅŅи ReDoc:
+
+{* ../../docs_src/metadata/tutorial003.py hl[3] *}
diff --git a/docs/uk/docs/tutorial/middleware.md b/docs/uk/docs/tutorial/middleware.md
new file mode 100644
index 0000000000..807be484a2
--- /dev/null
+++ b/docs/uk/docs/tutorial/middleware.md
@@ -0,0 +1,75 @@
+# Middleware (ĐŅĐžĐŧŅĐļĐŊиК ŅаŅ)
+
+ĐŖ **FastAPI** ĐŧĐžĐļĐŊа дОдаваŅи middleware (ĐŋŅĐžĐŧŅĐļĐŊиК ŅаŅ).
+
+"Middleware" â ŅĐĩ ŅŅĐŊĐēŅŅŅ, ŅĐēа ĐŋŅаŅŅŅ Đˇ ĐēĐžĐļĐŊиĐŧ **СаĐŋиŅĐžĐŧ** ĐŋĐĩŅĐĩĐ´ ĐšĐžĐŗĐž ОйŅОйĐēĐžŅ ĐąŅĐ´Ņ-ŅĐēĐžŅ ĐēĐžĐŊĐēŅĐĩŅĐŊĐžŅ *ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ* (*path operation*), а ŅаĐēĐžĐļ С ĐēĐžĐļĐŊĐžŅ **вŅĐ´ĐŋОвŅĐ´Đ´Ņ** ĐŋĐĩŅĐĩĐ´ ŅŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅĐŧ.
+
+* Middleware ĐžŅŅиĐŧŅŅ ĐēĐžĐļĐĩĐŊ **СаĐŋиŅ**, ŅĐž ĐŊадŅ
ОдиŅŅ Đ´Đž ĐаŅĐžĐŗĐž СаŅŅĐžŅŅĐŊĐēŅ.
+* ĐĐžĐļĐĩ виĐēĐžĐŊаŅи ĐŋĐĩвĐŊŅ Đ´ŅŅ ŅС ŅиĐŧ **СаĐŋиŅĐžĐŧ** айО СаĐŋŅŅŅиŅи ĐŊĐĩОйŅ
ŅĐ´ĐŊиК ĐēОд.
+* ĐаĐģŅ ĐŋĐĩŅĐĩĐ´Đ°Ņ **СаĐŋиŅ** Đ´ĐģŅ ĐžĐąŅОйĐēи ĐžŅĐŊОвĐŊиĐŧ СаŅŅĐžŅŅĐŊĐēĐžĐŧ (*ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ*).
+* ĐŅŅиĐŧŅŅ **вŅĐ´ĐŋОвŅĐ´Ņ**, ŅŅĐžŅĐŧОваĐŊŅ ĐˇĐ°ŅŅĐžŅŅĐŊĐēĐžĐŧ (*ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ*).
+* ĐĐžĐļĐĩ СĐŧŅĐŊиŅи ŅŅ **вŅĐ´ĐŋОвŅĐ´Ņ** айО виĐēĐžĐŊаŅи дОдаŅĐēОвиК ĐēОд.
+* ĐОвĐĩŅŅĐ°Ņ **вŅĐ´ĐŋОвŅĐ´Ņ** ĐēĐģŅŅĐŊŅŅ.
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐˇĐ°ĐģĐĩĐļĐŊĐžŅŅŅ Đˇ `yield`, ĐēОд виŅ
ĐžĐ´Ņ Đ˛Đ¸ĐēĐžĐŊаŅŅŅŅŅ *ĐŋŅŅĐģŅ* middleware.
+
+Đ¯ĐēŅĐž ĐąŅĐģи СаĐŋĐģаĐŊОваĐŊŅ ŅĐžĐŊĐžĐ˛Ņ ĐˇĐ°Đ´Đ°ŅŅ (background tasks - ŅĐžĐˇĐŗĐģŅĐŊŅŅĐž даĐģŅ), вОĐŊи виĐēĐžĐŊаŅŅŅŅŅ *ĐŋŅŅĐģŅ* вŅŅŅ
middleware.
+
+///
+
+## ĐĄŅвОŅĐĩĐŊĐŊŅ middleware
+
+ЊОй ŅŅвОŅиŅи middleware, Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ Đ´ĐĩĐēĐžŅаŅĐžŅ `@app.middleware("http")` ĐŊа ŅŅĐŊĐēŅŅŅ.
+
+ФŅĐŊĐēŅŅŅ middleware ĐžŅŅиĐŧŅŅ:
+
+* `ĐаĐŋиŅ`.
+* ФŅĐŊĐēŅŅŅ `call_next`, ŅĐēа ĐŋŅиКĐŧĐ°Ņ `СаĐŋиŅ` ŅĐē ĐŋаŅаĐŧĐĩŅŅ.
+ * ĐĻŅ ŅŅĐŊĐēŅŅŅ ĐŋĐĩŅĐĩĐ´Đ°Ņ `СаĐŋиŅ` вŅĐ´ĐŋОвŅĐ´ĐŊŅĐš *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*.
+ * ĐĐžŅŅĐŧ вОĐŊа ĐŋОвĐĩŅŅĐ°Ņ `вŅĐ´ĐŋОвŅĐ´Ņ`, ĐˇĐŗĐĩĐŊĐĩŅОваĐŊŅ ŅŅŅŅ *ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ*.
+
+* Đи ĐŧĐžĐļĐĩŅĐĩ ŅĐĩ СĐŧŅĐŊиŅи `вŅĐ´ĐŋОвŅĐ´Ņ` ĐŋĐĩŅĐĩĐ´ ŅиĐŧ, ŅĐē ĐŋОвĐĩŅĐŊŅŅи ŅŅ.
+
+
+{* ../../docs_src/middleware/tutorial001.py hl[8:9,11,14] *}
+
+/// tip | ĐĐžŅада
+
+ĐĐĩ СайŅваКŅĐĩ, ŅĐž вĐģаŅĐŊŅ ĐˇĐ°ĐŗĐžĐģОвĐēи ĐŧĐžĐļĐŊа дОдаваŅи, виĐēĐžŅиŅŅОвŅŅŅи ĐŋŅĐĩŅŅĐēŅ 'X-'.
+
+ĐĐģĐĩ ŅĐēŅĐž Ņ ĐĐ°Ņ Ņ Đ˛ĐģаŅĐŊŅ ĐˇĐ°ĐŗĐžĐģОвĐēи, ŅĐēŅ Đи Ņ
ĐžŅĐĩŅĐĩ, ŅОй ĐąŅаŅСĐĩŅĐŊиК ĐēĐģŅŅĐŊŅ ĐŧŅĐŗ ĐŋОйаŅиŅи, ĐŋĐžŅŅŅĐąĐŊĐž дОдаŅи ŅŅ
Đ´Đž ĐаŅĐžŅ ĐēĐžĐŊŅŅĐŗŅŅаŅŅŅ CORS (див. [CORS (ĐĐąĐŧŅĐŊ ŅĐĩŅŅŅŅаĐŧи ĐŧŅĐļ ŅŅСĐŊиĐŧи Đ´ĐļĐĩŅĐĩĐģаĐŧи)](cors.md){.internal-link target=_blank} Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `expose_headers`, ĐžĐŋиŅаĐŊĐžĐŗĐž в Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Starlette ĐŋĐž CORS.
+
+///
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `from starlette.requests import Request`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅĐĩ Đ´ĐģŅ ĐаŅĐžŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅĐē ŅОСŅОйĐŊиĐēа. ĐĐģĐĩ вŅĐŊ ĐŋĐžŅ
ОдиŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐˇŅ Starlette.
+
+///
+
+### ĐĐž Ņ ĐŋŅŅĐģŅ `response`(`вŅĐ´ĐŋОвŅĐ´Ņ`)
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи ĐēОд, ŅĐēиК ĐąŅĐ´Đĩ виĐēĐžĐŊŅваŅиŅŅ Đˇ `СаĐŋиŅĐžĐŧ` (`request`), Đ´Đž ŅĐžĐŗĐž, ŅĐē ĐšĐžĐŗĐž ОйŅОйиŅŅ ĐąŅĐ´Ņ-ŅĐēа *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* (*path operation*).
+
+ĐĸаĐēĐžĐļ Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи ĐēОд, ŅĐēиК ĐąŅĐ´Đĩ виĐēĐžĐŊŅваŅиŅŅ ĐŋŅŅĐģŅ ŅĐžĐŗĐž, ŅĐē `вŅĐ´ĐŋОвŅĐ´Ņ` (`response`) ĐąŅĐ´Đĩ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊĐž, ĐŋĐĩŅĐĩĐ´ ŅиĐŧ ŅĐē ĐšĐžĐŗĐž ĐŋОвĐĩŅĐŊŅŅи.
+
+ĐаĐŋŅиĐēĐģад, Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи вĐģаŅĐŊиК ĐˇĐ°ĐŗĐžĐģОвОĐē `X-Process-Time`, ŅĐēиК ĐŧŅŅŅиŅиĐŧĐĩ ŅĐ°Ņ Ņ ŅĐĩĐēŅĐŊдаŅ
, ŅĐēиК виŅŅаŅивŅŅ ĐŊа ОйŅОйĐēŅ ĐˇĐ°ĐŋиŅŅ Ņа ĐŗĐĩĐŊĐĩŅаŅŅŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ:
+
+{* ../../docs_src/middleware/tutorial001.py hl[10,12:13] *}
+
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+ĐĸŅŅ Đŧи виĐēĐžŅиŅŅОвŅŅĐŧĐž `time.perf_counter()` СаĐŧŅŅŅŅ `time.time()` ĐžŅĐēŅĐģŅĐēи вŅĐŊ ĐŧĐžĐļĐĩ ĐąŅŅи ĐąŅĐģŅŅ ŅĐžŅĐŊиĐŧ Đ´ĐģŅ ŅаĐēиŅ
виĐŋадĐēŅв. đ¤
+
+///
+
+## ĐĐŊŅŅ middlewares
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋŅСĐŊŅŅĐĩ ĐŋŅĐžŅиŅаŅи ĐąŅĐģŅŅĐĩ ĐŋŅĐž ŅĐŊŅŅ middlewares в [Advanced User Guide: Advanced Middleware](../advanced/middleware.md){.internal-link target=_blank}.
+
+Đи Đ´ŅСĐŊаŅŅĐĩŅŅ, ŅĐē ОйŅОйĐģŅŅи CORS Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ middleware в ĐŊаŅŅŅĐŋĐŊĐžĐŧŅ ŅОСдŅĐģŅ.
diff --git a/docs/uk/docs/tutorial/path-params-numeric-validations.md b/docs/uk/docs/tutorial/path-params-numeric-validations.md
new file mode 100644
index 0000000000..281ee183ce
--- /dev/null
+++ b/docs/uk/docs/tutorial/path-params-numeric-validations.md
@@ -0,0 +1,165 @@
+# Path ĐаŅаĐŧĐĩŅŅи Ņа ваĐģŅдаŅŅŅ ŅиŅĐģОвиŅ
даĐŊиŅ
+
+ĐĸаĐē ŅаĐŧĐž ŅĐē Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи дОдаŅĐēĐžĐ˛Ņ ĐŋĐĩŅĐĩвŅŅĐēи Ņа ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ query ĐŋаŅаĐŧĐĩŅŅŅв Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `Query`, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи ŅОК ŅаĐŧиК ŅиĐŋ ĐŋĐĩŅĐĩвŅŅĐžĐē Ņ ĐŧĐĩŅадаĐŊиŅ
Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв ŅĐģŅŅ
Ņ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `Path`.
+
+## ĐĐŧĐŋĐžŅŅ Path
+
+ĐĄĐŋĐžŅаŅĐēŅ ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ `Path` С `fastapi` Ņ ŅĐŧĐŋĐžŅŅŅĐšŅĐĩ `Annotated`:
+
+{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+FastAPI дОдав ĐŋŅĐ´ŅŅиĐŧĐēŅ `Annotated` (Ņ ĐŋĐžŅав ŅĐĩĐēĐžĐŧĐĩĐŊĐ´ŅваŅи ĐšĐžĐŗĐž виĐēĐžŅиŅŅаĐŊĐŊŅ) Ņ Đ˛ĐĩŅŅŅŅ 0.95.0.
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ ŅŅаŅа вĐĩŅŅŅŅ, ĐŋŅи ŅĐŋŅĐžĐąŅ Đ˛Đ¸ĐēĐžŅиŅŅаŅи `Annotated` ĐŧĐžĐļŅŅŅ Đ˛Đ¸ĐŊиĐēаŅи ĐŋĐžĐŧиĐģĐēи.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи [ĐžĐŊОвиĐģи вĐĩŅŅŅŅ FastAPI](../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} ĐŋŅиĐŊаКĐŧĐŊŅ Đ´Đž вĐĩŅŅŅŅ 0.95.1 ĐŋĐĩŅĐĩĐ´ виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ `Annotated`.
+
+///
+
+## ĐĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ĐŧĐĩŅадаĐŊиŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи вŅŅ ŅŅ Đļ ĐŋаŅаĐŧĐĩŅŅи, ŅĐž Ņ Đ´ĐģŅ `Query`.
+
+ĐаĐŋŅиĐēĐģад, ŅОй ĐžĐŗĐžĐģĐžŅиŅи СĐŊаŅĐĩĐŊĐŊŅ ĐŧĐĩŅадаĐŊиŅ
`title` Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ `item_id`, Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊаĐŋиŅаŅи:
+
+{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[10] *}
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ ĐˇĐ°Đ˛Đļди Ņ ĐžĐąĐžĐ˛âŅСĐēОвиĐŧ, ĐžŅĐēŅĐģŅĐēи вŅĐŊ ĐŧĐ°Ņ ĐąŅŅи ŅаŅŅиĐŊĐžŅ ŅĐģŅŅ
Ņ. ĐавŅŅŅ ŅĐēŅĐž Đи ĐžĐŗĐžĐģĐžŅиŅĐĩ ĐšĐžĐŗĐž ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `None` айО вŅŅаĐŊОвиŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ â вŅĐŊ вŅĐĩ ОдĐŊĐž СаĐģиŅаŅиĐŧĐĩŅŅŅŅ ĐžĐąĐžĐ˛âŅСĐēОвиĐŧ.
+
+///
+
+## ĐŖĐŋĐžŅŅĐ´ĐēОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅи, ŅĐē ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+ĐĻĐĩ, ĐŧайŅŅŅ, ĐŊĐĩ ĐŊаŅŅŅĐģŅĐēи ваĐļĐģивО айО ĐŊĐĩОйŅ
ŅĐ´ĐŊĐž, ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `Annotated`.
+
+///
+
+ĐŅиĐŋŅŅŅиĐŧĐž, Đи Ņ
ĐžŅĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ `q` ŅĐē ОйОвâŅСĐēОвиК `str`.
+
+Đ ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž ĐžĐŗĐžĐģĐžŅŅваŅи ĐŊŅŅĐžĐŗĐž ŅĐŊŅĐžĐŗĐž Đ´ĐģŅ ŅŅĐžĐŗĐž ĐŋаŅаĐŧĐĩŅŅа, ŅĐžĐŧŅ ĐŊĐĩĐŧĐ°Ņ ĐŋĐžŅŅĐĩйи виĐēĐžŅиŅŅОвŅваŅи `Query`.
+
+ĐĐģĐĩ ĐаĐŧ вŅĐĩ ОдĐŊĐž ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžŅиŅŅОвŅваŅи `Path` Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ `item_id`. РС ĐŋĐĩвĐŊиŅ
ĐŋŅиŅиĐŊ Đи ĐŊĐĩ Ņ
ĐžŅĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `Annotated`.
+
+Python видаŅŅŅ ĐŋĐžĐŧиĐģĐēŅ, ŅĐēŅĐž ŅОСĐŧŅŅŅиŅи СĐŊаŅĐĩĐŊĐŊŅ Đˇ "default" ĐŋĐĩŅĐĩĐ´ СĐŊаŅĐĩĐŊĐŊŅĐŧ, ŅĐēĐĩ ĐŊĐĩ ĐŧĐ°Ņ "default".
+
+ĐĐģĐĩ Đи ĐŧĐžĐļĐĩŅĐĩ СĐŧŅĐŊиŅи ĐŋĐžŅŅĐ´ĐžĐē Ņ ŅОСĐŧŅŅŅиŅи СĐŊаŅĐĩĐŊĐŊŅ ĐąĐĩС СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ (ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ `q`) ĐŋĐĩŅŅиĐŧ.
+
+
+ĐĐģŅ **FastAPI** ĐŋĐžŅŅĐ´ĐžĐē ĐŊĐĩ ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ. ĐŅĐŊ виСĐŊаŅĐ°Ņ ĐŋаŅаĐŧĐĩŅŅи Са ŅŅ
ŅĐŧĐĩĐŊаĐŧи, ŅиĐŋаĐŧи Ņа СĐŊаŅĐĩĐŊĐŊŅĐŧи Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ (`Query`, `Path` ŅĐžŅĐž) Ņ ĐŊĐĩ СвĐĩŅŅĐ°Ņ ŅĐ˛Đ°ĐŗĐ¸ ĐŊа ĐŋĐžŅŅĐ´ĐžĐē.
+
+ĐĸĐžĐŧŅ Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐаŅŅ ŅŅĐŊĐēŅŅŅ ŅаĐē:
+
+//// tab | Python 3.8 non-Annotated
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Đа ĐŧĐžĐļĐģивОŅŅŅ Đ˛ŅддаваКŅĐĩ ĐŋĐĩŅĐĩĐ˛Đ°ĐŗŅ Đ˛ĐĩŅŅŅŅ Đˇ виĐēĐžŅиŅŅаĐŊĐŊŅĐŧ `Annotated`.
+
+///
+
+{* ../../docs_src/path_params_numeric_validations/tutorial002.py hl[7] *}
+
+////
+
+ĐĐģĐĩ ĐŧаКŅĐĩ ĐŊа ŅваСŅ, ŅĐž ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `Annotated`, ŅŅ ĐŋŅОйĐģĐĩĐŧа ĐŊĐĩ виĐŊиĐēĐŊĐĩ, ĐžŅĐēŅĐģŅĐēи Đи ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв `Query()` айО `Path()`.
+
+{* ../../docs_src/path_params_numeric_validations/tutorial002_an_py39.py *}
+
+## ĐŖĐŋĐžŅŅĐ´ĐēОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅи Са ĐŋĐžŅŅĐĩйОŅ, Ņ
иŅŅĐžŅŅ
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+ĐĻĐĩ, ĐŧайŅŅŅ, ĐŊĐĩ ĐŊаŅŅŅĐģŅĐēи ваĐļĐģивО айО ĐŊĐĩОйŅ
ŅĐ´ĐŊĐž, ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `Annotated`.
+
+///
+
+ĐŅŅ **ĐŊĐĩвĐĩĐģиĐēа Ņ
иŅŅŅŅŅŅ**, ŅĐēа ĐŧĐžĐļĐĩ ŅŅаŅи в ĐŋŅĐ¸ĐŗĐžĐ´Ņ, Ņ
ĐžŅа вОĐŊа ŅŅĐ´ĐēĐž СĐŊадОйиŅŅŅŅ.
+
+Đ¯ĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ:
+
+* ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ `q` ĐąĐĩС виĐēĐžŅиŅŅаĐŊĐŊŅ `Query` айО СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+* ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ `item_id`, виĐēĐžŅиŅŅОвŅŅŅи `Path`
+* ŅОСĐŧŅŅŅиŅи ŅŅ
Ņ ŅŅСĐŊĐžĐŧŅ ĐŋĐžŅŅĐ´ĐēŅ
+* ĐŊĐĩ виĐēĐžŅиŅŅОвŅваŅи `Annotated`
+
+...Ņ Python Ņ ŅĐŋĐĩŅŅаĐģŅĐŊиК ŅиĐŊŅаĐēŅĐ¸Ņ Đ´ĐģŅ ŅŅĐžĐŗĐž.
+
+ĐĐĩŅĐĩдаКŅĐĩ `*` ŅĐē ĐŋĐĩŅŅиК ĐŋаŅаĐŧĐĩŅŅ ŅŅĐŊĐēŅŅŅ.
+
+Python ĐŊŅŅĐžĐŗĐž ĐŊĐĩ СŅОйиŅŅ ŅС ŅŅŅŅ `*`, аĐģĐĩ ŅОСĐŋŅСĐŊаŅ, ŅĐž вŅŅ ĐŊаŅŅŅĐŋĐŊŅ ĐŋаŅаĐŧĐĩŅŅи ŅĐģŅĐ´ виĐēĐģиĐēаŅи ŅĐē аŅĐŗŅĐŧĐĩĐŊŅи Са ĐēĐģŅŅОвиĐŧ ŅĐģОвОĐŧ (ĐŋаŅи ĐēĐģŅŅ-СĐŊаŅĐĩĐŊĐŊŅ), ŅаĐēĐžĐļ вŅĐ´ĐžĐŧŅ ŅĐē kwargs. ĐавŅŅŅ ŅĐēŅĐž вОĐŊи ĐŊĐĩ ĐŧаŅŅŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+{* ../../docs_src/path_params_numeric_validations/tutorial003.py hl[7] *}
+
+### ĐŅаŅĐĩ С `Annotated`
+
+ĐаКŅĐĩ ĐŊа ŅваСŅ, ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `Annotated`, ĐžŅĐēŅĐģŅĐēи Đи ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв ŅŅĐŊĐēŅŅŅ, ŅŅŅŅ ĐŋŅОйĐģĐĩĐŧи ĐŊĐĩ виĐŊиĐēĐŊĐĩ, Ņ, ŅвидŅĐĩ Са вŅĐĩ, ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž ĐąŅĐ´Đĩ виĐēĐžŅиŅŅОвŅваŅи `*`.
+
+{* ../../docs_src/path_params_numeric_validations/tutorial003_an_py39.py hl[10] *}
+
+## ĐаĐģŅдаŅŅŅ ŅиŅĐģОвиŅ
даĐŊиŅ
: ĐąŅĐģŅŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ
+
+Đа Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `Query` Ņ `Path` (Ņа ŅĐŊŅиŅ
, ŅĐēŅ Đи ĐŋОйаŅиŅĐĩ ĐŋŅСĐŊŅŅĐĩ) ĐŧĐžĐļĐŊа ĐžĐŗĐžĐģĐžŅŅваŅи ŅиŅĐģĐžĐ˛Ņ ĐžĐąĐŧĐĩĐļĐĩĐŊĐŊŅ.
+
+ĐĸŅŅ, СавдŅĐēи `ge=1`, `item_id` ĐŧĐ°Ņ ĐąŅŅи ŅŅĐģиĐŧ ŅиŅĐģĐžĐŧ, ŅĐēĐĩ "`g`reater than or `e`qual" (ĐąŅĐģŅŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ) `1`.
+
+{* ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py hl[10] *}
+
+## ĐаĐģŅдаŅŅŅ ŅиŅĐģОвиŅ
даĐŊиŅ
: ĐąŅĐģŅŅĐĩ ĐŊŅĐļ Ņ ĐŧĐĩĐŊŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ
+
+ĐĸĐĩ ŅаĐŧĐĩ СаŅŅĐžŅОвŅŅŅŅŅŅ Đ´Đž:
+
+* `gt`: `g`reater `t`han (ĐąŅĐģŅŅĐĩ ĐŊŅĐļ)
+* `le`: `l`ess than or `e`qual (ĐŧĐĩĐŊŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ)
+
+{* ../../docs_src/path_params_numeric_validations/tutorial005_an_py39.py hl[10] *}
+
+## ĐаĐģŅдаŅŅŅ ŅиŅĐģОвиŅ
даĐŊиŅ
: float, ĐąŅĐģŅŅĐĩ ĐŊŅĐļ Ņ ĐŧĐĩĐŊŅĐĩ ĐŊŅĐļ
+
+ĐаĐģŅдаŅŅŅ ŅиŅĐĩĐģ ŅаĐēĐžĐļ ĐŋŅаŅŅŅ Đ´ĐģŅ ĐˇĐŊаŅĐĩĐŊŅ ŅиĐŋŅ `float`.
+
+ĐŅŅ Đ´Đĩ ŅŅĐ°Ņ Đ˛Đ°ĐļĐģивО ĐŧаŅи ĐŧĐžĐļĐģивŅŅŅŅ ĐžĐŗĐžĐģĐžŅŅваŅи gt, а ĐŊĐĩ ŅŅĐģŅĐēи ge. ĐĻĐĩ дОСвОĐģŅŅ, ĐŊаĐŋŅиĐēĐģад, виĐŧĐ°ĐŗĐ°Ņи, ŅОй СĐŊаŅĐĩĐŊĐŊŅ ĐąŅĐģĐž ĐąŅĐģŅŅĐĩ `0`, ĐŊавŅŅŅ ŅĐēŅĐž вОĐŊĐž ĐŧĐĩĐŊŅĐĩ `1`.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, СĐŊаŅĐĩĐŊĐŊŅ `0.5` ĐąŅĐ´Đĩ Đ´ĐžĐŋŅŅŅиĐŧиĐŧ. ĐĐģĐĩ `0.0` айО `0` â ĐŊŅ.
+
+ĐĸĐĩ ŅаĐŧĐĩ ŅŅĐžŅŅŅŅŅŅŅ lt.
+
+{* ../../docs_src/path_params_numeric_validations/tutorial006_an_py39.py hl[13] *}
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+Đа Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `Query`, `Path` (Ņ ŅĐŊŅиŅ
ĐŋаŅаĐŧĐĩŅŅŅв, ŅĐēŅ Đи ŅĐĩ ĐŊĐĩ йаŅиĐģи) ĐŧĐžĐļĐŊа ĐžĐŗĐžĐģĐžŅŅваŅи ĐŧĐĩŅадаĐŊŅ Ņа ĐŋĐĩŅĐĩвŅŅĐēи ŅŅĐ´ĐēŅв, ŅаĐē ŅаĐŧĐž ŅĐē Ņ [Query ĐŋаŅаĐŧĐĩŅŅи Ņа ваĐģŅдаŅŅŅ ŅŅĐ´ĐēŅв](query-params-str-validations.md){.internal-link target=_blank}.
+
+ĐĸаĐēĐžĐļ ĐŧĐžĐļĐŊа ĐžĐŗĐžĐģĐžŅŅваŅи ŅиŅĐģĐžĐ˛Ņ ĐŋĐĩŅĐĩвŅŅĐēи:
+
+* `gt`: `g`reater `t`han (ĐąŅĐģŅŅĐĩ ĐŊŅĐļ)
+* `ge`: `g`reater than or `e`qual (ĐąŅĐģŅŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ)
+* `lt`: `l`ess `t`han (ĐŧĐĩĐŊŅĐĩ ĐŊŅĐļ)
+* `le`: `l`ess than or `e`qual (ĐŧĐĩĐŊŅĐĩ айО Đ´ĐžŅŅвĐŊŅŅ)
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+`Query`, `Path` Ņа ŅĐŊŅŅ ĐēĐģаŅи, ŅĐēŅ Đи ĐŋОйаŅиŅĐĩ ĐŋŅСĐŊŅŅĐĩ, Ņ ĐŋŅĐ´ĐēĐģаŅаĐŧи ŅĐŋŅĐģŅĐŊĐžĐŗĐž ĐēĐģаŅŅ `Param`.
+
+ĐŅŅ Đ˛ĐžĐŊи ĐŧаŅŅŅ ĐžĐ´ĐŊаĐēĐžĐ˛Ņ ĐŋаŅаĐŧĐĩŅŅи Đ´ĐģŅ Đ´ĐžĐ´Đ°ŅĐēОвиŅ
ĐŋĐĩŅĐĩвŅŅĐžĐē Ņ ĐŧĐĩŅадаĐŊиŅ
, ŅĐēŅ Đи вĐļĐĩ йаŅиĐģи.
+
+///
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+ĐĐžĐģи Đи ŅĐŧĐŋĐžŅŅŅŅŅĐĩ `Query`, `Path` Ņа ŅĐŊŅŅ Đˇ `fastapi`, ĐŊаŅĐŋŅĐ°Đ˛Đ´Ņ ŅĐĩ ŅŅĐŊĐēŅŅŅ.
+
+ĐŅи виĐēĐģиĐēŅ Đ˛ĐžĐŊи ĐŋОвĐĩŅŅаŅŅŅ ĐĩĐēСĐĩĐŧĐŋĐģŅŅи ĐēĐģаŅŅв С ŅаĐēиĐŧи Đļ ŅĐŧĐĩĐŊаĐŧи.
+
+ĐĸОйŅĐž Đи ŅĐŧĐŋĐžŅŅŅŅŅĐĩ `Query`, ŅĐēа Ņ ŅŅĐŊĐēŅŅŅŅ. Đ ĐēĐžĐģи Đи ŅŅ Đ˛Đ¸ĐēĐģиĐēаŅŅĐĩ, вОĐŊа ĐŋОвĐĩŅŅĐ°Ņ ĐĩĐēСĐĩĐŧĐŋĐģŅŅ ĐēĐģаŅŅ, ŅĐēиК ŅĐĩĐļ ĐŊаСиваŅŅŅŅŅ `Query`.
+
+ĐĻŅ ŅŅĐŊĐēŅŅŅ ŅŅвОŅĐĩĐŊŅ ŅаĐēиĐŧ ŅиĐŊĐžĐŧ (СаĐŧŅŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅаĐŊĐŊŅ ĐēĐģаŅŅв ĐŊаĐŋŅŅĐŧŅ), ŅОй ĐĐ°Ņ ŅĐĩдаĐēŅĐžŅ ĐŊĐĩ вŅдСĐŊаŅав ŅŅ
ĐŊŅ ŅиĐŋи ŅĐē ĐŋĐžĐŧиĐģĐēи.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, Đи ĐŧĐžĐļĐĩŅĐĩ ĐēĐžŅиŅŅŅваŅиŅŅ ŅвОŅĐŧ СвиŅаКĐŊиĐŧ ŅĐĩдаĐēŅĐžŅĐžĐŧ Ņ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅаĐŧи Đ´ĐģŅ ĐŋŅĐžĐŗŅаĐŧŅваĐŊĐŊŅ ĐąĐĩС дОдаŅĐēОвиŅ
ĐŊаĐģаŅŅŅваĐŊŅ Đ´ĐģŅ ŅĐŗĐŊĐžŅŅваĐŊĐŊŅ ŅаĐēиŅ
ĐŋĐžĐŧиĐģĐžĐē.
+
+///
diff --git a/docs/uk/docs/tutorial/path-params.md b/docs/uk/docs/tutorial/path-params.md
new file mode 100644
index 0000000000..e7df1f19a5
--- /dev/null
+++ b/docs/uk/docs/tutorial/path-params.md
@@ -0,0 +1,261 @@
+# Path ĐаŅаĐŧĐĩŅŅи
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи "ĐŋаŅаĐŧĐĩŅŅи" айО "СĐŧŅĐŊĐŊŅ" ŅĐģŅŅ
Ņ, виĐēĐžŅиŅŅОвŅŅŅи ŅиĐŊŅаĐēŅĐ¸Ņ ŅĐžŅĐŧаŅОваĐŊиŅ
ŅŅĐ´ĐēŅв:
+
+{* ../../docs_src/path_params/tutorial001.py hl[6:7] *}
+
+ĐĐŊаŅĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ `item_id` ĐŋĐĩŅĐĩдаŅŅŅŅŅ Ņ ŅŅĐŊĐēŅŅŅ ŅĐē аŅĐŗŅĐŧĐĩĐŊŅ `item_id`.
+
+Đ¯ĐēŅĐž СаĐŋŅŅŅиŅи ŅĐĩĐš ĐŋŅиĐēĐģад Ņа ĐŋĐĩŅĐĩĐšŅи Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ http://127.0.0.1:8000/items/foo, ŅĐž ĐžŅŅиĐŧаŅĐŧĐž ŅаĐēŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ:
+
+```JSON
+{"item_id":"foo"}
+```
+
+## Path ĐŋаŅаĐŧĐĩŅŅи С ŅиĐŋаĐŧи
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи ŅиĐŋ ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ Ņ ŅŅĐŊĐēŅŅŅ, виĐēĐžŅиŅŅОвŅŅŅи ŅŅаĐŊдаŅŅĐŊŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅв Python:
+
+{* ../../docs_src/path_params/tutorial002.py hl[7] *}
+
+ĐŖ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ `item_id` виСĐŊаŅаŅŅŅŅŅ ŅĐē `int`.
+
+/// check | ĐŅиĐŧŅŅĐēа
+
+ĐĻĐĩ даŅŅŅ ĐŧĐžĐļĐģивŅŅŅŅ ĐŋŅĐ´ŅŅиĐŧĐēи ŅĐĩдаĐēŅĐžŅа вŅĐĩŅĐĩдиĐŊŅ ŅŅĐŊĐēŅŅŅ Đˇ ĐŋĐĩŅĐĩвŅŅĐēаĐŧи ĐŋĐžĐŧиĐģĐžĐē, авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ ŅĐžŅĐž.
+
+///
+
+## ĐĐĩŅĐĩŅвОŅĐĩĐŊĐŊŅ Đ´Đ°ĐŊиŅ
+
+Đ¯ĐēŅĐž СаĐŋŅŅŅиŅи ŅĐĩĐš ĐŋŅиĐēĐģад Ņ ĐŋĐĩŅĐĩĐšŅи Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ http://127.0.0.1:8000/items/3, ŅĐž ĐžŅŅиĐŧаŅŅĐĩ ŅаĐēŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ:
+
+```JSON
+{"item_id":3}
+```
+
+/// check | ĐŅиĐŧŅŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž СĐŊаŅĐĩĐŊĐŊŅ, ŅĐēĐĩ ĐžŅŅиĐŧаĐģа (Ņ ĐŋОвĐĩŅĐŊŅĐģа) ваŅа ŅŅĐŊĐēŅŅŅ, â ŅĐĩ `3`. ĐĻĐĩ Python `int`, а ĐŊĐĩ ŅŅĐ´ĐžĐē `"3"`.
+
+ĐŅĐļĐĩ, С ŅаĐēиĐŧ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅĐŧ ŅиĐŋŅ **FastAPI** авŅĐžĐŧаŅиŅĐŊĐž виĐēĐžĐŊŅŅ "ĐŋаŅŅиĐŊĐŗ" СаĐŋиŅŅв.
+
+///
+
+## ĐĐĩŅĐĩвŅŅĐēа даĐŊиŅ
+
+Đ¯ĐēŅĐž Đļ вŅĐ´ĐēŅиŅи Ņ ĐąŅаŅСĐĩŅŅ ĐŋĐžŅиĐģаĐŊĐŊŅ http://127.0.0.1:8000/items/foo, ŅĐž ĐŋОйаŅиĐŧĐž ŅŅĐēĐ°Đ˛Ņ HTTP-ĐŋĐžĐŧиĐģĐēŅ:
+
+```JSON
+{
+ "detail": [
+ {
+ "type": "int_parsing",
+ "loc": [
+ "path",
+ "item_id"
+ ],
+ "msg": "Input should be a valid integer, unable to parse string as an integer",
+ "input": "foo",
+ "url": "https://errors.pydantic.dev/2.1/v/int_parsing"
+ }
+ ]
+}
+```
+ŅĐžĐŧŅ ŅĐž ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ `"foo"`, ŅĐēĐĩ ĐŊĐĩ Ņ ŅиĐŋĐžĐŧ `int`.
+
+ĐĸаĐēŅ ŅаĐŧŅ ĐŋĐžĐŧиĐģĐēŅ ĐžŅŅиĐŧаŅĐŧĐž, ŅĐēŅĐž ĐŋĐĩŅĐĩдаŅи `float` СаĐŧŅŅŅŅ `int`, ŅĐē йаŅиĐŧĐž, Ņ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ: http://127.0.0.1:8000/items/4.2
+
+/// check | ĐŅиĐŧŅŅĐēа
+
+ĐŅĐļĐĩ, **FastAPI** ĐŊĐ°Đ´Đ°Ņ ĐŋĐĩŅĐĩвŅŅĐēŅ ŅиĐŋŅв С ŅаĐēиĐŧ ŅаĐŧиĐŧ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅĐŧ ŅиĐŋŅ Đ˛ Python.
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ĐŋĐžĐŧиĐģĐēа ŅаĐēĐžĐļ ŅŅŅĐēĐž вĐēаСŅŅ ŅаĐŧĐĩ ĐŊа ŅĐĩ ĐŧŅŅŅĐĩ, Đ´Đĩ ваĐģŅдаŅŅŅ ĐŊĐĩ ĐŋŅОКŅĐģа.
+
+ĐĻĐĩ ĐŊĐĩĐšĐŧОвŅŅĐŊĐž ĐēĐžŅиŅĐŊĐž ĐŋŅĐ´ ŅĐ°Ņ ŅОСŅОйĐēи Ņа Đ´ĐĩĐąĐ°ĐŗŅĐŊĐŗŅ ĐēОдŅ, ŅĐž вСаŅĐŧОдŅŅ Đˇ ваŅиĐŧ API.
+
+///
+
+## ĐĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+ĐĸĐĩĐŋĐĩŅ ĐēĐžĐģи вŅĐ´ĐēŅиŅŅĐĩ ŅвŅĐš ĐąŅаŅСĐĩŅ ĐˇĐ° ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ http://127.0.0.1:8000/docs, ŅĐž ĐŋОйаŅиŅĐĩ авŅĐžĐŧаŅиŅĐŊĐž ĐˇĐŗĐĩĐŊĐĩŅОваĐŊŅ, ŅĐŊŅĐĩŅаĐēŅивĐŊŅ API-Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ:
+
+
+
+/// check | ĐŅиĐŧŅŅĐēа
+
+ĐĐŊĐžĐ˛Ņ Đļ ŅаĐēи, ĐģиŅĐĩ С ŅиĐŧ ŅаĐŧиĐŧ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅĐŧ ŅиĐŋŅ Đ˛ Python, FastAPI ĐŊĐ°Đ´Đ°Ņ Đ˛Đ°Đŧ авŅĐžĐŧаŅиŅĐŊŅ, ŅĐŊŅĐĩŅаĐēŅивĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ (С ŅĐŊŅĐĩĐŗŅаŅŅŅŅ Swagger UI).
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ ĐžĐŗĐžĐģĐžŅĐĩĐŊиК ŅĐē ŅŅĐģĐĩ ŅиŅĐģĐž.
+
+
+///
+
+## ĐĐĩŅĐĩĐ˛Đ°ĐŗĐ¸ ŅŅаĐŊдаŅŅиСаŅŅŅ, аĐģŅŅĐĩŅĐŊаŅивĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đ ĐžŅĐēŅĐģŅĐēи ĐˇĐŗĐĩĐŊĐĩŅОваĐŊа ŅŅ
ĐĩĐŧа вŅĐ´ĐŋОвŅĐ´Đ°Ņ ŅŅаĐŊдаŅŅŅ OpenAPI, ŅŅĐŊŅŅ ĐąĐ°ĐŗĐ°ŅĐž ŅŅĐŧŅŅĐŊиŅ
ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв.
+
+Đ ŅŅŅŅ ĐŋŅиŅиĐŊи FastAPI ŅаĐēĐžĐļ ĐŊĐ°Đ´Đ°Ņ Đ°ĐģŅŅĐĩŅĐŊаŅивĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ API (виĐēĐžŅиŅŅОвŅŅŅи ReDoc), Đ´Đž ŅĐēĐžŅ ĐŧĐžĐļĐŊа ĐžŅŅиĐŧаŅи Đ´ĐžŅŅŅĐŋ Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ http://127.0.0.1:8000/redoc:
+
+
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, ŅŅĐŊŅŅ ĐąĐ°ĐŗĐ°ŅĐž ŅŅĐŧŅŅĐŊиŅ
ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв, вĐēĐģŅŅаŅŅи ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи Đ´ĐģŅ ĐŗĐĩĐŊĐĩŅаŅŅŅ ĐēĐžĐ´Ņ Đ´ĐģŅ ĐąĐ°ĐŗĐ°ŅŅĐžŅ
ĐŧОв.
+
+
+## Pydantic
+
+ĐŅŅ Đ˛Đ°ĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
виĐēĐžĐŊŅŅŅŅŅŅ ĐˇĐ° ĐģаŅŅŅĐŊĐēаĐŧи Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ Pydantic, ŅĐžĐŧŅ Đи ĐžŅŅиĐŧŅŅŅĐĩ вŅŅ ĐŋĐĩŅĐĩĐ˛Đ°ĐŗĐ¸ вŅĐ´ ĐšĐžĐŗĐž виĐēĐžŅиŅŅаĐŊĐŊŅ. Đ ĐŧĐžĐļĐĩŅĐĩ ĐąŅŅи вĐŋĐĩвĐŊĐĩĐŊŅ, ŅĐž вŅĐĩ в ĐŊадŅĐšĐŊиŅ
ŅŅĐēаŅ
.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅŅ ŅаĐŧŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅиĐŋŅв С `str`, `float`, `bool` Ņа ĐąĐ°ĐŗĐ°ŅŅĐŧа ŅĐŊŅиĐŧи ŅĐēĐģадĐŊиĐŧи ŅиĐŋаĐŧи даĐŊиŅ
.
+
+ĐĐĩĐēŅĐģŅĐēа С ĐŊиŅ
ĐąŅĐ´ŅŅŅ ŅĐžĐˇĐŗĐģŅĐŊŅŅŅ Đ˛ ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģаŅ
ĐŋĐžŅŅĐąĐŊиĐēа.
+
+## ĐĐžŅŅĐ´ĐžĐē ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ
+
+ĐŅи ŅŅвОŅĐĩĐŊĐŊŅ *ĐžĐŋĐĩŅаŅŅĐš ŅĐģŅŅ
Ņ* ĐŧĐžĐļŅŅŅ Đ˛Đ¸ĐŊиĐēаŅи ŅиŅŅаŅŅŅ, ĐēĐžĐģи ŅĐģŅŅ
ŅŅĐēŅОваĐŊиК.
+
+ĐаĐŋŅиĐēĐģад, `/users/me`. ĐŅиĐŋŅŅŅиĐŧĐž, ŅĐž ŅĐĩ ŅĐģŅŅ
Đ´ĐģŅ ĐžŅŅиĐŧаĐŊĐŊŅ Đ´Đ°ĐŊиŅ
ĐŋŅĐž ĐŋĐžŅĐžŅĐŊĐžĐŗĐž ĐēĐžŅиŅŅŅваŅа.
+
+Đ ŅаĐēĐžĐļ Ņ Đ˛Đ°Ņ ĐŧĐžĐļĐĩ ĐąŅŅи ŅĐģŅŅ
`/users/{user_id}`, ŅОй ĐžŅŅиĐŧаŅи даĐŊŅ ĐŋŅĐž ĐēĐžĐŊĐēŅĐĩŅĐŊĐžĐŗĐž ĐēĐžŅиŅŅŅваŅа Са ĐšĐžĐŗĐž ID.
+
+ĐŅĐēŅĐģŅĐēи *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* ĐžŅŅĐŊŅŅŅŅŅŅ ĐŋĐž ŅĐĩŅСŅ, Đи ĐŋОвиĐŊĐŊŅ ĐŋĐĩŅĐĩĐēĐžĐŊаŅиŅŅ, ŅĐž ŅĐģŅŅ
Đ´ĐģŅ `/users/me` ĐžĐŗĐžĐģĐžŅĐĩĐŊиК ĐŋĐĩŅĐĩĐ´ ŅĐģŅŅ
ĐžĐŧ Đ´ĐģŅ `/users/{user_id}`:
+
+{* ../../docs_src/path_params/tutorial003.py hl[6,11] *}
+
+ĐĐŊаĐēŅĐĩ ŅĐģŅŅ
Đ´ĐģŅ `/users/{user_id}` ŅаĐēĐžĐļ ĐąŅĐ´Đĩ вŅĐ´ĐŋОвŅдаŅи Đ´ĐģŅ `/users/me`, "вваĐļаŅŅи", ŅĐž вŅĐŊ ĐžŅŅиĐŧŅŅ ĐŋаŅаĐŧĐĩŅŅ `user_id` ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `"me"`.
+
+ĐĐŊаĐģĐžĐŗŅŅĐŊĐž, Đи ĐŊĐĩ ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ:
+
+{* ../../docs_src/path_params/tutorial003b.py hl[6,11] *}
+
+ĐĐĩŅŅа ĐžĐŋĐĩŅаŅŅŅ ĐąŅĐ´Đĩ СавĐļди виĐēĐžŅиŅŅОвŅваŅиŅŅ, ĐžŅĐēŅĐģŅĐēи ŅĐģŅŅ
СйŅĐŗĐ°ŅŅŅŅŅ ĐŋĐĩŅŅиĐŧ.
+## ĐĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐž виСĐŊаŅĐĩĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ
+
+Đ¯ĐēŅĐž Ņ Đ˛Đ°Ņ Ņ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, ŅĐēа ĐŋŅиКĐŧĐ°Ņ *ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ*, аĐģĐĩ Đи Ņ
ĐžŅĐĩŅĐĩ, ŅОй ĐŧĐžĐļĐģĐ¸Đ˛Ņ Đ´ĐžĐŋŅŅŅиĐŧŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ *ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ* ĐąŅĐģи ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐž виСĐŊаŅĐĩĐŊŅ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи ŅŅаĐŊдаŅŅĐŊиК Python Enum.
+
+### ĐĄŅвОŅĐĩĐŊĐŊŅ ĐēĐģаŅŅ `Enum`
+
+ĐĐŧĐŋĐžŅŅŅĐšŅĐĩ `Enum` Ņ ŅŅвОŅŅŅŅ ĐŋŅĐ´ĐēĐģаŅ, ŅĐž ĐŊаŅĐģŅĐ´ŅŅŅŅŅŅ Đ˛ŅĐ´ `str` Ņа `Enum`.
+
+ĐаŅĐģŅĐ´ŅŅŅи вŅĐ´ `str`, Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ API СĐŧĐžĐļĐĩ виСĐŊаŅиŅи, ŅĐž СĐŊаŅĐĩĐŊĐŊŅ ĐŋОвиĐŊĐŊŅ ĐąŅŅи ŅиĐŋŅ `string`, Ņ ĐŋŅавиĐģŅĐŊĐž ŅŅ
вŅдОйŅаСиŅŅ.
+
+ĐŅŅĐģŅ ŅŅĐžĐŗĐž ŅŅвОŅŅŅŅ Đ°ŅŅийŅŅи ĐēĐģаŅŅ Đˇ ŅŅĐēŅОваĐŊиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи, ŅĐēŅ ĐąŅĐ´ŅŅŅ Đ´ĐžŅŅŅĐŋĐŊиĐŧи Đ´ĐžĐŋŅŅŅиĐŧиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи:
+
+{* ../../docs_src/path_params/tutorial005.py hl[1,6:9] *}
+
+/// info | ĐОдаŅĐēОва ŅĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐĐĩŅĐĩĐģŅŅĐĩĐŊĐŊŅ (айО enums) Đ´ĐžŅŅŅĐŋĐŊŅ Đ˛ Python ĐŋĐžŅиĐŊаŅŅи С вĐĩŅŅŅŅ 3.4.
+
+///
+
+/// tip | ĐĐžŅада
+
+Đ¯ĐēŅĐž ваĐŧ ŅŅĐēавО, "AlexNet", "ResNet" Ņа "LeNet" â ŅĐĩ ĐŋŅĐžŅŅĐž ĐŊаСви ML ĐŧОдĐĩĐģĐĩĐš Machine Learning.
+
+///
+
+
+### ĐĐŗĐžĐģĐžŅŅŅŅ *ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ*
+
+ĐĐžŅŅĐŧ ŅŅвОŅŅŅŅ *ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ* С аĐŊĐžŅаŅŅŅŅ ŅиĐŋŅ, виĐēĐžŅиŅŅОвŅŅŅи ŅŅвОŅĐĩĐŊиК ваĐŧи ĐēĐģĐ°Ņ enum (`ModelName`):
+
+{* ../../docs_src/path_params/tutorial005.py hl[16] *}
+
+### ĐĐĩŅĐĩвŅŅĐēа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+ĐŅĐēŅĐģŅĐēи Đ´ĐžŅŅŅĐŋĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ Đ´ĐģŅ *ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ* виСĐŊаŅĐĩĐŊŅ ĐˇĐ°ĐˇĐ´Đ°ĐģĐĩĐŗŅĐ´Ņ, ŅĐŊŅĐĩŅаĐēŅивĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐŧĐžĐļĐĩ ĐēŅаŅивО ŅŅ
вŅдОйŅаСиŅи:
+
+
+
+### РОйОŅа С *ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅĐŧи* Ņ Python
+
+ĐĐŊаŅĐĩĐŊĐŊŅ *ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ* ĐąŅĐ´Đĩ ĐĩĐģĐĩĐŧĐĩĐŊŅĐžĐŧ *ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ*.
+
+#### ĐĐžŅŅвĐŊŅĐŊĐŊŅ *ĐĩĐģĐĩĐŧĐĩĐŊŅŅв ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ*
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐžŅŅвĐŊŅваŅи ĐšĐžĐŗĐž С *ĐĩĐģĐĩĐŧĐĩĐŊŅаĐŧи ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ* Ņ ŅŅвОŅĐĩĐŊĐžĐŧŅ Đ˛Đ°Đŧи enum `ModelName`:
+
+{* ../../docs_src/path_params/tutorial005.py hl[17] *}
+
+#### ĐŅŅиĐŧаĐŊĐŊŅ *СĐŊаŅĐĩĐŊĐŊŅ ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ*
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžŅŅиĐŧаŅи ŅаĐēŅиŅĐŊĐĩ СĐŊаŅĐĩĐŊĐŊŅ (Ņ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ŅĐĩ `str`), виĐēĐžŅиŅŅОвŅŅŅи `model_name.value`, айО ĐˇĐ°ĐŗĐ°ĐģĐžĐŧ `your_enum_member.value`:
+
+{* ../../docs_src/path_params/tutorial005.py hl[20] *}
+
+/// tip | ĐĐžŅада
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐžŅŅиĐŧаŅи Đ´ĐžŅŅŅĐŋ Đ´Đž СĐŊаŅĐĩĐŊĐŊŅ `"lenet"`, виĐēĐžŅиŅŅОвŅŅŅи `ModelName.lenet.value`.
+
+///
+
+
+#### ĐОвĐĩŅĐŊĐĩĐŊĐŊŅ *ĐĩĐģĐĩĐŧĐĩĐŊŅŅв ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ*
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋОвĐĩŅŅаŅи *ĐĩĐģĐĩĐŧĐĩĐŊŅи ĐŋĐĩŅĐĩĐģŅŅŅваĐŊĐŊŅ* С ваŅĐžŅ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, ĐŊавŅŅŅ Đ˛ĐēĐģадĐĩĐŊŅ Ņ JSON-ŅŅĐģĐž (ĐŊаĐŋŅиĐēĐģад, `dict`).
+
+ĐĐžĐŊи ĐąŅĐ´ŅŅŅ ĐŋĐĩŅĐĩŅвОŅĐĩĐŊŅ ĐŊа вŅĐ´ĐŋОвŅĐ´ĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ (Ņ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ŅŅĐ´Đēи) ĐŋĐĩŅĐĩĐ´ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅĐŧ ĐēĐģŅŅĐŊŅŅ:
+
+{* ../../docs_src/path_params/tutorial005.py hl[18,21,23] *}
+
+Đа ŅŅĐžŅĐžĐŊŅ ĐēĐģŅŅĐŊŅа Đи ĐžŅŅиĐŧаŅŅĐĩ вŅĐ´ĐŋОвŅĐ´Ņ Ņ ŅĐžŅĐŧаŅŅ JSON, ĐŊаĐŋŅиĐēĐģад:
+
+```JSON
+{
+ "model_name": "alexnet",
+ "message": "Deep Learning FTW!"
+}
+```
+
+## Path-ĐŋаŅаĐŧĐĩŅŅи, ŅĐž ĐŧŅŅŅŅŅŅ ŅĐģŅŅ
и
+
+ĐŅиĐŋŅŅŅиĐŧĐž, Ņ Đ˛Đ°Ņ Ņ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* С ĐŧаŅŅŅŅŅĐžĐŧ `/files/{file_path}`.
+
+ĐĐģĐĩ ваĐŧ ĐŋĐžŅŅŅĐąĐŊĐž, ŅОй `file_path` ĐŧŅŅŅив *ŅĐģŅŅ
*, ĐŊаĐŋŅиĐēĐģад `home/johndoe/myfile.txt`.
+
+ĐŅĐļĐĩ, URL Đ´ĐģŅ ŅŅĐžĐŗĐž ŅаКĐģŅ Đ˛Đ¸ĐŗĐģŅдаŅиĐŧĐĩ ŅаĐē: `/files/home/johndoe/myfile.txt`.
+
+
+
+### ĐŅĐ´ŅŅиĐŧĐēа OpenAPI
+
+OpenAPI ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅ ŅĐŋĐžŅŅĐą ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ *ĐŋаŅаĐŧĐĩŅŅа ŅĐģŅŅ
Ņ*, ŅĐž ĐŧŅŅŅиŅŅ *ŅĐģŅŅ
* вŅĐĩŅĐĩдиĐŊŅ, ĐžŅĐēŅĐģŅĐēи ŅĐĩ ĐŧĐžĐļĐĩ ĐŋŅиСвĐĩŅŅи Đ´Đž ŅŅĐĩĐŊаŅŅŅв, ŅĐēŅ ŅĐēĐģадĐŊĐž ŅĐĩŅŅŅваŅи Ņа виСĐŊаŅаŅи.
+
+ĐĐ´ĐŊаĐē (ОдĐŊаŅĐĩ), Đи вŅĐĩ ОдĐŊĐž ĐŧĐžĐļĐĩŅĐĩ СŅОйиŅи ŅĐĩ в **FastAPI**, виĐēĐžŅиŅŅОвŅŅŅи ОдиĐŊ ŅС вĐŊŅŅŅŅŅĐŊŅŅ
ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв Starlette.
+
+ĐĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Đ˛ŅĐĩ ŅĐĩ ĐŋŅаŅŅваŅиĐŧĐĩ, Ņ
ĐžŅа Đš ĐŊĐĩ дОдаваŅиĐŧĐĩ ĐžĐŋиŅŅ ĐŋŅĐž ŅĐĩ, ŅĐž ĐŋаŅаĐŧĐĩŅŅ ĐŋОвиĐŊĐĩĐŊ ĐŧŅŅŅиŅи ŅĐģŅŅ
.
+
+### ĐĐžĐŊвĐĩŅŅĐĩŅ ŅĐģŅŅ
Ņ
+
+ĐиĐēĐžŅиŅŅОвŅŅŅи ĐžĐŋŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐˇŅ Starlette, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи *ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ*, ŅĐž ĐŧŅŅŅиŅŅ *ŅĐģŅŅ
*, виĐēĐžŅиŅŅОвŅŅŅи URL ĐŊа ĐēŅŅаĐģŅ:
+
+```
+/files/{file_path:path}
+```
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ŅĐŧ'Ņ ĐŋаŅаĐŧĐĩŅŅа â `file_path`, а ĐžŅŅаĐŊĐŊŅ ŅаŅŅиĐŊа `:path` вĐēаСŅŅ ĐŊа ŅĐĩ, ŅĐž ĐŋаŅаĐŧĐĩŅŅ ĐŋОвиĐŊĐĩĐŊ вŅĐ´ĐŋОвŅдаŅи ĐąŅĐ´Ņ-ŅĐēĐžĐŧŅ *ŅĐģŅŅ
Ņ*.
+
+ĐŅĐļĐĩ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи ĐšĐžĐŗĐž ŅаĐē:
+
+{* ../../docs_src/path_params/tutorial004.py hl[6] *}
+
+/// tip | ĐĐžŅада
+
+ĐаĐŧ ĐŧĐžĐļĐĩ СĐŊадОйиŅиŅŅ, ŅОй ĐŋаŅаĐŧĐĩŅŅ ĐŧŅŅŅив `/home/johndoe/myfile.txt` ŅС ĐŋĐžŅаŅĐēĐžĐ˛ĐžŅ ĐēĐžŅĐžŅ ŅиŅĐēĐžŅ (`/`).
+
+ĐŖ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ URL Đ˛Đ¸ĐŗĐģŅдаŅиĐŧĐĩ ŅаĐē: `/files//home/johndoe/myfile.txt`, ŅС ĐŋОдвŅĐšĐŊĐžŅ ĐēĐžŅĐžŅ ŅиŅĐēĐžŅ (`//`) ĐŧŅĐļ `files` Ņ `home`.
+
+///
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+Đ **FastAPI**, виĐēĐžŅиŅŅОвŅŅŅи ĐēĐžŅĐžŅĐēŅ, ŅĐŊŅŅŅŅивĐŊĐž СŅОСŅĐŧŅĐģŅ Ņа ŅŅаĐŊдаŅŅĐŊŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ ŅиĐŋŅв Python, Đи ĐžŅŅиĐŧŅŅŅĐĩ:
+
+* ĐŅĐ´ŅŅиĐŧĐēŅ Đ˛ ŅĐĩдаĐēŅĐžŅŅ: ĐŋĐĩŅĐĩвŅŅĐēа ĐŋĐžĐŧиĐģĐžĐē, авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ ŅĐžŅĐž.
+* "ĐаŅŅиĐŊĐŗ" даĐŊиŅ
+* ĐаĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
+* ĐĐŊĐžŅаŅŅŅ API Ņа авŅĐžĐŧаŅиŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+РваĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐžĐŗĐžĐģĐžŅиŅи ŅŅ
ĐģиŅĐĩ ОдиĐŊ ŅаС.
+
+ĐĻĐĩ, ĐšĐŧОвŅŅĐŊĐž, ĐžŅĐŊОвĐŊа видиĐŧа ĐŋĐĩŅĐĩĐ˛Đ°ĐŗĐ° **FastAPI** ĐŋĐžŅŅвĐŊŅĐŊĐž С аĐģŅŅĐĩŅĐŊаŅивĐŊиĐŧи ŅŅĐĩĐšĐŧвОŅĐēаĐŧи (ĐžĐēŅŅĐŧ виŅĐžĐēĐžŅ ĐŋŅОдŅĐēŅивĐŊĐžŅŅŅ).
diff --git a/docs/uk/docs/tutorial/query-param-models.md b/docs/uk/docs/tutorial/query-param-models.md
new file mode 100644
index 0000000000..97eb82fa1b
--- /dev/null
+++ b/docs/uk/docs/tutorial/query-param-models.md
@@ -0,0 +1,68 @@
+# ĐОдĐĩĐģŅ Query ĐŋаŅаĐŧĐĩŅŅŅв
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐŗŅŅĐŋа **query ĐŋаŅаĐŧĐĩŅŅŅв**, ŅĐēŅ ĐŋОвâŅСаĐŊŅ ĐŧŅĐļ ŅОйОŅ, Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи **Pydantic-ĐŧОдĐĩĐģŅ** Đ´ĐģŅ ŅŅ
ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ.
+
+ĐĻĐĩ дОСвОĐģиŅŅ ĐаĐŧ **ĐŋОвŅĐžŅĐŊĐž виĐēĐžŅиŅŅОвŅваŅи ĐŧОдĐĩĐģŅ** Ņ **ŅŅСĐŊиŅ
ĐŧŅŅŅŅŅ
**, а ŅаĐēĐžĐļ ĐžĐŗĐžĐģĐžŅŅваŅи ĐŋĐĩŅĐĩвŅŅĐēи Ņа ĐŧĐĩŅадаĐŊŅ Đ´ĐģŅ Đ˛ŅŅŅ
ĐŋаŅаĐŧĐĩŅŅŅв ОдĐŊĐžŅаŅĐŊĐž. đ
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐĻŅ ĐŧĐžĐļĐģивŅŅŅŅ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ, ĐŋĐžŅиĐŊаŅŅи С вĐĩŅŅŅŅ FastAPI `0.115.0`. đ¤
+
+///
+
+## Query ĐŋаŅаĐŧĐĩŅŅи С Pydantic-ĐŧОдĐĩĐģĐģŅ
+
+ĐĐŗĐžĐģĐžŅŅŅŅ **query ĐŋаŅаĐŧĐĩŅŅи**, ŅĐēŅ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊŅ, Ņ **Pydantic-ĐŧОдĐĩĐģŅ**, а ĐŋĐžŅŅĐŧ ĐžĐŗĐžĐģĐžŅŅŅŅ ŅĐĩĐš ĐŋаŅаĐŧĐĩŅŅ ŅĐē `Query`:
+
+{* ../../docs_src/query_param_models/tutorial001_an_py310.py hl[9:13,17] *}
+
+**FastAPI** ĐąŅĐ´Đĩ **виŅŅĐŗŅваŅи** даĐŊŅ Đ´ĐģŅ **ĐēĐžĐļĐŊĐžĐŗĐž ĐŋĐžĐģŅ** С **query ĐŋаŅаĐŧĐĩŅŅŅв** Ņ ĐˇĐ°ĐŋиŅŅ Ņа ĐŋĐĩŅĐĩдаваŅи ŅŅ
Ņ Đ˛Đ¸ĐˇĐŊаŅĐĩĐŊŅ Đ˛Đ°Đŧи Pydantic-ĐŧОдĐĩĐģŅ.
+
+## ĐĐĩŅĐĩвŅŅŅĐĩ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋОйаŅиŅи ĐŋаŅаĐŧĐĩŅŅи СаĐŋиŅŅ Đ˛ UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐ° `/docs`:
+
+
+
+
+### ĐĄĐŋиŅĐžĐē ĐŋаŅаĐŧĐĩŅŅŅв СаĐŋиŅŅ / ĐēŅĐģŅĐēа СĐŊаŅĐĩĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ Đ´ĐģŅ `list`, ŅĐēŅĐž ĐļОдĐŊĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐŊĐĩ ĐąŅĐģĐž ĐŋĐĩŅĐĩдаĐŊĐĩ:
+
+{* ../../docs_src/query_params_str_validations/tutorial012_an_py39.py hl[9] *}
+
+Đ¯ĐēŅĐž Đи ĐŋĐĩŅĐĩКдĐĩŅĐĩ Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ:
+
+```
+http://localhost:8000/items/
+```
+
+ŅĐž СĐŊаŅĐĩĐŊĐŊŅ `q` Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐąŅĐ´Đĩ: `["foo", "bar"]`, Ņ ĐаŅа вŅĐ´ĐŋОвŅĐ´Ņ Đ˛Đ¸ĐŗĐģŅдаŅиĐŧĐĩ ŅаĐē:
+
+```JSON
+{
+ "q": [
+ "foo",
+ "bar"
+ ]
+}
+```
+
+#### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ŅŅĐģŅĐēи `list`
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `list` ĐąĐĩС ŅŅĐžŅĐŊĐĩĐŊĐŊŅ ŅиĐŋŅ, СаĐŧŅŅŅŅ `list[str]`:
+
+{* ../../docs_src/query_params_str_validations/tutorial013_an_py39.py hl[9] *}
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+ĐаКŅĐĩ ĐŊа ŅваСŅ, ŅĐž в ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ FastAPI ĐŊĐĩ ĐŋĐĩŅĐĩвŅŅŅŅиĐŧĐĩ вĐŧŅŅŅ ŅĐŋиŅĐēŅ.
+
+ĐаĐŋŅиĐēĐģад, `list[int]` ĐŋĐĩŅĐĩвŅŅŅŅиĐŧĐĩ (Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅŅваŅиĐŧĐĩ), ŅĐž вŅŅ ĐĩĐģĐĩĐŧĐĩĐŊŅи ŅĐŋиŅĐēŅ Ņ ŅŅĐģиĐŧи ŅиŅĐģаĐŧи. ĐĐģĐĩ `list` ĐąĐĩС ŅŅĐžŅĐŊĐĩĐŊĐŊŅ ŅŅĐžĐŗĐž ĐŊĐĩ ŅОйиŅиĐŧĐĩ.
+
+///
+
+## ĐОдаваĐŊĐŊŅ Đ´ĐžĐ´Đ°ŅĐēОвиŅ
ĐŧĐĩŅадаĐŊиŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи ĐąŅĐģŅŅĐĩ ŅĐŊŅĐžŅĐŧаŅŅŅ ĐŋŅĐž ĐŋаŅаĐŧĐĩŅŅ.
+
+ĐĻŅ ŅĐŊŅĐžŅĐŧаŅŅŅ ĐąŅĐ´Đĩ вĐēĐģŅŅĐĩĐŊа Ņ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊиК OpenAPI Ņа виĐēĐžŅиŅŅаĐŊа в ŅĐŊŅĐĩŅŅĐĩĐšŅаŅ
Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Ņа СОвĐŊŅŅĐŊŅŅ
ŅĐŊŅŅŅŅĐŧĐĩĐŊŅаŅ
.
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+ĐаКŅĐĩ ĐŊа ŅваСŅ, ŅĐž ŅŅСĐŊŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи ĐŧĐžĐļŅŅŅ ĐŧаŅи ŅŅСĐŊиК ŅŅвĐĩĐŊŅ ĐŋŅĐ´ŅŅиĐŧĐēи OpenAPI.
+
+ĐĐĩŅĐēŅ Đˇ ĐŊиŅ
ĐŧĐžĐļŅŅŅ ŅĐĩ ĐŊĐĩ вŅдОйŅаĐļаŅи вŅŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ ŅĐŊŅĐžŅĐŧаŅŅŅ, Ņ
ĐžŅа в ĐąŅĐģŅŅĐžŅŅŅ Đ˛Đ¸ĐŋадĐēŅв ŅŅ ŅŅĐŊĐēŅŅŅ Đ˛ĐļĐĩ СаĐŋĐģаĐŊОваĐŊа Đ´ĐģŅ ŅОСŅОйĐēи.
+
+///
+
+Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи `title` :
+
+{* ../../docs_src/query_params_str_validations/tutorial007_an_py310.py hl[10] *}
+
+Đ ŅаĐēĐžĐļ `description`:
+
+{* ../../docs_src/query_params_str_validations/tutorial008_an_py310.py hl[14] *}
+
+## ĐĐģŅаŅи ĐŋаŅаĐŧĐĩŅŅŅв
+
+ĐŖŅвŅŅŅ, ŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ, ŅОй ĐŋаŅаĐŧĐĩŅŅ ĐŊаСивавŅŅ `item-query`.
+
+ĐаĐŋŅиĐēĐģад:
+
+```
+http://127.0.0.1:8000/items/?item-query=foobaritems
+```
+
+ĐĐģĐĩ `item-query` â ŅĐĩ ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊа ĐŊаСва СĐŧŅĐŊĐŊĐžŅ Đ˛ Python.
+
+ĐаКйĐģиĐļŅиК Đ´ĐžĐŋŅŅŅиĐŧиК ваŅŅаĐŊŅ â `item_query`.
+
+ĐŅĐžŅĐĩ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž, ŅОй ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐģиŅавŅŅ ŅаĐŧĐĩ `item-query`...
+
+ĐŖ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ĐŧĐžĐļĐŊа ĐžĐŗĐžĐģĐžŅиŅи `alias`, Ņ ŅаĐŧĐĩ вŅĐŊ ĐąŅĐ´Đĩ виĐēĐžŅиŅŅОвŅваŅиŅŅ Đ´ĐģŅ ĐžŅŅиĐŧаĐŊĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅа:
+
+{* ../../docs_src/query_params_str_validations/tutorial009_an_py310.py hl[9] *}
+
+## ĐивĐĩĐ´ĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅŅв ŅĐē СаŅŅаŅŅĐģиŅ
+
+ĐŅиĐŋŅŅŅиĐŧĐž, ŅĐž Đи ĐąŅĐģŅŅĐĩ ĐŊĐĩ Ņ
ĐžŅĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅĐĩĐš ĐŋаŅаĐŧĐĩŅŅ.
+
+ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž СаĐģиŅиŅи ĐšĐžĐŗĐž ĐŊа Đ´ĐĩŅĐēиК ŅаŅ, ĐžŅĐēŅĐģŅĐēи ĐŊиĐŧ ĐēĐžŅиŅŅŅŅŅŅŅŅ ĐēĐģŅŅĐŊŅи, аĐģĐĩ Đи Ņ
ĐžŅĐĩŅĐĩ, ŅОй Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ŅŅŅĐēĐž ĐŋĐžĐēаСŅваĐģа, ŅĐž вŅĐŊ Ņ ĐˇĐ°ŅŅаŅŅĐģиĐŧ.
+
+ĐĸĐžĐ´Ņ Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи ĐŋаŅаĐŧĐĩŅŅ `deprecated=True` Đ´Đž `Query`:
+
+{* ../../docs_src/query_params_str_validations/tutorial010_an_py310.py hl[19] *}
+
+ĐĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐąŅĐ´Đĩ ĐŋĐžĐēаСŅваŅи ŅĐĩ ŅаĐēиĐŧ ŅиĐŊĐžĐŧ:
+
+
+
+## ĐиĐŊŅŅĐžĐē ĐŋаŅаĐŧĐĩŅŅŅв С OpenAPI
+
+ЊОй виĐēĐģŅŅиŅи ĐŋаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ ĐˇŅ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊĐžŅ ŅŅ
ĐĩĐŧи OpenAPI (Ņ, ŅаĐēиĐŧ ŅиĐŊĐžĐŧ, С авŅĐžĐŧаŅиŅĐŊиŅ
ŅиŅŅĐĩĐŧ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ), вŅŅаĐŊОвŅŅŅ ĐŋаŅаĐŧĐĩŅŅ `include_in_schema` Đ´ĐģŅ `Query` в `False`:
+
+{* ../../docs_src/query_params_str_validations/tutorial014_an_py310.py hl[10] *}
+
+## ĐаŅŅĐžĐŧĐŊа ваĐģŅдаŅŅŅ
+
+ĐĐžĐļŅŅŅ ĐąŅŅи виĐŋадĐēи, ĐēĐžĐģи ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋŅОвĐĩŅŅи **ĐēаŅŅĐžĐŧĐŊŅ Đ˛Đ°ĐģŅдаŅŅŅ**, ŅĐēŅ ĐŊĐĩ ĐŧĐžĐļĐŊа ŅĐĩаĐģŅСŅваŅи Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅŅв, ĐŋĐžĐēаСаĐŊиŅ
виŅĐĩ.
+
+ĐŖ ŅаĐēиŅ
виĐŋадĐēаŅ
ви ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи **ĐēаŅŅĐžĐŧĐŊŅ ŅŅĐŊĐēŅŅŅ Đ˛Đ°ĐģŅдаŅŅŅ**, ŅĐēа ĐąŅĐ´Đĩ СаŅŅĐžŅОваĐŊа ĐŋŅŅĐģŅ ĐˇĐ˛Đ¸ŅаКĐŊĐžŅ Đ˛Đ°ĐģŅдаŅŅŅ (ĐŊаĐŋŅиĐēĐģад, ĐŋŅŅĐģŅ ĐŋĐĩŅĐĩвŅŅĐēи, ŅĐž СĐŊаŅĐĩĐŊĐŊŅ Ņ ŅиĐŋĐžĐŧ `str`).
+
+ĐĻĐĩ ĐŧĐžĐļĐŊа Đ´ĐžŅŅĐŗŅи Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ Pydantic's `AfterValidator` в ŅĐĩŅĐĩдиĐŊŅ `Annotated`.
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Pydantic ŅаĐēĐžĐļ ĐŧĐ°Ņ `BeforeValidator` Ņа ŅĐŊŅŅ. đ¤
+
+///
+
+ĐаĐŋŅиĐēĐģад, ŅĐĩĐš ĐēаŅŅĐžĐŧĐŊиК ваĐģŅдаŅĐžŅ ĐŋĐĩŅĐĩвŅŅŅŅ, Ņи ĐŋĐžŅиĐŊаŅŅŅŅŅ ID ĐĩĐģĐĩĐŧĐĩĐŊŅа С `isbn-` Đ´ĐģŅ ĐŊĐžĐŧĐĩŅа ĐēĐŊĐ¸ĐŗĐ¸ ISBN айО С `imdb-` Đ´ĐģŅ ID URL ŅŅĐģŅĐŧŅ ĐŊа IMDB:
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐĻĐĩ Đ´ĐžŅŅŅĐŋĐŊĐž С вĐĩŅŅŅŅ Pydantic 2 айО виŅĐĩ. đ
+
+///
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Đ¯ĐēŅĐž ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžĐŊаŅи ĐąŅĐ´Ņ-ŅĐēŅ Đ˛Đ°ĐģŅдаŅŅŅ, ŅĐēа виĐŧĐ°ĐŗĐ°Ņ Đ˛ĐˇĐ°ŅĐŧОдŅŅ Đˇ ĐąŅĐ´Ņ-ŅĐēиĐŧ **СОвĐŊŅŅĐŊŅĐŧ ĐēĐžĐŧĐŋĐžĐŊĐĩĐŊŅĐžĐŧ**, ŅаĐēиĐŧ ŅĐē йаСа даĐŊиŅ
Ņи ŅĐŊŅиК API, ви ĐŋОвиĐŊĐŊŅ ĐˇĐ°ĐŧŅŅŅŅ ŅŅĐžĐŗĐž виĐēĐžŅиŅŅОвŅваŅи **FastAPI Dependencies**. Đи Đ´ŅСĐŊаŅŅĐĩŅŅ ĐŋŅĐž ĐŊиŅ
ĐŋŅСĐŊŅŅĐĩ.
+
+ĐĻŅ ĐēаŅŅĐžĐŧĐŊŅ Đ˛Đ°ĐģŅдаŅĐžŅи виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ´ĐģŅ ŅĐĩŅĐĩĐš, ŅĐēŅ ĐŧĐžĐļĐŊа ĐŋĐĩŅĐĩвŅŅиŅи ĐģиŅĐĩ С **ŅиĐŧи даĐŊиĐŧи**, ŅĐž ĐŊадаĐŊŅ Đ˛ СаĐŋиŅŅ.
+
+///
+
+### ĐŅОСŅĐŧŅĐšŅĐĩ ŅĐĩĐš ĐēОд
+
+ĐĐžĐģОвĐŊиК ĐŧĐžĐŧĐĩĐŊŅ â ŅĐĩ виĐēĐžŅиŅŅаĐŊĐŊŅ **`AfterValidator` С ŅŅĐŊĐēŅŅŅŅ Đ˛ŅĐĩŅĐĩдиĐŊŅ `Annotated`**. ĐĐžĐļĐĩŅĐĩ ĐŋŅĐžĐŋŅŅŅиŅи ŅŅ ŅаŅŅиĐŊŅ, ŅĐēŅĐž Ņ
ĐžŅĐĩŅĐĩ. đ¤¸
+
+---
+
+ĐĐģĐĩ ŅĐēŅĐž ĐаĐŧ ŅŅĐēавО ŅОСŅĐąŅаŅиŅŅ Đ˛ ŅŅĐžĐŧŅ ĐēĐžĐŊĐēŅĐĩŅĐŊĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ ĐēĐžĐ´Ņ Ņ ĐаĐŧ ŅĐĩ ĐŊĐĩ ĐŊайŅидĐģĐž, ĐžŅŅ ĐēŅĐģŅĐēа дОдаŅĐēОвиŅ
Đ´ĐĩŅаĐģĐĩĐš.
+
+#### Đ ŅĐ´ĐžĐē ŅС `value.startswith()`
+
+ĐвĐĩŅĐŊŅĐģи ŅĐ˛Đ°ĐŗŅ? Đ ŅĐ´ĐžĐē ŅС `value.startswith()` ĐŧĐžĐļĐĩ ĐŋŅиКĐŧаŅи ĐēĐžŅŅĐĩĐļ, Ņ ŅĐžĐ´Ņ Đ˛ŅĐŊ ĐŋĐĩŅĐĩвŅŅŅŅиĐŧĐĩ ĐēĐžĐļĐŊĐĩ СĐŊаŅĐĩĐŊĐŊŅ Đ˛ ĐēĐžŅŅĐĩĐļŅ:
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[16:19] hl[17] *}
+
+#### ĐиĐŋадĐēОвиК ĐĩĐģĐĩĐŧĐĩĐŊŅ
+
+Đа Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `data.items()` Đŧи ĐžŅŅиĐŧŅŅĐŧĐž ŅŅĐĩŅайĐĩĐģŅĐŊиК Ой'ŅĐēŅ ŅС ĐēĐžŅŅĐĩĐļаĐŧи, ŅĐž ĐŧŅŅŅŅŅŅ ĐēĐģŅŅ Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ Đ´ĐģŅ ĐēĐžĐļĐŊĐžĐŗĐž ĐĩĐģĐĩĐŧĐĩĐŊŅа ŅĐģОвĐŊиĐēа.
+
+Đи ĐŋĐĩŅĐĩŅвОŅŅŅĐŧĐž ŅĐĩĐš ŅŅĐĩŅайĐĩĐģŅĐŊиК Ой'ŅĐēŅ Ņ ĐˇĐ˛Đ¸ŅаКĐŊиК `list` Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `list(data.items())`.
+
+ĐĐžŅŅĐŧ, виĐēĐžŅиŅŅОвŅŅŅи `random.choice()`, Đŧи ĐŧĐžĐļĐĩĐŧĐž ĐžŅŅиĐŧаŅи виĐŋадĐēОвĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇŅ ŅĐŋиŅĐēŅ, ŅОйŅĐž ĐžŅŅиĐŧŅŅĐŧĐž ĐēĐžŅŅĐĩĐļ ŅС `(id, name)`. ĐĻĐĩ ĐŧĐžĐļĐĩ ĐąŅŅи ŅĐžŅŅ ĐŊа СŅаСОĐē `("imdb-tt0371724", "The Hitchhiker's Guide to the Galaxy")`.
+
+ĐаĐģŅ Đŧи **ĐŋŅиŅвОŅŅĐŧĐž ŅŅ Đ´Đ˛Đ° СĐŊаŅĐĩĐŊĐŊŅ** ĐēĐžŅŅĐĩĐļŅ ĐˇĐŧŅĐŊĐŊиĐŧ `id` Ņ `name`.
+
+ĐĸĐžĐļ, ŅĐēŅĐž ĐēĐžŅиŅŅŅĐ˛Đ°Ņ ĐŊĐĩ вĐēаСав ID ĐĩĐģĐĩĐŧĐĩĐŊŅа, вŅĐŊ вŅĐĩ ОдĐŊĐž ĐžŅŅиĐŧĐ°Ņ Đ˛Đ¸ĐŋадĐēĐžĐ˛Ņ ŅĐĩĐēĐžĐŧĐĩĐŊдаŅŅŅ.
+
+...Ņ Đ˛ŅĐĩ ŅĐĩ ŅĐĩаĐģŅСОваĐŊĐž в **ОдĐŊĐžĐŧŅ ŅŅĐ´ĐēŅ ĐēОдŅ**. đ¤¯ ĐĨŅйа ĐŊĐĩ ĐŋŅĐĩĐēŅаŅĐŊиК Python? đ
+
+{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py ln[22:30] hl[29] *}
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи дОдаŅĐēĐžĐ˛Ņ Đ˛Đ°ĐģŅдаŅŅŅ Ņа ĐŧĐĩŅаŅĐŊŅĐžŅĐŧаŅŅŅ Đ´ĐģŅ ŅвОŅŅ
ĐŋаŅаĐŧĐĩŅŅŅв.
+
+ĐĐ°ĐŗĐ°ĐģŅĐŊŅ Đ˛Đ°ĐģŅдаŅŅŅ Ņа ĐŧĐĩŅаŅĐŊŅĐžŅĐŧаŅŅŅ:
+
+* `alias`
+* `title`
+* `description`
+* `deprecated`
+
+ĐаĐģŅдаŅŅŅ, ŅĐŋĐĩŅиŅŅŅĐŊŅ Đ´ĐģŅ ŅŅĐ´ĐēŅв:
+
+* `min_length`
+* `max_length`
+* `pattern`
+
+ĐаŅŅĐžĐŧĐŊŅ Đ˛Đ°ĐģŅдаŅŅŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `AfterValidator`.
+
+ĐŖ ŅиŅ
ĐŋŅиĐēĐģадаŅ
Đи ĐŋОйаŅиĐģи, ŅĐē ĐžĐŗĐžĐģĐžŅŅваŅи ваĐģŅдаŅŅŅ Đ´ĐģŅ ĐˇĐŊаŅĐĩĐŊŅ `str`.
+
+ĐивŅŅŅŅŅ ĐŊаŅŅŅĐŋĐŊŅ ŅОСдŅĐģи, ŅОй Đ´ŅСĐŊаŅиŅŅ, ŅĐē ĐžĐŗĐžĐģĐžŅŅваŅи ваĐģŅдаŅŅŅ Đ´ĐģŅ ŅĐŊŅиŅ
ŅиĐŋŅв, ĐŊаĐŋŅиĐēĐģад ŅиŅĐĩĐģ.
diff --git a/docs/uk/docs/tutorial/query-params.md b/docs/uk/docs/tutorial/query-params.md
new file mode 100644
index 0000000000..16bb42af3d
--- /dev/null
+++ b/docs/uk/docs/tutorial/query-params.md
@@ -0,0 +1,192 @@
+# Query ĐаŅаĐŧĐĩŅŅи
+
+ĐĐžĐģи Đи ĐžĐŗĐžĐģĐžŅŅŅŅĐĩ ŅĐŊŅŅ ĐŋаŅаĐŧĐĩŅŅи ŅŅĐŊĐēŅŅŅ, ŅĐēŅ ĐŊĐĩ Ņ ŅаŅŅиĐŊĐžŅ ĐŋаŅаĐŧĐĩŅŅŅв ŅĐģŅŅ
Ņ, вОĐŊи авŅĐžĐŧаŅиŅĐŊĐž ŅĐŊŅĐĩŅĐŋŅĐĩŅŅŅŅŅŅŅ ŅĐē "query" ĐŋаŅаĐŧĐĩŅŅи.
+
+{* ../../docs_src/query_params/tutorial001.py hl[9] *}
+
+Query ĐŋаŅаĐŧĐĩŅŅи â ŅĐĩ ĐŊайŅŅ ĐŋĐ°Ņ ĐēĐģŅŅ-СĐŊаŅĐĩĐŊĐŊŅ, ŅĐž КдŅŅŅ ĐŋŅŅĐģŅ ŅиĐŧвОĐģŅ `?` в URL, ŅОСдŅĐģĐĩĐŊŅ ŅиĐŧвОĐģаĐŧи `&`.
+
+ĐаĐŋŅиĐēĐģад, в URL:
+
+```
+http://127.0.0.1:8000/items/?skip=0&limit=10
+```
+
+...query ĐŋаŅаĐŧĐĩŅŅаĐŧи Ņ:
+
+* `skip`: ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `0`
+* `limit`: ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `10`
+
+ĐŅĐēŅĐģŅĐēи вОĐŊи Ņ ŅаŅŅиĐŊĐžŅ URL, вОĐŊи "Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ" Ņ ŅŅĐ´ĐēаĐŧи.
+
+ĐĐģĐĩ ĐēĐžĐģи Đи ĐžĐŗĐžĐģĐžŅŅŅŅĐĩ ŅŅ
ŅС ŅиĐŋаĐŧи Python (Ņ ĐŊавĐĩĐ´ĐĩĐŊĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ ŅĐē `int`), вОĐŊи ĐŋĐĩŅĐĩŅвОŅŅŅŅŅŅŅ ĐŊа ŅĐĩĐš ŅиĐŋ Ņ ĐŋŅĐžŅ
ОдŅŅŅ ĐŋĐĩŅĐĩвŅŅĐēŅ Đ˛ŅĐ´ĐŋОвŅĐ´ĐŊĐžŅŅŅ.
+
+ĐŖĐ˛ĐĩŅŅ ŅОК ŅаĐŧиК ĐŋŅĐžŅĐĩŅ, ŅĐēиК СаŅŅĐžŅОвŅŅŅŅŅŅ Đ´Đž ĐŋаŅаĐŧĐĩŅŅŅв ŅĐģŅŅ
Ņ, ŅаĐēĐžĐļ СаŅŅĐžŅОвŅŅŅŅŅŅ Đ´Đž query ĐŋаŅаĐŧĐĩŅŅŅв:
+
+* ĐŅĐ´ŅŅиĐŧĐēа в ŅĐĩдаĐēŅĐžŅŅ (авŅОдОĐŋОвĐŊĐĩĐŊĐŊŅ, ĐŋĐĩŅĐĩвŅŅĐēа ĐŋĐžĐŧиĐģĐžĐē)
+* "ĐаŅŅиĐŊĐŗ" даĐŊиŅ
+* ĐаĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
+* ĐвŅĐžĐŧаŅиŅĐŊа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+
+## ĐĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+
+ĐŅĐēŅĐģŅĐēи query ĐŋаŅаĐŧĐĩŅŅи ĐŊĐĩ Ņ ŅŅĐēŅОваĐŊĐžŅ ŅаŅŅиĐŊĐžŅ ŅĐģŅŅ
Ņ, вОĐŊи ĐŧĐžĐļŅŅŅ ĐąŅŅи ĐŊĐĩОйОвâŅСĐēОвиĐŧи Ņа ĐŧаŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+ĐŖ ĐŊавĐĩĐ´ĐĩĐŊĐžĐŧŅ Đ˛Đ¸ŅĐĩ ĐŋŅиĐēĐģĐ°Đ´Ņ Đ˛ĐžĐŊи ĐŧаŅŅŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ: `skip=0` Ņ `limit=10`.
+
+ĐŅĐļĐĩ, ŅĐĩСŅĐģŅŅĐ°Ņ ĐŋĐĩŅĐĩŅ
ĐžĐ´Ņ ĐˇĐ° URL:
+
+```
+http://127.0.0.1:8000/items/
+```
+ĐąŅĐ´Đĩ ŅаĐēиĐŧ ŅаĐŧиĐŧ, ŅĐē Ņ ĐŋĐĩŅĐĩŅ
ŅĐ´ Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ:
+
+```
+http://127.0.0.1:8000/items/?skip=0&limit=10
+```
+
+ĐĐģĐĩ ŅĐēŅĐž Đи ĐŋĐĩŅĐĩКдĐĩŅĐĩ, ĐŊаĐŋŅиĐēĐģад, Са ĐŋĐžŅиĐģаĐŊĐŊŅĐŧ:
+
+```
+http://127.0.0.1:8000/items/?skip=20
+```
+
+ĐĐŊаŅĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅŅв Ņ Đ˛Đ°ŅŅĐš ŅŅĐŊĐēŅŅŅ ĐąŅĐ´ŅŅŅ ŅаĐēиĐŧи:
+
+* `skip=20`: ĐžŅĐēŅĐģŅĐēи Đи вĐēаСаĐģи ĐšĐžĐŗĐž в URL
+* `limit=10`: ĐžŅĐēŅĐģŅĐēи ŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+
+## ĐĐĩОйОв'ŅСĐēĐžĐ˛Ņ ĐŋаŅаĐŧĐĩŅŅи
+
+ĐĐŊаĐģĐžĐŗŅŅĐŊĐž, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐŊĐĩОйОвâŅСĐēĐžĐ˛Ņ query ĐŋаŅаĐŧĐĩŅŅи, вŅŅаĐŊОвивŅи Đ´ĐģŅ ĐŊиŅ
СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `None`:
+
+{* ../../docs_src/query_params/tutorial002_py310.py hl[7] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ĐŋаŅаĐŧĐĩŅŅ ŅŅĐŊĐēŅŅŅ `q` ĐąŅĐ´Đĩ ĐŊĐĩОйОвâŅСĐēОвиĐŧ Ņ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐŧаŅиĐŧĐĩ СĐŊаŅĐĩĐŊĐŊŅ `None`.
+
+/// check | ĐŅиĐŧŅŅĐēа
+
+ĐĸаĐēĐžĐļ СвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž **FastAPI** Đ´ĐžŅŅаŅĐŊŅĐž ŅОСŅĐŧĐŊиК, ŅОй виСĐŊаŅиŅи, ŅĐž ĐŋаŅаĐŧĐĩŅŅ ŅĐģŅŅ
Ņ `item_id` Ņ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ ŅĐģŅŅ
Ņ, а `q` â ĐŊŅ, ĐžŅĐļĐĩ, ŅĐĩ query ĐŋаŅаĐŧĐĩŅŅ.
+
+///
+
+## ĐĐĩŅĐĩŅвОŅĐĩĐŊĐŊŅ ŅиĐŋŅ Query ĐŋаŅаĐŧĐĩŅŅа
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅŅваŅи ĐŋаŅаĐŧĐĩŅŅи ŅиĐŋŅ `bool`, Ņ Đ˛ĐžĐŊи ĐąŅĐ´ŅŅŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž ĐēĐžĐŊвĐĩŅŅОваĐŊŅ:
+
+{* ../../docs_src/query_params/tutorial003_py310.py hl[7] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ, ŅĐēŅĐž Đи СвĐĩŅĐŊĐĩŅĐĩŅŅ Đ´Đž:
+
+
+```
+http://127.0.0.1:8000/items/foo?short=1
+```
+
+айО
+
+```
+http://127.0.0.1:8000/items/foo?short=True
+```
+
+айО
+
+```
+http://127.0.0.1:8000/items/foo?short=true
+```
+
+айО
+
+```
+http://127.0.0.1:8000/items/foo?short=on
+```
+
+айО
+
+```
+http://127.0.0.1:8000/items/foo?short=yes
+```
+
+айО ĐąŅĐ´Ņ-ŅĐēиК ŅĐŊŅиК ваŅŅаĐŊŅ ĐŊаĐŋиŅаĐŊĐŊŅ (вĐĩĐģиĐēŅ ĐģŅŅĐĩŅи, ĐŋĐĩŅŅа ĐģŅŅĐĩŅа вĐĩĐģиĐēа ŅĐžŅĐž), ваŅа ŅŅĐŊĐēŅŅŅ ĐŋОйаŅиŅŅ ĐŋаŅаĐŧĐĩŅŅ `short` ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `True` С ŅиĐŋĐžĐŧ даĐŊиŅ
`bool`. Đ ŅĐŊŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ â `False`.
+
+## ĐŅĐģŅĐēа path Ņ query ĐŋаŅаĐŧĐĩŅŅŅв
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ОдĐŊĐžŅаŅĐŊĐž ĐžĐŗĐžĐģĐžŅŅваŅи ĐēŅĐģŅĐēа path Ņ query ĐŋаŅаĐŧĐĩŅŅŅв, Ņ **FastAPI** авŅĐžĐŧаŅиŅĐŊĐž виСĐŊаŅиŅŅ, ŅĐēиК С ĐŊиŅ
Đ´Đž ŅĐžĐŗĐž ĐŊаĐģĐĩĐļиŅŅ.
+
+
+ĐĐĩ ĐŋĐžŅŅŅĐąĐŊĐž Đ´ĐžŅŅиĐŧŅваŅиŅŅ ĐŋĐĩвĐŊĐžĐŗĐž ĐŋĐžŅŅĐ´ĐēŅ ŅŅ
ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ.
+
+ĐĐžĐŊи виСĐŊаŅаŅŅŅŅŅ ĐˇĐ° ĐŊаСвОŅ:
+
+{* ../../docs_src/query_params/tutorial004_py310.py hl[6,8] *}
+
+## ĐйОвâŅСĐēĐžĐ˛Ņ Query ĐŋаŅаĐŧĐĩŅŅи
+
+Đ¯ĐēŅĐž Đи ĐžĐŗĐžĐģĐžŅŅŅŅĐĩ СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ Đ´ĐģŅ ĐŋаŅаĐŧĐĩŅŅŅв, ŅĐēŅ ĐŊĐĩ Ņ path-ĐŋаŅаĐŧĐĩŅŅаĐŧи (Ņ ŅŅĐžĐŧŅ ŅОСдŅĐģŅ Đŧи йаŅиĐģи ĐŋĐžĐēи ŅĐž ĐģиŅĐĩ path ĐŋаŅаĐŧĐĩŅŅи), ŅĐžĐ´Ņ Đ˛ĐžĐŊи ŅŅаŅŅŅ ĐŊĐĩОйОвâŅСĐēОвиĐŧи.
+
+Đ¯ĐēŅĐž Đи ĐŊĐĩ Ņ
ĐžŅĐĩŅĐĩ вĐēаСŅваŅи ĐēĐžĐŊĐēŅĐĩŅĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, аĐģĐĩ Ņ
ĐžŅĐĩŅĐĩ СŅОйиŅи ĐŋаŅаĐŧĐĩŅŅ ĐžĐŋŅŅĐžĐŊаĐģŅĐŊиĐŧ, СадаКŅĐĩ `None` ŅĐē СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+ĐĐģĐĩ ŅĐēŅĐž Đи Ņ
ĐžŅĐĩŅĐĩ СŅОйиŅи query ĐŋаŅаĐŧĐĩŅŅ ĐžĐąĐžĐ˛âŅСĐēОвиĐŧ, ĐŋŅĐžŅŅĐž ĐŊĐĩ вĐēаСŅĐšŅĐĩ Đ´ĐģŅ ĐŊŅĐžĐŗĐž СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ:
+
+{* ../../docs_src/query_params/tutorial005.py hl[6:7] *}
+
+ĐĸŅŅ `needy` â ОйОвâŅСĐēОвиК query ĐŋаŅаĐŧĐĩŅŅ ŅиĐŋŅ `str`.
+
+Đ¯ĐēŅĐž Đи вŅĐ´ĐēŅиŅŅĐĩ Ņ ĐąŅаŅСĐĩŅŅ URL-адŅĐĩŅŅ:
+
+```
+http://127.0.0.1:8000/items/foo-item
+```
+
+...ĐąĐĩС дОдаваĐŊĐŊŅ ĐžĐąĐžĐ˛âŅСĐēĐžĐ˛ĐžĐŗĐž ĐŋаŅаĐŧĐĩŅŅа `needy`, Đи ĐŋОйаŅиŅĐĩ ĐŋĐžĐŧиĐģĐēŅ:
+
+```JSON
+{
+ "detail": [
+ {
+ "type": "missing",
+ "loc": [
+ "query",
+ "needy"
+ ],
+ "msg": "Field required",
+ "input": null,
+ "url": "https://errors.pydantic.dev/2.1/v/missing"
+ }
+ ]
+}
+```
+
+ĐŅĐēŅĐģŅĐēи `needy` Ņ ĐžĐąĐžĐ˛âŅСĐēОвиĐŧ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ, ваĐŧ ĐŋĐžŅŅŅĐąĐŊĐž вĐēаСаŅи ĐšĐžĐŗĐž в URL:
+
+```
+http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
+```
+
+...ŅĐĩĐš СаĐŋĐ¸Ņ ĐŋОвĐĩŅĐŊĐĩ:
+
+```JSON
+{
+ "item_id": "foo-item",
+ "needy": "sooooneedy"
+}
+```
+
+
+ĐвиŅаКĐŊĐž, Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи Đ´ĐĩŅĐēŅ ĐŋаŅаĐŧĐĩŅŅи ŅĐē ОйОвâŅСĐēОвŅ, ŅĐŊŅŅ ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ, а ŅĐĩ Đ´ĐĩŅĐēŅ â ĐŋОвĐŊŅŅŅŅ ĐžĐŋŅŅĐžĐŊаĐģŅĐŊŅ:
+
+{* ../../docs_src/query_params/tutorial006_py310.py hl[8] *}
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ Ņ 3 query ĐŋаŅаĐŧĐĩŅŅи:
+
+* `needy`, ОйОвâŅСĐēОвиК `str`.
+* `skip`, `int` ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ `0`.
+* `limit`, ĐžĐŋŅŅĐžĐŊаĐģŅĐŊиК `int`.
+
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `Enum`-и, ŅаĐē ŅаĐŧĐž ŅĐē Ņ Đˇ [Path Parameters](path-params.md#predefined-values){.internal-link target=_blank}.
+
+///
diff --git a/docs/uk/docs/tutorial/request-files.md b/docs/uk/docs/tutorial/request-files.md
new file mode 100644
index 0000000000..18b7cc01c9
--- /dev/null
+++ b/docs/uk/docs/tutorial/request-files.md
@@ -0,0 +1,175 @@
+# ĐаĐŋĐ¸Ņ ŅаКĐģŅв
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виСĐŊаŅиŅи ŅаКĐģи, ŅĐēŅ ĐąŅĐ´ŅŅŅ ĐˇĐ°Đ˛Đ°ĐŊŅаĐļŅваŅиŅŅ ĐēĐģŅŅĐŊŅĐžĐŧ, виĐēĐžŅиŅŅОвŅŅŅи `File`.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ЊОй ĐžŅŅиĐŧŅваŅи СаваĐŊŅаĐļĐĩĐŊŅ ŅаКĐģи, ŅĐŋĐžŅаŅĐēŅ Đ˛ŅŅаĐŊОвŅŅŅ python-multipart.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи ŅŅвОŅиĐģи [вŅŅŅŅаĐģŅĐŊĐĩ ŅĐĩŅĐĩдОвиŅĐĩ](../virtual-environments.md){.internal-link target=_blank}, аĐēŅивŅваĐģи ĐšĐžĐŗĐž Ņа вŅŅаĐŊОвиĐģи ĐŋаĐēĐĩŅ, ĐŊаĐŋŅиĐēĐģад:
+
+```console
+$ pip install python-multipart
+```
+
+ĐĻĐĩ ĐŊĐĩОйŅ
ŅĐ´ĐŊĐž, ĐžŅĐēŅĐģŅĐēи СаваĐŊŅаĐļĐĩĐŊŅ ŅаКĐģи ĐŋĐĩŅĐĩдаŅŅŅŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ "ŅĐžŅĐŧаŅОваĐŊиŅ
даĐŊиŅ
ŅĐžŅĐŧи".
+
+///
+
+## ĐĐŧĐŋĐžŅŅ `File`
+
+ĐĐŧĐŋĐžŅŅŅĐšŅĐĩ `File` Ņа `UploadFile` С `fastapi`:
+
+{* ../../docs_src/request_files/tutorial001_an_py39.py hl[3] *}
+
+## ĐиСĐŊаŅĐĩĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅŅв `File`
+
+ĐĄŅвОŅŅŅŅ ĐŋаŅаĐŧĐĩŅŅи ŅаКĐģŅв ŅаĐē ŅаĐŧĐž ŅĐē Đи Đą ŅŅвОŅŅваĐģи `Body` айО `Form`:
+
+{* ../../docs_src/request_files/tutorial001_an_py39.py hl[9] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+`File` â ŅĐĩ ĐēĐģаŅ, ŅĐēиК ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ŅŅĐŋадĐēОвŅŅ `Form`.
+
+ĐĐģĐĩ ĐŋаĐŧâŅŅаКŅĐĩ, ŅĐž ĐēĐžĐģи Đи ŅĐŧĐŋĐžŅŅŅŅŅĐĩ `Query`, `Path`, `File` Ņа ŅĐŊŅŅ Đˇ `fastapi`, ŅĐĩ ĐŊаŅĐŋŅĐ°Đ˛Đ´Ņ ŅŅĐŊĐēŅŅŅ, ŅĐēŅ ĐŋОвĐĩŅŅаŅŅŅ ŅĐŋĐĩŅŅаĐģŅĐŊŅ ĐēĐģаŅи.
+
+///
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+ЊОй ĐžĐŗĐžĐģĐžŅиŅи ŅŅĐģа ŅаКĐģŅв, ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžŅиŅŅОвŅваŅи `File`, ŅĐžĐŧŅ ŅĐž ŅĐŊаĐēŅĐĩ ĐŋаŅаĐŧĐĩŅŅи ĐąŅĐ´ŅŅŅ ŅĐŊŅĐĩŅĐŋŅĐĩŅОваĐŊŅ ŅĐē ĐŋаŅаĐŧĐĩŅŅи СаĐŋиŅŅ Đ°ĐąĐž ĐŋаŅаĐŧĐĩŅŅи ŅŅĐģа (JSON).
+
+///
+
+ФаКĐģи ĐąŅĐ´ŅŅŅ ĐˇĐ°Đ˛Đ°ĐŊŅаĐļĐĩĐŊŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ "ŅĐžŅĐŧаŅОваĐŊиŅ
даĐŊиŅ
ŅĐžŅĐŧи".
+
+Đ¯ĐēŅĐž Đи ĐžĐŗĐžĐģĐžŅиŅĐĩ ŅиĐŋ ĐŋаŅаĐŧĐĩŅŅа ŅŅĐŊĐēŅŅŅ ĐžĐąŅОйĐŊиĐēа ĐŧаŅŅŅŅŅŅ ŅĐē `bytes`, **FastAPI** ĐŋŅĐžŅиŅĐ°Ņ ŅаКĐģ Са ĐаŅ, Ņ Đи ĐžŅŅиĐŧаŅŅĐĩ ĐšĐžĐŗĐž вĐŧŅŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ `bytes`.
+
+ĐĐ´ĐŊаĐē ĐŧаКŅĐĩ ĐŊа ŅваСŅ, ŅĐž вĐĩŅŅ Đ˛ĐŧŅŅŅ ĐąŅĐ´Đĩ СйĐĩŅĐĩĐļĐĩĐŊĐž в ĐŋаĐŧ'ŅŅŅ. ĐĻĐĩ ĐŋŅаŅŅваŅиĐŧĐĩ дОйŅĐĩ Đ´ĐģŅ ĐŧаĐģиŅ
ŅаКĐģŅв.
+
+ĐĐģĐĩ в Đ´ĐĩŅĐēиŅ
виĐŋадĐēаŅ
ĐаĐŧ ĐŧĐžĐļĐĩ СĐŊадОйиŅиŅŅ `UploadFile`.
+
+## ĐаŅаĐŧĐĩŅŅи ŅаКĐģŅ Đˇ `UploadFile`
+
+ĐиСĐŊаŅŅĐĩ ĐŋаŅаĐŧĐĩŅŅ ŅаКĐģŅ Đˇ ŅиĐŋĐžĐŧ `UploadFile`:
+
+{* ../../docs_src/request_files/tutorial001_an_py39.py hl[14] *}
+
+ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `UploadFile` ĐŧĐ°Ņ ĐēŅĐģŅĐēа ĐŋĐĩŅĐĩĐ˛Đ°Đŗ ĐŋĐĩŅĐĩĐ´ `bytes`:
+
+* ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžŅиŅŅОвŅваŅи `File()` Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐŋаŅаĐŧĐĩŅŅа.
+* ĐиĐēĐžŅиŅŅОвŅŅŅŅŅŅ "ĐąŅŅĐĩŅиСОваĐŊиК" ŅаКĐģ:
+ * ФаКĐģ СйĐĩŅŅĐŗĐ°ŅŅŅŅŅ Đ˛ ĐŋаĐŧ'ŅŅŅ Đ´Đž Đ´ĐžŅŅĐŗĐŊĐĩĐŊĐŊŅ ĐŋĐĩвĐŊĐžĐŗĐž ОйĐŧĐĩĐļĐĩĐŊĐŊŅ, ĐŋŅŅĐģŅ ŅĐžĐŗĐž вŅĐŊ СаĐŋиŅŅŅŅŅŅŅ ĐŊа диŅĐē.
+* ĐĻĐĩ ОСĐŊаŅаŅ, ŅĐž вŅĐŊ дОйŅĐĩ ĐŋŅаŅŅŅ Đ´ĐģŅ Đ˛ĐĩĐģиĐēиŅ
ŅаКĐģŅв, ŅаĐēиŅ
ŅĐē СОйŅаĐļĐĩĐŊĐŊŅ, вŅĐ´ĐĩĐž, вĐĩĐģиĐēŅ Đ´Đ˛ŅĐšĐēĐžĐ˛Ņ ŅаКĐģи ŅĐžŅĐž, ĐŊĐĩ ŅĐŋĐžĐļиваŅŅи вŅŅ ĐŋаĐŧ'ŅŅŅ.
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžŅŅиĐŧаŅи ĐŧĐĩŅадаĐŊŅ ĐŋŅĐž СаваĐŊŅаĐļĐĩĐŊиК ŅаКĐģ.
+* ĐŅĐŊ ĐŧĐ°Ņ file-like `аŅиĐŊŅ
ŅĐžĐŊĐŊиК ŅаКĐģОвиК ŅĐŊŅĐĩŅŅĐĩĐšŅ` interface.
+* ĐŅĐŊ ĐŊĐ°Đ´Đ°Ņ ŅаĐēŅиŅĐŊиК Ой'ŅĐēŅ Python `SpooledTemporaryFile`, ŅĐēиК ĐŧĐžĐļĐŊа ĐŋĐĩŅĐĩдаваŅи ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ŅĐŊŅиĐŧ ĐąŅĐąĐģŅĐžŅĐĩĐēаĐŧ.
+
+### `UploadFile`
+
+`UploadFile` ĐŧĐ°Ņ ŅаĐēŅ Đ°ŅŅийŅŅи:
+
+* `filename`: Đ ŅĐ´ĐžĐē `str` С ĐžŅĐ¸ĐŗŅĐŊаĐģŅĐŊĐžŅ ĐŊĐ°ĐˇĐ˛ĐžŅ ŅаКĐģŅ, ŅĐēиК ĐąŅв СаваĐŊŅаĐļĐĩĐŊиК (ĐŊаĐŋŅиĐēĐģад, `myimage.jpg`).
+* `content_type`: Đ ŅĐ´ĐžĐē `str` С MIME-ŅиĐŋĐžĐŧ (ĐŊаĐŋŅиĐēĐģад, `image/jpeg`).
+* `file`: ĐĐą'ŅĐēŅ SpooledTemporaryFile (ŅаКĐģĐžĐŋОдŅĐąĐŊиК Ой'ŅĐēŅ). ĐĻĐĩ ŅаĐēŅиŅĐŊиК ŅаКĐģОвиК Ой'ŅĐēŅ Python, ŅĐēиК ĐŧĐžĐļĐŊа ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐŋĐĩŅĐĩдаваŅи ŅĐŊŅиĐŧ ŅŅĐŊĐēŅŅŅĐŧ айО ĐąŅĐąĐģŅĐžŅĐĩĐēаĐŧ, ŅĐž ĐžŅŅĐēŅŅŅŅ "ŅаКĐģĐžĐŋОдŅĐąĐŊиК" Ой'ŅĐēŅ.
+
+`UploadFile` ĐŧĐ°Ņ ŅаĐēŅ Đ°ŅиĐŊŅ
ŅĐžĐŊĐŊŅ `async` ĐŧĐĩŅОди. ĐĐžĐŊи виĐēĐģиĐēаŅŅŅ Đ˛ŅĐ´ĐŋОвŅĐ´ĐŊŅ ĐŧĐĩŅОди ŅаКĐģŅ ĐŋŅĐ´ ĐēаĐŋĐžŅĐžĐŧ (виĐēĐžŅиŅŅОвŅŅŅи вĐŊŅŅŅŅŅĐŊŅĐš `SpooledTemporaryFile`).
+
+* `write(data)`: ĐаĐŋиŅŅŅ `data` (`str` айО `bytes`) Ņ ŅаКĐģ.
+* `read(size)`: ЧиŅĐ°Ņ `size` (`int`) йаКŅŅв/ŅиĐŧвОĐģŅв С ŅаКĐģŅ.
+* `seek(offset)`: ĐĐĩŅĐĩĐŧŅŅŅŅŅŅŅŅ Đ´Đž ĐŋОСиŅŅŅ `offset` (`int`) Ņ ŅаКĐģŅ.
+ * ĐаĐŋŅиĐēĐģад, `await myfile.seek(0)` ĐŋОвĐĩŅĐŊĐĩ ĐēŅŅŅĐžŅ ĐŊа ĐŋĐžŅаŅĐžĐē ŅаКĐģŅ.
+ * This is especially useful if you run `await myfile.read()` once and then need to read the contents again. ĐĻĐĩ ĐžŅОйĐģивО ĐēĐžŅиŅĐŊĐž, ŅĐēŅĐž Đи виĐēĐžĐŊŅŅŅĐĩ await `await myfile.read()` ОдиĐŊ ŅаС, а ĐŋĐžŅŅĐŧ ĐŋĐžŅŅŅĐąĐŊĐž СĐŊĐžĐ˛Ņ ĐŋŅĐžŅиŅаŅи вĐŧŅŅŅ.
+* `close()`: ĐаĐēŅĐ¸Đ˛Đ°Ņ ŅаКĐģ.
+
+ĐŅĐēŅĐģŅĐēи вŅŅ ŅŅ ĐŧĐĩŅОди Ņ Đ°ŅиĐŊŅ
ŅĐžĐŊĐŊиĐŧи `async`, ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐžŅиŅŅОвŅваŅи "await":
+
+ĐаĐŋŅиĐēĐģад, вŅĐĩŅĐĩдиĐŊŅ `async` *ŅŅĐŊĐēŅŅŅ ĐžĐąŅОйĐēи ŅĐģŅŅ
Ņ* Đи ĐŧĐžĐļĐĩŅĐĩ ĐžŅŅиĐŧаŅи вĐŧŅŅŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ:
+
+```Python
+contents = await myfile.read()
+```
+Đ¯ĐēŅĐž Đи СĐŊаŅ
ОдиŅĐĩŅŅ Ņ ĐˇĐ˛Đ¸ŅаКĐŊŅĐš `def` *ŅŅĐŊĐēŅŅŅ ĐžĐąŅОйĐēи ŅĐģŅŅ
Ņ*, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžŅŅиĐŧаŅи Đ´ĐžŅŅŅĐŋ Đ´Đž `UploadFile.file` ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž, ĐŊаĐŋŅиĐēĐģад:
+
+```Python
+contents = myfile.file.read()
+```
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ `async`
+
+ĐĐžĐģи Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `async` ĐŧĐĩŅОди, **FastAPI** виĐēĐžĐŊŅŅ ŅаКĐģĐžĐ˛Ņ ĐžĐŋĐĩŅаŅŅŅ Ņ ĐŋŅĐģŅ ĐŋĐžŅĐžĐēŅв Ņа ĐžŅŅĐēŅŅ ŅŅ
СавĐĩŅŅĐĩĐŊĐŊŅ.
+
+///
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ Starlette
+
+`UploadFile` Ņ **FastAPI** ŅŅĐŋадĐēОвŅŅŅŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž вŅĐ´ `UploadFile` Ņ **Starlette**, аĐģĐĩ Đ´ĐžĐ´Đ°Ņ Đ´ĐĩŅĐēŅ ĐŊĐĩОйŅ
ŅĐ´ĐŊŅ ŅаŅŅиĐŊи, ŅОй СŅОйиŅи ĐšĐžĐŗĐž ŅŅĐŧŅŅĐŊиĐŧ ŅС **Pydantic** Ņа ŅĐŊŅиĐŧи ĐēĐžĐŧĐŋĐžĐŊĐĩĐŊŅаĐŧи FastAPI.
+
+///
+
+## ĐŠĐž ŅаĐēĐĩ "Form Data"
+
+ĐĄĐŋĐžŅŅĐą, Ņ ŅĐēиК HTML-ŅĐžŅĐŧи (``) ĐŊадŅиĐģаŅŅŅ Đ´Đ°ĐŊŅ ĐŊа ŅĐĩŅвĐĩŅ, СаСвиŅаК виĐēĐžŅиŅŅОвŅŅ "ŅĐŋĐĩŅŅаĐģŅĐŊĐĩ" ĐēОдŅваĐŊĐŊŅ, вŅĐ´ĐŧŅĐŊĐŊĐĩ вŅĐ´ JSON.
+
+**FastAPI** СайĐĩСĐŋĐĩŅŅŅ ĐŋŅавиĐģŅĐŊĐĩ СŅиŅŅваĐŊĐŊŅ ŅиŅ
даĐŊиŅ
С вŅĐ´ĐŋОвŅĐ´ĐŊĐžŅ ŅаŅŅиĐŊи СаĐŋиŅŅ, а ĐŊĐĩ С JSON.
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+ĐаĐŊŅ Đˇ ŅĐžŅĐŧ СаСвиŅаК ĐēОдŅŅŅŅŅŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ "media type" `application/x-www-form-urlencoded`, ŅĐēŅĐž вОĐŊи ĐŊĐĩ ĐŧŅŅŅŅŅŅ ŅаКĐģŅв.
+
+ĐĐģĐĩ ŅĐēŅĐž ŅĐžŅĐŧа ĐŧŅŅŅиŅŅ ŅаКĐģи, вОĐŊа ĐēОдŅŅŅŅŅŅ Ņ ŅĐžŅĐŧаŅŅ `multipart/form-data`. Đ¯ĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `File`, **FastAPI** виСĐŊаŅиŅŅ, ŅĐž ĐŋĐžŅŅŅĐąĐŊĐž ĐžŅŅиĐŧаŅи ŅаКĐģи С вŅĐ´ĐŋОвŅĐ´ĐŊĐžŅ ŅаŅŅиĐŊи ŅŅĐģа СаĐŋиŅŅ.
+
+ЊОй Đ´ŅСĐŊаŅиŅŅ ĐąŅĐģŅŅĐĩ ĐŋŅĐž ŅŅ ŅиĐŋи ĐēОдŅваĐŊĐŊŅ Ņа ŅĐžŅĐŧĐžĐ˛Ņ ĐŋĐžĐģŅ, ОСĐŊаКОĐŧŅĐĩŅŅ Đˇ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅŅ MDN ŅОдО POST.
+
+///
+
+/// warning | ĐŖĐ˛Đ°ĐŗĐ°
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв `File` Ņ `Form` в *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, аĐģĐĩ Đи ĐŊĐĩ ĐŧĐžĐļĐĩŅĐĩ ОдĐŊĐžŅаŅĐŊĐž ĐžĐŗĐžĐģĐžŅŅваŅи ĐŋĐžĐģŅ `Body`, ŅĐēŅ ĐŧаŅŅŅ ĐŊадŅ
ОдиŅи Ņ ŅĐžŅĐŧаŅŅ JSON, ĐžŅĐēŅĐģŅĐēи ŅŅĐģĐž СаĐŋиŅŅ ĐąŅĐ´Đĩ СаĐēОдОваĐŊĐĩ Ņ ŅĐžŅĐŧаŅŅ `multipart/form-data`, а ĐŊĐĩ `application/json`.
+
+ĐĻĐĩ ĐŊĐĩ ОйĐŧĐĩĐļĐĩĐŊĐŊŅ **FastAPI**, а ĐžŅОйĐģивŅŅŅŅ ĐŋŅĐžŅĐžĐēĐžĐģŅ HTTP.
+
+///
+
+## ĐĐŋŅŅĐžĐŊаĐģŅĐŊĐĩ ĐаваĐŊŅаĐļĐĩĐŊĐŊŅ Đ¤Đ°ĐšĐģŅв
+
+ФаКĐģ ĐŧĐžĐļĐŊа СŅОйиŅи ĐŊĐĩОйОвâŅСĐēОвиĐŧ, виĐēĐžŅиŅŅОвŅŅŅи ŅŅаĐŊдаŅŅĐŊŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅв Ņ Đ˛ŅŅаĐŊОвĐģŅŅŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `None`:
+
+{* ../../docs_src/request_files/tutorial001_02_an_py310.py hl[9,17] *}
+
+## `UploadFile` ŅС ĐОдаŅĐēОвиĐŧи ĐĐĩŅа ĐаĐŊиĐŧи
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `File()` ŅаСОĐŧ ŅС `UploadFile`, ĐŊаĐŋŅиĐēĐģад, Đ´ĐģŅ Đ˛ŅŅаĐŊОвĐģĐĩĐŊĐŊŅ Đ´ĐžĐ´Đ°ŅĐēОвиŅ
ĐŧĐĩŅадаĐŊиŅ
:
+
+{* ../../docs_src/request_files/tutorial001_03_an_py39.py hl[9,15] *}
+
+## ĐаваĐŊŅаĐļĐĩĐŊĐŊŅ ĐŅĐģŅĐēĐžŅ
ФаКĐģŅв
+
+ĐĐžĐļĐŊа СаваĐŊŅаĐļŅваŅи ĐēŅĐģŅĐēа ŅаКĐģŅв ОдĐŊĐžŅаŅĐŊĐž.
+
+ĐĐžĐŊи ĐąŅĐ´ŅŅŅ ĐŋОвâŅСаĐŊŅ Đˇ ОдĐŊиĐŧ Ņ ŅиĐŧ ŅаĐŧиĐŧ "form field", ŅĐēиК ĐŋĐĩŅĐĩдаŅŅŅŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ "form data".
+
+ЊОй ŅĐĩ ŅĐĩаĐģŅСŅваŅи, ĐŋĐžŅŅŅĐąĐŊĐž ĐžĐŗĐžĐģĐžŅиŅи ŅĐŋиŅĐžĐē `bytes` айО `UploadFile`:
+
+{* ../../docs_src/request_files/tutorial002_an_py39.py hl[10,15] *}
+
+Đи ĐžŅŅиĐŧаŅŅĐĩ, ŅĐē Ņ ĐąŅĐģĐž ĐžĐŗĐžĐģĐžŅĐĩĐŊĐž, `list` ŅС `bytes` айО `UploadFile`.
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `from starlette.responses import HTMLResponse`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅŅ Đļ ŅаĐŧŅ `starlette.responses`, ŅĐž Đš `fastapi.responses`, Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēŅв. ĐĐ´ĐŊаĐē ĐąŅĐģŅŅŅŅŅŅ Đ´ĐžŅŅŅĐŋĐŊиŅ
вŅĐ´ĐŋОвŅĐ´ĐĩĐš ĐŊадŅ
ОдŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž вŅĐ´ Starlette.
+
+///
+
+### ĐаваĐŊŅаĐļĐĩĐŊĐŊŅ Đ´ĐĩĐēŅĐģŅĐēĐžŅ
ŅаКĐģŅв ŅС дОдаŅĐēОвиĐŧи ĐŧĐĩŅадаĐŊиĐŧи
+
+ĐĸаĐē ŅаĐŧĐž ŅĐē Ņ ŅаĐŊŅŅĐĩ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `File()`, ŅОй вŅŅаĐŊОвиŅи дОдаŅĐēĐžĐ˛Ņ ĐŋаŅаĐŧĐĩŅŅи ĐŊавŅŅŅ Đ´ĐģŅ `UploadFile`:
+
+{* ../../docs_src/request_files/tutorial003_an_py39.py hl[11,18:20] *}
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ `File`, `bytes`Ņа `UploadFile`, ŅОй ĐžĐŗĐžĐģĐžŅŅваŅи ŅаКĐģи Đ´ĐģŅ ĐˇĐ°Đ˛Đ°ĐŊŅаĐļĐĩĐŊĐŊŅ Ņ ĐˇĐ°ĐŋиŅаŅ
, ŅĐēŅ ĐŊадŅиĐģаŅŅŅŅŅ Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ form data.
diff --git a/docs/uk/docs/tutorial/request-form-models.md b/docs/uk/docs/tutorial/request-form-models.md
new file mode 100644
index 0000000000..7f5759e79a
--- /dev/null
+++ b/docs/uk/docs/tutorial/request-form-models.md
@@ -0,0 +1,78 @@
+# ĐОдĐĩĐģŅ ŅĐžŅĐŧ (Form Models)
+
+ĐŖ FastAPI Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи **Pydantic-ĐŧОдĐĩĐģŅ** Đ´ĐģŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ **ĐŋĐžĐģŅв ŅĐžŅĐŧи**.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ЊОй виĐēĐžŅиŅŅОвŅваŅи ŅĐžŅĐŧи, ŅĐŋĐžŅаŅĐēŅ Đ˛ŅŅаĐŊОвŅŅŅ python-multipart.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи ŅŅвОŅиĐģи [вŅŅŅŅаĐģŅĐŊĐĩ ŅĐĩŅĐĩдОвиŅĐĩ](../virtual-environments.md){.internal-link target=_blank}, аĐēŅивŅваĐģи ĐšĐžĐŗĐž, а ĐŋĐžŅŅĐŧ вŅŅаĐŊОвиĐģи ĐąŅĐąĐģŅĐžŅĐĩĐēŅ, ĐŊаĐŋŅиĐēĐģад:
+
+```console
+$ pip install python-multipart
+```
+
+///
+
+/// note | ĐŅĐ´ĐēаСĐēа
+
+ĐĻŅ ŅŅĐŊĐēŅŅŅ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ, ĐŋĐžŅиĐŊаŅŅи С FastAPI вĐĩŅŅŅŅ `0.113.0`. đ¤
+
+///
+
+## ĐиĐēĐžŅиŅŅаĐŊĐŊŅ Pydantic-ĐŧОдĐĩĐģĐĩĐš Đ´ĐģŅ ŅĐžŅĐŧ
+
+ĐаĐŧ ĐŋŅĐžŅŅĐž ĐŋĐžŅŅŅĐąĐŊĐž ĐžĐŗĐžĐģĐžŅиŅи **Pydantic-ĐŧОдĐĩĐģŅ** С ĐŋĐžĐģŅĐŧи, ŅĐēŅ Đи Ņ
ĐžŅĐĩŅĐĩ ĐžŅŅиĐŧаŅи ŅĐē **ĐŋĐžĐģŅ ŅĐžŅĐŧи**, а ĐŋĐžŅŅĐŧ ĐžĐŗĐžĐģĐžŅиŅи ĐŋаŅаĐŧĐĩŅŅ ŅĐē `Form`:
+
+{* ../../docs_src/request_form_models/tutorial001_an_py39.py hl[9:11,15] *}
+
+**FastAPI** **виŅŅĐŗĐŊĐĩ** даĐŊŅ Đ´ĐģŅ **ĐēĐžĐļĐŊĐžĐŗĐž ĐŋĐžĐģŅ** С **ŅĐžŅĐŧОвиŅ
даĐŊиŅ
** Ņ ĐˇĐ°ĐŋиŅŅ Ņа ĐŊадаŅŅŅ Đ˛Đ°Đŧ Pydantic-ĐŧОдĐĩĐģŅ, ŅĐēŅ Đи виСĐŊаŅиĐģи.
+
+## ĐĐĩŅĐĩвŅŅĐēа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩвŅŅиŅи ŅĐĩ в UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐ° `/docs`:
+
+
+POST.
+
+///
+
+/// warning | ĐĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ĐēŅĐģŅĐēа ĐŋаŅаĐŧĐĩŅŅŅв `Form` в *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, аĐģĐĩ ĐŊĐĩ ĐŧĐžĐļĐĩŅĐĩ ОдĐŊĐžŅаŅĐŊĐž ĐžĐŗĐžĐģĐžŅиŅи ĐŋĐžĐģŅ `Body`, ŅĐēŅ Đи ĐžŅŅĐēŅŅŅĐĩ ĐžŅŅиĐŧаŅи Ņ ŅĐžŅĐŧаŅŅ JSON, ĐžŅĐēŅĐģŅĐēи ŅŅĐģĐž СаĐŋиŅŅ ĐąŅĐ´Đĩ СаĐēОдОваĐŊĐž Ņ ŅĐžŅĐŧаŅŅ `application/x-www-form-urlencoded`, а ĐŊĐĩ `application/json`.
+
+ĐĻĐĩ ĐŊĐĩ ОйĐŧĐĩĐļĐĩĐŊĐŊŅ **FastAPI**, а ŅаŅŅиĐŊа HTTP-ĐŋŅĐžŅĐžĐēĐžĐģŅ.
+
+///
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ `Form` Đ´ĐģŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ Đ˛Ņ
ŅĐ´ĐŊиŅ
ĐŋаŅаĐŧĐĩŅŅŅв Ņ Đ˛Đ¸ĐŗĐģŅĐ´Ņ Đ´Đ°ĐŊиŅ
ŅĐžŅĐŧи.
diff --git a/docs/uk/docs/tutorial/response-model.md b/docs/uk/docs/tutorial/response-model.md
new file mode 100644
index 0000000000..def1f8a2d5
--- /dev/null
+++ b/docs/uk/docs/tutorial/response-model.md
@@ -0,0 +1,358 @@
+# ĐОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ â ĐĸиĐŋ, ŅĐž ĐŋОвĐĩŅŅаŅŅŅŅŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ŅиĐŋ, ŅĐēиК виĐēĐžŅиŅŅОвŅваŅиĐŧĐĩŅŅŅŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ *аĐŊĐžŅаŅŅŅ ŅиĐŋŅ, ŅĐž ĐŋОвĐĩŅŅаŅŅŅŅŅ* *ŅŅĐŊĐēŅŅŅŅ ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ* (path operation)
+
+**ĐĐŊĐžŅаŅŅŅ ŅиĐŋŅ** ĐŧĐžĐļĐŊа вĐēаСаŅи ŅаĐē ŅаĐŧĐž ŅĐē Ņ Đ´ĐģŅ Đ˛Ņ
ŅĐ´ĐŊиŅ
**ĐŋаŅаĐŧĐĩŅŅŅв** ŅŅĐŊĐēŅŅŅ: ŅĐĩ ĐŧĐžĐļŅŅŅ ĐąŅŅи ĐŧОдĐĩĐģŅ Pydantic, ŅĐŋиŅĐēи (lists), ŅĐģОвĐŊиĐēи (dictionaries), ŅĐēаĐģŅŅĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, ŅĐē-ĐžŅ ŅŅĐģŅ ŅиŅĐģа (integers), ĐąŅĐģĐĩĐ˛Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ (booleans) ŅĐžŅĐž.
+
+{* ../../docs_src/response_model/tutorial001_01_py310.py hl[16,21] *}
+
+FastAPI виĐēĐžŅиŅŅОвŅваŅиĐŧĐĩ ŅĐĩĐš ŅиĐŋ, ŅОй:
+
+* **ĐĐĩŅĐĩвŅŅиŅи ĐŋŅавиĐģŅĐŊŅŅŅŅ** ĐŋОвĐĩŅĐŊĐĩĐŊиŅ
даĐŊиŅ
.
+ * Đ¯ĐēŅĐž даĐŊŅ ĐŊĐĩ ваĐģŅĐ´ĐŊŅ (ĐŊаĐŋŅиĐēĐģад, вŅĐ´ŅŅŅĐŊŅ ĐŋĐžĐģĐĩ), ŅĐĩ ОСĐŊаŅаŅ, ŅĐž ĐĐ°Ņ ĐēОд дОдаŅĐēŅ ĐŋŅаŅŅŅ ĐŊĐĩĐēĐžŅĐĩĐēŅĐŊĐž Ņ ĐŊĐĩ ĐŋОвĐĩŅŅĐ°Ņ ŅĐĩ, ŅĐž ĐŋОвиĐŊĐĩĐŊ. ĐŖ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ FastAPI ĐŋОвĐĩŅĐŊĐĩ ĐŋĐžĐŧиĐģĐēŅ ŅĐĩŅвĐĩŅа, СаĐŧŅŅŅŅ ŅĐžĐŗĐž ŅОй вŅддаŅи ĐŊĐĩĐ´ĐžĐŋŅŅŅиĐŧŅ Đ´Đ°ĐŊŅ. ĐĸаĐē Đи Ņа ĐаŅŅ ĐēĐģŅŅĐŊŅи ĐąŅĐ´ĐĩŅĐĩ вĐŋĐĩвĐŊĐĩĐŊŅ, ŅĐž ĐžŅŅиĐŧŅŅŅĐĩ ĐžŅŅĐēŅваĐŊŅ Đ´Đ°ĐŊŅ Ņ ĐŋŅавиĐģŅĐŊĐžĐŧŅ ŅĐžŅĐŧаŅŅ.
+
+* ĐОдаŅи **JSON Schema** вŅĐ´ĐŋОвŅĐ´Ņ Đ´Đž ŅĐŋĐĩŅиŅŅĐēаŅŅŅ OpenAPI в *ĐžĐŋĐĩŅаŅŅŅŅ
ŅĐģŅŅ
Ņ*.
+ * ĐĻĐĩ ĐąŅĐ´Đĩ виĐēĐžŅиŅŅаĐŊĐž в **авŅĐžĐŧаŅиŅĐŊŅĐš Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ**.
+ * Đ ŅаĐēĐžĐļ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅаĐŧи, ŅĐēŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž ĐŗĐĩĐŊĐĩŅŅŅŅŅ ĐēĐģŅŅĐŊŅŅŅĐēиК ĐēОд.
+
+ĐĐģĐĩ ĐŊĐ°ĐšĐŗĐžĐģОвĐŊŅŅĐĩ:
+
+* FastAPI **ОйĐŧĐĩĐļиŅŅ Ņа вŅĐ´ŅŅĐģŅŅŅŅŅ** виŅ
ŅĐ´ĐŊŅ Đ´Đ°ĐŊŅ Đ˛ŅĐ´ĐŋОвŅĐ´ĐŊĐž Đ´Đž ŅиĐŋŅ, вĐēаСаĐŊĐžĐŗĐž Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+ * ĐĻĐĩ ĐžŅОйĐģивО ваĐļĐģивО Đ´ĐģŅ **ĐąĐĩСĐŋĐĩĐēи**. ĐĐĩŅаĐģŅ ĐŊиĐļŅĐĩ.
+
+## ĐаŅаĐŧĐĩŅŅ `response_model`
+
+ĐĐŊĐžĐ´Ņ ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž айО СŅŅŅĐŊĐž ĐŋОвĐĩŅŅаŅи ŅĐŊŅŅ ŅиĐŋи даĐŊиŅ
, ĐŊŅĐļ ŅŅ, ŅĐž СаСĐŊаŅĐĩĐŊŅ ŅĐē ŅиĐŋ вŅĐ´ĐŋОвŅĐ´Ņ.
+
+ĐаĐŋŅиĐēĐģад, Đи ĐŧĐžĐļĐĩŅĐĩ **ĐŋОвĐĩŅŅаŅи ŅĐģОвĐŊиĐē** айО ОйâŅĐēŅ ĐąĐ°ĐˇĐ¸ даĐŊиŅ
, аĐģĐĩ **ĐžĐŗĐžĐģĐžŅиŅи ĐŧОдĐĩĐģŅ Pydantic** ŅĐē ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ. ĐĸĐžĐ´Ņ ĐŧОдĐĩĐģŅ Pydantic авŅĐžĐŧаŅиŅĐŊĐž ОйŅОйĐģŅŅиĐŧĐĩ ваĐģŅдаŅŅŅ, Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ŅĐžŅĐž.
+
+Đ¯ĐēŅĐž Đи дОдаŅŅĐĩ аĐŊĐžŅаŅŅŅ ŅиĐŋŅ Đ´ĐģŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ, ŅĐĩдаĐēŅĐžŅ ĐēĐžĐ´Ņ Đ°ĐąĐž mypy ĐŧĐžĐļŅŅŅ ĐŋĐžŅĐēаŅĐļиŅиŅŅ, ŅĐž ŅŅĐŊĐēŅŅŅ ĐŋОвĐĩŅŅĐ°Ņ ŅĐŊŅиК ŅиĐŋ (ĐŊаĐŋŅиĐēĐģад, dict СаĐŧŅŅŅŅ Item).
+
+ĐŖ ŅаĐēиŅ
виĐŋадĐēаŅ
ĐŧĐžĐļĐŊа ŅĐēĐžŅиŅŅаŅиŅŅ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ `response_model` в Đ´ĐĩĐēĐžŅаŅĐžŅŅ ĐŧаŅŅŅŅŅŅ (ĐŊаĐŋŅиĐēĐģад, @app.get()).
+
+ĐаŅаĐŧĐĩŅŅ `response_model` ĐŋŅаŅŅŅ Đˇ ĐąŅĐ´Ņ-ŅĐēиĐŧ *ĐžĐŋĐĩŅаŅĐžŅĐžĐŧ ŅĐģŅŅ
Ņ*:
+
+* `@app.get()`
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+* ŅĐžŅĐž.
+
+{* ../../docs_src/response_model/tutorial001_py310.py hl[17,22,24:27] *}
+
+/// note | ĐŅиĐŧŅŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž `response_model` Ņ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ ĐŧĐĩŅОдŅ-Đ´ĐĩĐēĐžŅаŅĐžŅа (`get`, `post`, ŅĐžŅĐž), а ĐŊĐĩ *ŅŅĐŊĐēŅŅŅŅ ĐžĐŋĐĩŅаŅŅŅŅ ŅĐģŅŅ
Ņ* (path operation function), ŅĐē ŅĐĩ ŅОйиŅŅŅŅ Đˇ ĐŋаŅаĐŧĐĩŅŅаĐŧи айО ŅŅĐģĐžĐŧ СаĐŋиŅŅ.
+
+///
+
+`response_model` ĐŋŅиКĐŧĐ°Ņ ŅаĐēиК ŅаĐŧиК ŅиĐŋ, ŅĐēиК Đи Đą вĐēаСаĐģи Đ´ĐģŅ ĐŋĐžĐģŅ ĐŧОдĐĩĐģŅ Pydantic. ĐĸОйŅĐž ŅĐĩ ĐŧĐžĐļĐĩ ĐąŅŅи ŅĐē Pydantic-ĐŧОдĐĩĐģŅ, ŅаĐē Ņ, ĐŊаĐŋŅиĐēĐģад, `list` ŅС ĐŧОдĐĩĐģĐĩĐš Pydantic â `List[Item]`.
+
+FastAPI виĐēĐžŅиŅŅОвŅваŅиĐŧĐĩ `response_model` Đ´ĐģŅ ŅŅвОŅĐĩĐŊĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ваĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
Ņа â ĐŊаКваĐļĐģивŅŅĐĩ â **ĐŋĐĩŅĐĩŅвОŅĐĩĐŊĐŊŅ Ņа ŅŅĐģŅŅŅаŅŅŅ Đ˛Đ¸Ņ
ŅĐ´ĐŊиŅ
даĐŊиŅ
** ĐˇĐŗŅĐ´ĐŊĐž С ĐžĐŗĐžĐģĐžŅĐĩĐŊиĐŧ ŅиĐŋĐžĐŧ.
+
+/// tip | ĐĐžŅада
+
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ ŅвŅĐŧĐēĐŊĐĩĐŊĐž ŅŅвОŅŅ ĐŋĐĩŅĐĩвŅŅĐēŅ ŅиĐŋŅв Ņ ŅĐĩдаĐēŅĐžŅŅ, mypy ŅĐžŅĐž, Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ŅŅĐŊĐēŅŅŅ ŅĐē `Any`.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, Đи ĐŋОвŅĐ´ĐžĐŧĐģŅŅŅĐĩ ŅĐĩдаĐēŅĐžŅŅ, ŅĐž ŅвŅĐ´ĐžĐŧĐž ĐŋОвĐĩŅŅаŅŅĐĩ ĐąŅĐ´Ņ-ŅĐž. ĐĐģĐĩ FastAPI ŅŅĐĩ ОдĐŊĐž виĐēĐžĐŊŅваŅиĐŧĐĩ ŅŅвОŅĐĩĐŊĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ваĐģŅдаŅŅŅ, ŅŅĐģŅŅŅаŅŅŅ ŅĐžŅĐž Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `response_model`.
+
+///
+
+### ĐŅŅĐžŅиŅĐĩŅ `response_model`
+
+Đ¯ĐēŅĐž Đи вĐēаСŅŅŅĐĩ Ņ ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ, Ņ `response_model`, ŅĐž FastAPI виĐēĐžŅиŅŅОвŅваŅиĐŧĐĩ `response_model` С ĐŋŅŅĐžŅиŅĐĩŅĐžĐŧ.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, Đи ĐŧĐžĐļĐĩŅĐĩ дОдаŅи ĐŋŅавиĐģŅĐŊŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅв Đ´Đž ваŅиŅ
ŅŅĐŊĐēŅŅĐš, ĐŊавŅŅŅ ŅĐēŅĐž вОĐŊи ĐŋОвĐĩŅŅаŅŅŅ ŅиĐŋ, вŅĐ´ĐŧŅĐŊĐŊиК вŅĐ´ `response_model`. ĐĻĐĩ ĐąŅĐ´Đĩ ĐēĐžŅиŅĐŊĐž Đ´ĐģŅ ŅĐĩдаĐēŅĐžŅŅв ĐēĐžĐ´Ņ Ņа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв, ŅаĐēиŅ
ŅĐē mypy. Đ ĐŋŅи ŅŅĐžĐŧŅ FastAPI ĐŋŅОдОвĐļиŅŅ Đ˛Đ¸ĐēĐžĐŊŅваŅи ваĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
, ĐŗĐĩĐŊĐĩŅŅваŅи Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ŅĐžŅĐž ĐŊа ĐžŅĐŊĐžĐ˛Ņ `response_model`.
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `response_model=None`, ŅОй виĐŧĐēĐŊŅŅи ŅŅвОŅĐĩĐŊĐŊŅ ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ Đ´ĐģŅ ŅŅŅŅ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*. ĐĻĐĩ ĐŧĐžĐļĐĩ СĐŊадОйиŅиŅŅ, ŅĐēŅĐž Đи дОдаŅŅĐĩ аĐŊĐžŅаŅŅŅ ŅиĐŋŅв Đ´Đž Ой'ŅĐēŅŅв, ŅĐēŅ ĐŊĐĩ Ņ Đ´ĐžĐŋŅŅŅиĐŧиĐŧи ĐŋĐžĐģŅĐŧи Pydantic â ĐŋŅиĐēĐģад ŅŅĐžĐŗĐž Đи ĐŋОйаŅиŅĐĩ в ОдĐŊĐžĐŧŅ Đˇ ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģŅв.
+
+## ĐОвĐĩŅĐŊŅŅи ŅŅ ŅаĐŧŅ Đ˛Ņ
ŅĐ´ĐŊŅ Đ´Đ°ĐŊŅ
+
+ĐĸŅŅ Đŧи ĐžĐŗĐžĐģĐžŅŅŅĐŧĐž ĐŧОдĐĩĐģŅ `UserIn`, ŅĐēа ĐŧŅŅŅиŅŅ ĐˇĐ˛Đ¸ŅаКĐŊиК ŅĐĩĐēŅŅОвиК ĐŋаŅĐžĐģŅ:
+
+{* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *}
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ЊОй виĐēĐžŅиŅŅОвŅваŅи `EmailStr`, ŅĐŋĐžŅаŅĐēŅ Đ˛ŅŅаĐŊОвŅŅŅ `email-validator`.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи ŅŅвОŅиĐģи [вŅŅŅŅаĐģŅĐŊĐĩ ŅĐĩŅĐĩдОвиŅĐĩ](../virtual-environments.md){.internal-link target=_blank}, аĐēŅивŅваĐģи ĐšĐžĐŗĐž, а ĐŋĐžŅŅĐŧ вŅŅаĐŊОвиĐģи ĐŋаĐēĐĩŅ, ĐŊаĐŋŅиĐēĐģад:
+
+```console
+$ pip install email-validator
+```
+
+or with:
+
+```console
+$ pip install "pydantic[email]"
+```
+
+///
+
+Đ Đŧи виĐēĐžŅиŅŅОвŅŅĐŧĐž ŅŅ ĐŧОдĐĩĐģŅ, ŅОй ĐžĐŗĐžĐģĐžŅиŅи Ņ Đ˛Ņ
ŅĐ´ĐŊŅ, Ņ Đ˛Đ¸Ņ
ŅĐ´ĐŊŅ Đ´Đ°ĐŊŅ:
+
+{* ../../docs_src/response_model/tutorial002_py310.py hl[16] *}
+
+ĐĸĐĩĐŋĐĩŅ, ĐēĐžĐģи ĐąŅаŅСĐĩŅ ŅŅвОŅŅŅ ĐēĐžŅиŅŅŅваŅа С ĐŋаŅĐžĐģĐĩĐŧ, API ĐŋОвĐĩŅĐŊĐĩ ŅОК ŅаĐŧиК ĐŋаŅĐžĐģŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ ŅĐĩ ĐŧĐžĐļĐĩ ĐŊĐĩ ĐąŅŅи ĐŋŅОйĐģĐĩĐŧĐžŅ, адĐļĐĩ ŅаĐŧĐĩ ĐēĐžŅиŅŅŅĐ˛Đ°Ņ ĐŊадŅŅĐģав ĐŋаŅĐžĐģŅ.
+
+ĐĐģĐĩ ŅĐēŅĐž Đŧи виĐēĐžŅиŅŅаŅĐŧĐž ŅŅ Đļ ĐŧОдĐĩĐģŅ Đ´ĐģŅ ŅĐŊŅĐžŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ, Đŧи ĐŧĐžĐļĐĩĐŧĐž виĐŋадĐēОвО ĐŊадŅŅĐģаŅи ĐŋаŅĐžĐģŅ ĐŊаŅиŅ
ĐēĐžŅиŅŅŅваŅŅв ĐēĐžĐļĐŊĐžĐŧŅ ĐēĐģŅŅĐŊŅŅ.
+
+/// danger | ĐĐąĐĩŅĐĩĐļĐŊĐž
+
+ĐŅĐēĐžĐģи ĐŊĐĩ СйĐĩŅŅĐŗĐ°ĐšŅĐĩ ĐŋаŅĐžĐģŅ ĐēĐžŅиŅŅŅваŅа Ņ Đ˛ŅĐ´ĐēŅиŅĐžĐŧŅ Đ˛Đ¸ĐŗĐģŅĐ´Ņ Ņа ĐŊĐĩ ĐŊадŅиĐģаКŅĐĩ ĐšĐžĐŗĐž Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, ŅĐēŅĐž ŅŅĐģŅĐēи Đи ĐŊĐĩ СĐŊаŅŅĐĩ вŅŅ ŅиСиĐēи Ņ ŅĐžŅĐŊĐž ŅОСŅĐŧŅŅŅĐĩ, ŅĐž ŅОйиŅĐĩ.
+
+///
+
+## ĐОдаКŅĐĩ ĐžĐēŅĐĩĐŧŅ Đ˛Đ¸Ņ
ŅĐ´ĐŊŅ ĐŧОдĐĩĐģŅ
+
+ĐаĐŧŅŅŅŅ ŅŅĐžĐŗĐž Đŧи ĐŧĐžĐļĐĩĐŧĐž ŅŅвОŅиŅи вŅ
ŅĐ´ĐŊŅ ĐŧОдĐĩĐģŅ Đˇ вŅĐ´ĐēŅиŅиĐŧ ĐŋаŅĐžĐģĐĩĐŧ Ņ Đ˛Đ¸Ņ
ŅĐ´ĐŊŅ ĐŧОдĐĩĐģŅ ĐąĐĩС ĐŊŅĐžĐŗĐž:
+
+{* ../../docs_src/response_model/tutorial003_py310.py hl[9,11,16] *}
+
+ĐĸŅŅ, ĐŊавŅŅŅ ŅĐēŅĐž *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* ĐŋОвĐĩŅŅĐ°Ņ ĐžĐą'ŅĐēŅ ĐēĐžŅиŅŅŅваŅа, ŅĐēиК ĐŧŅŅŅиŅŅ ĐŋаŅĐžĐģŅ:
+
+{* ../../docs_src/response_model/tutorial003_py310.py hl[24] *}
+
+...Đŧи ĐžĐŗĐžĐģĐžŅиĐģи `response_model` ŅĐē ĐŊаŅŅ ĐŧОдĐĩĐģŅ `UserOut`, ŅĐēа ĐŊĐĩ ĐŧŅŅŅиŅŅ ĐŋаŅĐžĐģŅ:
+
+{* ../../docs_src/response_model/tutorial003_py310.py hl[22] *}
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, **FastAPI** авŅĐžĐŧаŅиŅĐŊĐž вŅĐ´ŅŅĐģŅŅŅŅŅ Đ˛ŅŅ Đ´Đ°ĐŊŅ, ŅĐēŅ ĐŊĐĩ вĐēаСаĐŊŅ Ņ Đ˛Đ¸Ņ
ŅĐ´ĐŊŅĐš ĐŧОдĐĩĐģŅ (Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ Pydantic).
+
+### `response_model` айО ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ
+
+ĐŖ ŅŅĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ, ĐžŅĐēŅĐģŅĐēи Đ´Đ˛Ņ ĐŧОдĐĩĐģŅ ŅŅСĐŊŅ, ŅĐēŅĐž Đŧи аĐŊĐžŅŅŅĐŧĐž ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ŅŅĐŊĐēŅŅŅ ŅĐē `UserOut`, ŅĐĩдаĐēŅĐžŅ Ņ ŅаĐēŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи, ŅĐē mypy, видадŅŅŅ ĐŋĐžĐŧиĐģĐēŅ, йО ŅаĐēŅиŅĐŊĐž Đŧи ĐŋОвĐĩŅŅаŅĐŧĐž ŅĐŊŅиК ŅиĐŋ.
+
+ĐĸĐžĐŧŅ Đ˛ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģĐ°Đ´Ņ Đŧи виĐēĐžŅиŅŅОвŅŅĐŧĐž ĐŋаŅаĐŧĐĩŅŅ `response_model`, а ĐŊĐĩ аĐŊĐžŅаŅŅŅ ŅиĐŋŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ.
+
+...аĐģĐĩ ŅиŅаКŅĐĩ даĐģŅ, ŅОй Đ´ŅСĐŊаŅиŅŅ, ŅĐē ОйŅĐšŅи ŅĐĩ ОйĐŧĐĩĐļĐĩĐŊĐŊŅ.
+
+## ĐĸиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ Ņ ŅŅĐģŅŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
+
+ĐŅОдОвĐļиĐŧĐž С ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐžĐŗĐž ĐŋŅиĐēĐģадŅ. Đи Ņ
ĐžŅŅĐģи **аĐŊĐžŅŅваŅи ŅŅĐŊĐēŅŅŅ ĐžĐ´ĐŊиĐŧ ŅиĐŋĐžĐŧ**, аĐģĐĩ ĐŋŅи ŅŅĐžĐŧŅ ĐŋОвĐĩŅŅаŅи С ĐŊĐĩŅ ĐąŅĐģŅŅĐĩ даĐŊиŅ
.
+
+Đи Ņ
ĐžŅĐĩĐŧĐž, ŅОй FastAPI ĐŋŅОдОвĐļŅвав **ŅŅĐģŅŅŅŅваŅи** ŅŅ Đ´Đ°ĐŊŅ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ response_model. ĐĸОйŅĐž ĐŊавŅŅŅ ŅĐēŅĐž ŅŅĐŊĐēŅŅŅ ĐŋОвĐĩŅŅĐ°Ņ ĐąŅĐģŅŅĐĩ ŅĐŊŅĐžŅĐŧаŅŅŅ, Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐąŅĐ´ŅŅŅ ĐģиŅĐĩ ŅŅ ĐŋĐžĐģŅ, ŅĐēŅ Đ˛ĐēаСаĐŊŅ Ņ response_model.
+
+ĐŖ ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ, ĐžŅĐēŅĐģŅĐēи ĐēĐģаŅи ĐąŅĐģи ŅŅСĐŊŅ, ĐŊаĐŧ дОвĐĩĐģĐžŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваŅи ĐŋаŅаĐŧĐĩŅŅ `response_model`. ĐĐģĐĩ ŅĐĩ ОСĐŊаŅаŅ, ŅĐž Đŧи ĐŊĐĩ ĐžŅŅиĐŧŅŅĐŧĐž ĐŋŅĐ´ŅŅиĐŧĐēи С йОĐēŅ ŅĐĩдаĐēŅĐžŅа ĐēĐžĐ´Ņ Ņа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв ĐŋĐĩŅĐĩвŅŅĐēи ŅиĐŋŅв ŅОдО ŅиĐŋŅ, ŅĐēиК ĐŋОвĐĩŅŅĐ°Ņ ŅŅĐŊĐēŅŅŅ.
+
+ĐŅĐžŅĐĩ в ĐąŅĐģŅŅĐžŅŅŅ Đ˛Đ¸ĐŋадĐēŅв, ĐēĐžĐģи ĐŊаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž СŅОйиŅи ŅĐžŅŅ ĐŋОдŅĐąĐŊĐĩ, Đŧи ĐŋŅĐžŅŅĐž Ņ
ĐžŅĐĩĐŧĐž, ŅОй ĐŧОдĐĩĐģŅ **вŅĐ´ŅŅĐģŅŅŅŅваĐģа айО ĐŋŅийŅаĐģа** ŅаŅŅиĐŊŅ Đ´Đ°ĐŊиŅ
, ŅĐē Ņ ŅŅĐžĐŧŅ ĐŋŅиĐēĐģадŅ.
+
+ĐŖ ŅаĐēиŅ
виĐŋадĐēаŅ
Đŧи ĐŧĐžĐļĐĩĐŧĐž виĐēĐžŅиŅŅаŅи ĐēĐģаŅи Ņа ŅĐŋадĐēŅваĐŊĐŊŅ, ŅОй ŅĐēĐžŅиŅŅаŅиŅŅ **аĐŊĐžŅаŅŅŅĐŧи ŅиĐŋŅв** ŅŅĐŊĐēŅŅĐš â ŅĐĩ Đ´Đ°Ņ ĐēŅаŅŅ ĐŋŅĐ´ŅŅиĐŧĐēŅ Đˇ йОĐēŅ ŅĐĩдаĐēŅĐžŅа Ņа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв ŅиĐŋŅ mypy, Ņ ĐŋŅи ŅŅĐžĐŧŅ FastAPI ĐŋŅОдОвĐļŅŅ Đ˛Đ¸ĐēĐžĐŊŅваŅи **ŅŅĐģŅŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
** Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+
+{* ../../docs_src/response_model/tutorial003_01_py310.py hl[7:10,13:14,18] *}
+
+ĐавдŅĐēи ŅŅĐžĐŧŅ Đŧи ĐžŅŅиĐŧŅŅĐŧĐž ĐŋŅĐ´ŅŅиĐŧĐēŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв â вŅĐ´ ŅĐĩдаĐēŅĐžŅŅв Ņ mypy, ĐžŅĐēŅĐģŅĐēи ŅĐĩĐš ĐēОд Ņ ĐēĐžŅĐĩĐēŅĐŊиĐŧ С ŅĐžŅĐēи СОŅŅ ŅиĐŋŅв, â аĐģĐĩ Đŧи ŅаĐēĐžĐļ ĐžŅŅиĐŧŅŅĐŧĐž ŅŅĐģŅŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
вŅĐ´ FastAPI.
+
+Đ¯Đē ŅĐĩ ĐŋŅаŅŅŅ? ĐаваКŅĐĩ ŅОСйĐĩŅĐĩĐŧĐžŅŅ. đ¤
+
+### ĐĸиĐŋи Ņа ĐŋŅĐ´ŅŅиĐŧĐēа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв
+
+ĐĄĐŋĐĩŅŅŅ ĐŋОдивиĐŧĐžŅŅ, ŅĐē ŅĐĩ йаŅаŅŅ ŅĐĩдаĐēŅĐžŅи, mypy Ņа ŅĐŊŅŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи.
+
+`BaseUser` ĐŧĐ°Ņ ĐąĐ°ĐˇĐžĐ˛Ņ ĐŋĐžĐģŅ. ĐĐžŅŅĐŧ `UserIn` ŅŅĐŋадĐēОвŅŅ `BaseUser` Ņ Đ´ĐžĐ´Đ°Ņ ĐŋĐžĐģĐĩ `password`, ĐžŅĐļĐĩ, вŅĐŊ ĐŧаŅиĐŧĐĩ вŅŅ ĐŋĐžĐģŅ Đˇ ОйОŅ
ĐŧОдĐĩĐģĐĩĐš.
+
+Đи СаСĐŊаŅаŅĐŧĐž ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ŅŅĐŊĐēŅŅŅ ŅĐē `BaseUser`, аĐģĐĩ ŅаĐēŅиŅĐŊĐž ĐŋОвĐĩŅŅаŅĐŧĐž ĐĩĐēСĐĩĐŧĐŋĐģŅŅ `UserIn`.
+
+Đ ĐĩдаĐēŅĐžŅ, mypy Ņа ŅĐŊŅŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи ĐŊĐĩ ŅĐēаŅĐļиŅиĐŧŅŅŅŅŅ ĐŊа ŅĐĩ, ŅĐžĐŧŅ ŅĐž С ŅĐžŅĐēи СОŅŅ ŅиĐŋŅСаŅŅŅ `UserIn` Ņ ĐŋŅĐ´ĐēĐģаŅĐžĐŧ `BaseUser`, а ŅĐĩ ОСĐŊаŅаŅ, ŅĐž вŅĐŊ Ņ `ваĐģŅĐ´ĐŊиĐŧ` ŅиĐŋĐžĐŧ, ĐēĐžĐģи ĐžŅŅĐēŅŅŅŅŅŅ ĐąŅĐ´Ņ-ŅĐž, ŅĐž Ņ `BaseUser`.
+
+### ФŅĐģŅŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
Ņ FastAPI
+
+ĐĸĐĩĐŋĐĩŅ Đ´ĐģŅ FastAPI вŅĐŊ йаŅиŅŅ ŅиĐŋ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ Ņ ĐŋĐĩŅĐĩĐēĐžĐŊŅŅŅŅŅŅ, ŅĐž ŅĐĩ, ŅĐž Đи ĐŋОвĐĩŅŅаŅŅĐĩ, ĐŧŅŅŅиŅŅ **ŅŅĐģŅĐēи** ĐŋĐžĐģŅ, ŅĐēŅ ĐžĐŗĐžĐģĐžŅĐĩĐŊŅ Ņ ŅŅĐžĐŧŅ ŅиĐŋŅ.
+
+FastAPI виĐēĐžĐŊŅŅ ĐēŅĐģŅĐēа вĐŊŅŅŅŅŅĐŊŅŅ
ĐžĐŋĐĩŅаŅŅĐš С Pydantic, ŅОй ĐŗĐ°ŅаĐŊŅŅваŅи, ŅĐž ĐŋŅавиĐģа ĐŊаŅĐģŅĐ´ŅваĐŊĐŊŅ ĐēĐģаŅŅв ĐŊĐĩ СаŅŅĐžŅОвŅŅŅŅŅŅ Đ´ĐģŅ ŅŅĐģŅŅŅаŅŅŅ ĐŋОвĐĩŅĐŊĐĩĐŊиŅ
даĐŊиŅ
, ŅĐŊаĐēŅĐĩ Đи ĐŧĐžĐŗĐģи Đą ĐŋОвĐĩŅĐŊŅŅи СĐŊаŅĐŊĐž ĐąŅĐģŅŅĐĩ даĐŊиŅ
, ĐŊŅĐļ ĐžŅŅĐēŅваĐģи.
+
+ĐĸаĐēиĐŧ ŅиĐŊĐžĐŧ, Đи ĐžŅŅиĐŧŅŅŅĐĩ ĐŊаКĐēŅаŅĐĩ С двОŅ
ŅвŅŅŅв: аĐŊĐžŅаŅŅŅ ŅиĐŋŅв **С ĐŋŅĐ´ŅŅиĐŧĐēĐžŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв** Ņ **ŅŅĐģŅŅŅаŅŅŅ Đ´Đ°ĐŊиŅ
**.
+
+## ĐОдивиŅиŅŅ Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+ĐĐžĐģи Đи дивиŅĐĩŅŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋОйаŅиŅи, ŅĐž вŅ
ŅĐ´ĐŊа ĐŧОдĐĩĐģŅ Ņ Đ˛Đ¸Ņ
ŅĐ´ĐŊа ĐŧОдĐĩĐģŅ ĐŧаŅŅŅ Đ˛ĐģаŅĐŊŅ JSON-ŅŅ
ĐĩĐŧŅ:
+
+
+
+Đ ĐžĐąĐ¸Đ´Đ˛Ņ ĐŧОдĐĩĐģŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ´ĐģŅ ŅĐŊŅĐĩŅаĐēŅивĐŊĐžŅ API-Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ:
+
+
+
+## ĐĐŊŅŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅв ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ
+
+ĐŅĐŊŅŅŅŅ Đ˛Đ¸ĐŋадĐēи, ĐēĐžĐģи Đи ĐŋОвĐĩŅŅаŅŅĐĩ ŅĐžŅŅ, ŅĐž ĐŊĐĩ Ņ Đ´ĐžĐŋŅŅŅиĐŧиĐŧ ĐŋĐžĐģĐĩĐŧ Pydantic, аĐģĐĩ аĐŊĐžŅŅŅŅĐĩ ŅĐĩ Ņ ŅŅĐŊĐēŅŅŅ ĐģиŅĐĩ Đ´ĐģŅ ŅĐžĐŗĐž, ŅОй ĐžŅŅиĐŧаŅи ĐŋŅĐ´ŅŅиĐŧĐēŅ Đ˛ŅĐ´ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв (ŅĐĩдаĐēŅĐžŅа, mypy ŅĐžŅĐž).
+
+### ĐОвĐĩŅĐŊĐĩĐŊĐŊŅ Response ĐŊаĐŋŅŅĐŧŅ
+
+ĐаКĐŋĐžŅиŅĐĩĐŊŅŅиĐŧ виĐŋадĐēĐžĐŧ ĐąŅĐ´Đĩ [ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ Response ĐŊаĐŋŅŅĐŧŅ, ŅĐē ĐŋĐžŅŅĐŊŅŅŅŅŅŅ ĐŋŅСĐŊŅŅĐĩ Ņ ŅОСŅиŅĐĩĐŊŅĐš Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ](../advanced/response-directly.md){.internal-link target=_blank}.
+
+{* ../../docs_src/response_model/tutorial003_02.py hl[8,10:11] *}
+
+ĐĻĐĩĐš ĐŋŅĐžŅŅиК виĐŋадОĐē авŅĐžĐŧаŅиŅĐŊĐž ОйŅОйĐģŅŅŅŅŅŅ FastAPI, ŅĐžĐŧŅ ŅĐž аĐŊĐžŅаŅŅŅ ŅиĐŋŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ â ŅĐĩ ĐēĐģĐ°Ņ (айО ĐŋŅĐ´ĐēĐģаŅ) `Response`.
+
+Đ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи ŅаĐēĐžĐļ ĐąŅĐ´ŅŅŅ ĐˇĐ°Đ´ĐžĐ˛ĐžĐģĐĩĐŊŅ, йО Ņ `RedirectResponse`, Ņ `JSONResponse` Ņ ĐŋŅĐ´ĐēĐģаŅаĐŧи `Response`, ĐžŅĐļĐĩ аĐŊĐžŅаŅŅŅ ŅиĐŋŅ ĐēĐžŅĐĩĐēŅĐŊа.
+
+### ĐĐŊĐžŅаŅŅŅ ĐŋŅĐ´ĐēĐģаŅŅ Response
+
+ĐĸаĐēĐžĐļ ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи ĐŋŅĐ´ĐēĐģĐ°Ņ `Response` Ņ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅ:
+
+{* ../../docs_src/response_model/tutorial003_03.py hl[8:9] *}
+
+ĐĻĐĩ ŅĐĩĐļ ĐŋŅаŅŅваŅиĐŧĐĩ, йО `RedirectResponse` â ĐŋŅĐ´ĐēĐģĐ°Ņ `Response`, Ņ FastAPI авŅĐžĐŧаŅиŅĐŊĐž ОйŅОйиŅŅ ŅĐĩĐš ĐŋŅĐžŅŅиК виĐŋадОĐē.
+
+### ĐĐĩĐēĐžŅĐĩĐēŅĐŊŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ
+
+ĐĐģĐĩ ĐēĐžĐģи Đи ĐŋОвĐĩŅŅаŅŅĐĩ ŅĐēиКŅŅ ŅĐŊŅиК дОвŅĐģŅĐŊиК ОйâŅĐēŅ, ŅĐž ĐŊĐĩ Ņ Đ˛Đ°ĐģŅĐ´ĐŊиĐŧ ŅиĐŋĐžĐŧ Pydantic (ĐŊаĐŋŅиĐēĐģад, ОйâŅĐēŅ ĐąĐ°ĐˇĐ¸ даĐŊиŅ
), Ņ Đ°ĐŊĐžŅŅŅŅĐĩ ĐšĐžĐŗĐž ŅаĐē Ņ ŅŅĐŊĐēŅŅŅ, FastAPI ŅĐŋŅОйŅŅ ŅŅвОŅиŅи Pydantic ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐŊа ĐžŅĐŊĐžĐ˛Ņ ŅŅŅŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅ, Ņ ŅĐĩ СавĐĩŅŅиŅŅŅŅ ĐŋĐžĐŧиĐģĐēĐžŅ.
+
+ĐĸĐĩ ŅаĐŧĐĩ ŅŅаĐŊĐĩŅŅŅŅ, ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ union ĐŧŅĐļ ŅŅСĐŊиĐŧи ŅиĐŋаĐŧи, Đ´Đĩ ОдиĐŊ айО ĐąŅĐģŅŅĐĩ ĐŊĐĩ Ņ Đ˛Đ°ĐģŅĐ´ĐŊиĐŧи ŅиĐŋаĐŧи Pydantic, ĐŊаĐŋŅиĐēĐģад, ŅĐĩ ŅĐŋŅиŅиĐŊиŅŅ ĐŋĐžĐŧиĐģĐēŅ đĨ:
+
+{* ../../docs_src/response_model/tutorial003_04_py310.py hl[8] *}
+
+...ŅĐĩ ĐŊĐĩ ĐŋŅаŅŅŅ, ŅĐžĐŧŅ ŅĐž ŅиĐŋ аĐŊĐžŅаŅŅŅ ĐŊĐĩ Ņ ŅиĐŋĐžĐŧ Pydantic Ņ ĐŊĐĩ Ņ ĐŋŅĐžŅŅĐž ĐēĐģаŅĐžĐŧ `Response` айО ĐšĐžĐŗĐž ĐŋŅĐ´ĐēĐģаŅĐžĐŧ, а Ņ ĐžĐąâŅĐ´ĐŊаĐŊĐŊŅĐŧ (union) â айО `Response`, айО `dict`.
+
+### ĐŅĐ´ĐēĐģŅŅĐĩĐŊĐŊŅ ĐОдĐĩĐģŅ ĐŅĐ´ĐŋОвŅĐ´Ņ
+
+ĐŅОдОвĐļŅŅŅи ĐŋŅиĐēĐģад виŅĐĩ, ĐŧĐžĐļĐģивО, Đи ĐŊĐĩ Ņ
ĐžŅĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ŅŅаĐŊдаŅŅĐŊŅ Đ˛Đ°ĐģŅдаŅŅŅ Đ´Đ°ĐŊиŅ
, авŅĐžĐŧаŅиŅĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ŅŅĐģŅŅŅаŅŅŅ ŅĐžŅĐž, ŅĐēŅ FastAPI виĐēĐžĐŊŅŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+ĐĐģĐĩ ви вŅĐĩ ОдĐŊĐž ĐŧĐžĐļĐĩŅĐĩ СаĐģиŅиŅи аĐŊĐžŅаŅŅŅ ŅиĐŋŅ Ņ ŅŅĐŊĐēŅŅŅ, ŅОй СйĐĩŅĐĩĐŗŅи ĐŋŅĐ´ŅŅиĐŧĐēŅ Đˇ йОĐēŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв, ŅаĐēиŅ
ŅĐē ŅĐĩдаĐēŅĐžŅи ĐēĐžĐ´Ņ Đ°ĐąĐž ŅŅаŅиŅĐŊŅ ĐŋĐĩŅĐĩвŅŅĐēи ŅиĐŋŅв (ĐŊаĐŋŅиĐēĐģад, mypy).
+
+ĐŖ ŅаĐēĐžĐŧŅ Đ˛Đ¸ĐŋадĐēŅ Đ˛Đ¸ ĐŧĐžĐļĐĩŅĐĩ виĐŧĐēĐŊŅŅи ĐŗĐĩĐŊĐĩŅаŅŅŅ ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, вŅŅаĐŊОвивŅи `response_model=None`:
+
+{* ../../docs_src/response_model/tutorial003_05_py310.py hl[7] *}
+
+ĐĻĐĩ СĐŧŅŅиŅŅ FastAPI ĐŋŅĐžĐŋŅŅŅиŅи ĐŗĐĩĐŊĐĩŅаŅŅŅ ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, Ņ ŅаĐēиĐŧ ŅиĐŊĐžĐŧ Đи СĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐąŅĐ´Ņ-ŅĐēŅ Đ°ĐŊĐžŅаŅŅŅ ŅиĐŋŅв ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ĐąĐĩС вĐŋĐģĐ¸Đ˛Ņ ĐŊа ваŅŅ FastAPI аĐŋĐģŅĐēаŅŅŅ. đ¤
+
+## ĐаŅаĐŧĐĩŅŅи ĐēОдŅваĐŊĐŊŅ ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ
+
+ĐаŅа ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐŧĐžĐļĐĩ ĐŧаŅи СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ, ĐŊаĐŋŅиĐēĐģад:
+
+{* ../../docs_src/response_model/tutorial004_py310.py hl[9,11:12] *}
+
+* `description: Union[str, None] = None` (айО `str | None = None` Ņ Python 3.10) ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `None`.
+* `tax: float = 10.5` ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ `10.5`.
+* `tags: List[str] = []` ĐŧĐ°Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐŋĐžŅĐžĐļĐŊŅĐš ŅĐŋиŅĐžĐē: `[]`.
+
+ĐĐģĐĩ Đи ĐŧĐžĐļĐĩŅĐĩ СаŅ
ĐžŅŅŅи ĐŊĐĩ вĐēĐģŅŅаŅи ŅŅ
Ņ ŅĐĩСŅĐģŅŅаŅ, ŅĐēŅĐž вОĐŊи ŅаĐēŅиŅĐŊĐž ĐŊĐĩ ĐąŅĐģи СйĐĩŅĐĩĐļĐĩĐŊŅ.
+
+ĐаĐŋŅиĐēĐģад, ŅĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐŧОдĐĩĐģŅ Đˇ ĐąĐ°ĐŗĐ°ŅŅĐŧа ĐŊĐĩОйОвâŅСĐēОвиĐŧи аŅŅийŅŅаĐŧи Ņ NoSQL ĐąĐ°ĐˇŅ Đ´Đ°ĐŊиŅ
, аĐģĐĩ Đи ĐŊĐĩ Ņ
ĐžŅĐĩŅĐĩ вŅĐ´ĐŋŅавĐģŅŅи Đ´ŅĐļĐĩ Đ´ĐžĐ˛ĐŗŅ JSON-вŅĐ´ĐŋОвŅĐ´Ņ, ĐŋОвĐŊŅ ĐˇĐŊаŅĐĩĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ.
+
+### ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅ `response_model_exclude_unset`
+
+Đи ĐŧĐžĐļĐĩŅĐĩ вŅŅаĐŊОвиŅи ĐŋаŅаĐŧĐĩŅŅ Đ´ĐĩĐēĐžŅаŅĐžŅа ŅĐģŅŅ
Ņ `response_model_exclude_unset=True`:
+
+{* ../../docs_src/response_model/tutorial004_py310.py hl[22] *}
+
+Ņ ŅŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ ĐŊĐĩ ĐąŅĐ´ŅŅŅ Đ˛ĐēĐģŅŅĐĩĐŊŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, ŅŅĐģŅĐēи ŅаĐēŅиŅĐŊĐž вŅŅаĐŊОвĐģĐĩĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ.
+
+ĐŅĐļĐĩ, ŅĐēŅĐž Đи ĐŊадŅŅĐģĐĩŅĐĩ СаĐŋĐ¸Ņ Đ´Đž ŅŅĐžĐŗĐž ĐžĐŋĐĩŅаŅĐžŅа ŅĐģŅŅ
Ņ Đ´ĐģŅ ĐĩĐģĐĩĐŧĐĩĐŊŅа С item_id `foo`, вŅĐ´ĐŋОвŅĐ´Ņ (ĐąĐĩС вĐēĐģŅŅĐĩĐŊĐŊŅ ĐˇĐŊаŅĐĩĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ) ĐąŅĐ´Đĩ:
+
+```JSON
+{
+ "name": "Foo",
+ "price": 50.2
+}
+```
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐŖ Pydantic вĐĩŅŅŅŅ 1 ĐŧĐĩŅОд ĐŊаСивавŅŅ `.dict()`, вŅĐŊ ĐąŅв СаŅŅаŅŅĐģиК (аĐģĐĩ ŅĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ) Ņ Pydantic вĐĩŅŅŅŅ 2 Ņ ĐŋĐĩŅĐĩĐšĐŧĐĩĐŊОваĐŊиК Ņ `.model_dump()`.
+
+ĐŅиĐēĐģади ŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅ `.dict()` Đ´ĐģŅ ŅŅĐŧŅŅĐŊĐžŅŅŅ Đˇ Pydantic v1, аĐģĐĩ ĐаĐŧ ŅĐģŅĐ´ виĐēĐžŅиŅŅОвŅваŅи `.model_dump()`, ŅĐēŅĐž Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи Pydantic v2.
+
+///
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+FastAPI виĐēĐžŅиŅŅОвŅŅ `.dict()` ĐŧОдĐĩĐģŅ Pydantic С ĐŋаŅаĐŧĐĩŅŅĐžĐŧ `exclude_unset`, ŅОй Đ´ĐžŅŅĐŗŅи ŅŅĐžĐŗĐž.
+
+///
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи:
+
+* `response_model_exclude_defaults=True`
+* `response_model_exclude_none=True`
+
+ŅĐē ĐžĐŋиŅаĐŊĐž в Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Pydantic for `exclude_defaults` Ņа `exclude_none`.
+
+///
+
+#### ĐаĐŊŅ ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧи Đ´ĐģŅ ĐŋĐžĐģŅв ŅС ŅиĐŋОвиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи
+
+ĐĐģĐĩ ŅĐēŅĐž ĐаŅŅ Đ´Đ°ĐŊŅ ĐŧаŅŅŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ Đ´ĐģŅ ĐŋĐžĐģŅв ĐŧОдĐĩĐģŅ Đˇ ŅиĐŋОвиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи, ŅĐē Ņ ĐĩĐģĐĩĐŧĐĩĐŊŅа С item_id `bar`:
+
+```Python hl_lines="3 5"
+{
+ "name": "Bar",
+ "description": "The bartenders",
+ "price": 62,
+ "tax": 20.2
+}
+```
+вОĐŊи ĐąŅĐ´ŅŅŅ Đ˛ĐēĐģŅŅĐĩĐŊŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+
+#### ĐаĐŊŅ Đˇ ŅиĐŧи ŅаĐŧиĐŧи СĐŊаŅĐĩĐŊĐŊŅĐŧи, ŅĐž Đš ŅиĐŋОвŅ
+
+Đ¯ĐēŅĐž даĐŊŅ ĐŧаŅŅŅ ŅŅ ŅаĐŧŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, ŅĐž Đš ŅиĐŋОвŅ, ŅĐē Ņ ĐĩĐģĐĩĐŧĐĩĐŊŅа С item_id `baz`:
+
+```Python hl_lines="3 5-6"
+{
+ "name": "Baz",
+ "description": None,
+ "price": 50.2,
+ "tax": 10.5,
+ "tags": []
+}
+```
+
+FastAPI Đ´ĐžŅŅаŅĐŊŅĐž ŅОСŅĐŧĐŊиК (ĐŊаŅĐŋŅавдŅ, Pydantic Đ´ĐžŅŅаŅĐŊŅĐž ŅОСŅĐŧĐŊиК), ŅОй СŅОСŅĐŧŅŅи, ŅĐž, Ņ
ĐžŅа `description`, `tax` Ņ `tags` ĐŧаŅŅŅ ŅŅ ŅаĐŧŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ, ŅĐž Đš ŅиĐŋОвŅ, вОĐŊи ĐąŅĐģи вŅŅаĐŊОвĐģĐĩĐŊŅ ŅвĐŊĐž (а ĐŊĐĩ вСŅŅŅ ŅĐē СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ).
+
+ĐŅĐļĐĩ, вОĐŊи ĐąŅĐ´ŅŅŅ Đ˛ĐēĐģŅŅĐĩĐŊŅ Ņ JSON-вŅĐ´ĐŋОвŅĐ´Ņ.
+
+/// tip | ĐĐžŅада
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ŅиĐŋĐžĐ˛Ņ ĐˇĐŊаŅĐĩĐŊĐŊŅ ĐŧĐžĐļŅŅŅ ĐąŅŅи ĐąŅĐ´Ņ-ŅĐēиĐŧи, ĐŊĐĩ ĐģиŅĐĩ `None`.
+
+ĐĻĐĩ ĐŧĐžĐļĐĩ ĐąŅŅи list (`[]`), `float` 10.5 ŅĐžŅĐž.
+
+///
+
+### `response_model_include` Ņа `response_model_exclude`
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐŋаŅаĐŧĐĩŅŅи *Đ´ĐĩĐēĐžŅаŅĐžŅа ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ* `response_model_include` Ņа `response_model_exclude`.
+
+ĐĐžĐŊи ĐŋŅиКĐŧаŅŅŅ `set` (ĐŧĐŊĐžĐļиĐŊŅ) ŅŅĐ´ĐēŅв (`str`) С ŅĐŧĐĩĐŊаĐŧи аŅŅийŅŅŅв, ŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž вĐēĐģŅŅиŅи (ĐŋŅĐžĐŋŅŅĐēаŅŅи ŅĐŊŅŅ) айО виĐēĐģŅŅиŅи (вĐēĐģŅŅаŅŅи ŅĐŊŅŅ).
+
+ĐĻĐĩ ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи ŅĐē ŅвидĐēиК ŅĐŋĐžŅŅĐą, ŅĐēŅĐž Ņ ĐĐ°Ņ Ņ ĐģиŅĐĩ ОдĐŊа ĐŧОдĐĩĐģŅ Pydantic Ņ Đи Ņ
ĐžŅĐĩŅĐĩ видаĐģиŅи Đ´ĐĩŅĐēŅ Đ´Đ°ĐŊŅ Đˇ вивОдŅ.
+
+/// tip | ĐĐžŅада
+
+ĐĐģĐĩ вŅĐĩ Đļ ŅĐĩĐēĐžĐŧĐĩĐŊĐ´ŅŅŅŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваŅи ĐžĐŋиŅаĐŊŅ Đ˛Đ¸ŅĐĩ ĐŋŅĐ´Ņ
Оди, ŅС СаŅŅĐžŅŅваĐŊĐŊŅĐŧ ĐēŅĐģŅĐēĐžŅ
ĐēĐģаŅŅв, СаĐŧŅŅŅŅ ŅиŅ
ĐŋаŅаĐŧĐĩŅŅŅв.
+
+
+ĐĻĐĩ ŅĐžĐŧŅ, ŅĐž JSON Schema, ŅĐēиК ĐŗĐĩĐŊĐĩŅŅŅŅŅŅŅ Ņ Đ˛Đ°ŅĐžĐŧŅ OpenAPI дОдаŅĐēŅ (Ņ Đ˛ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ), вŅĐĩ ОдĐŊĐž ĐąŅĐ´Đĩ вŅĐ´ĐŋОвŅдаŅи ĐŋОвĐŊŅĐš ĐŧОдĐĩĐģŅ, ĐŊавŅŅŅ ŅĐēŅĐž Đи виĐēĐžŅиŅŅОвŅŅŅĐĩ `response_model_include` айО `response_model_exclude` Đ´ĐģŅ Đ˛Đ¸ĐēĐģŅŅĐĩĐŊĐŊŅ Đ´ĐĩŅĐēиŅ
аŅŅийŅŅŅв.
+
+ĐĻĐĩ ŅаĐēĐžĐļ ŅŅĐžŅŅŅŅŅŅŅ `response_model_by_alias`, ŅĐēиК ĐŋŅаŅŅŅ ĐŋОдŅĐąĐŊиĐŧ ŅиĐŊĐžĐŧ.
+
+///
+
+{* ../../docs_src/response_model/tutorial005_py310.py hl[29,35] *}
+
+/// tip | ĐĐžŅада
+
+ХиĐŊŅаĐēŅĐ¸Ņ `{"name", "description"}` ŅŅвОŅŅŅ `set` С ŅиĐŧи двОĐŧа СĐŊаŅĐĩĐŊĐŊŅĐŧи.
+
+ĐŅĐŊ ĐĩĐēвŅваĐģĐĩĐŊŅĐŊиК `set(["name", "description"])`.
+
+///
+
+#### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `list` СаĐŧŅŅŅŅ `set`
+
+Đ¯ĐēŅĐž Đи СайŅĐ´ĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `set` Ņ ĐŊаŅĐžĐŧŅŅŅŅ ĐˇĐ°ŅŅĐžŅŅŅŅĐĩ `list` айО `tuple`, FastAPI вŅĐĩ ОдĐŊĐž ĐŋĐĩŅĐĩŅвОŅиŅŅ ŅĐĩ ĐŊа `set`, Ņ Đ˛ŅĐĩ ĐŋŅаŅŅваŅиĐŧĐĩ ĐŋŅавиĐģŅĐŊĐž:
+
+{* ../../docs_src/response_model/tutorial006_py310.py hl[29,35] *}
+
+## ĐŅĐ´ŅŅĐŧĐžĐē
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅ `response_model` *Đ´ĐĩĐēĐžŅаŅĐžŅа ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, ŅОй виСĐŊаŅаŅи ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, ĐžŅОйĐģивО ŅОй ĐŗĐ°ŅаĐŊŅŅваŅи ŅŅĐģŅŅŅаŅŅŅ ĐŋŅиваŅĐŊиŅ
даĐŊиŅ
.
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ `response_model_exclude_unset`, ŅОй ĐŋОвĐĩŅŅаŅи ĐģиŅĐĩ ŅвĐŊĐž вŅŅаĐŊОвĐģĐĩĐŊŅ ĐˇĐŊаŅĐĩĐŊĐŊŅ.
diff --git a/docs/uk/docs/tutorial/response-status-code.md b/docs/uk/docs/tutorial/response-status-code.md
new file mode 100644
index 0000000000..1ed69d6f25
--- /dev/null
+++ b/docs/uk/docs/tutorial/response-status-code.md
@@ -0,0 +1,100 @@
+# ĐĄŅаŅŅŅ ĐēОди ĐŅĐ´ĐŋОвŅĐ´ĐĩĐš
+
+ĐĸаĐē ŅаĐŧĐž ŅĐē Đи ĐŧĐžĐļĐĩŅĐĩ вĐēаСаŅи ĐŧОдĐĩĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ, Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи HTTP ĐēОд ŅŅаŅŅŅŅ Đ´ĐģŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐˇĐ° Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `status_code` в ĐąŅĐ´Ņ-ŅĐēŅĐš С *ĐžĐŋĐĩŅаŅŅĐš ŅĐģŅŅ
Ņ*:
+
+* `@app.get()`
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+* ŅĐžŅĐž.
+
+{* ../../docs_src/response_status_code/tutorial001.py hl[6] *}
+
+/// note | ĐĐžŅаŅĐēа
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž `status_code` Ņ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ ĐŧĐĩŅĐžĐ´Ņ "Đ´ĐĩĐēĐžŅаŅĐžŅа" (`get`, `post` Ņ Ņ.Đ´.), а ĐŊĐĩ ĐаŅĐžŅ *ŅŅĐŊĐēŅŅŅ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*, ŅĐē ŅŅŅ ŅĐŊŅŅ ĐŋаŅаĐŧĐĩŅŅи Ņа ŅŅĐģĐž СаĐŋиŅŅ.
+
+///
+
+ĐаŅаĐŧĐĩŅŅ `status_code` ĐŋŅиКĐŧĐ°Ņ ŅиŅĐģĐž, ŅĐēĐĩ вŅĐ´ĐŋОвŅĐ´Đ°Ņ HTTP ĐēĐžĐ´Ņ ŅŅаŅŅŅŅ.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+`status_code` ŅаĐēĐžĐļ ĐŧĐžĐļĐĩ ĐžŅŅиĐŧŅваŅи СĐŊаŅĐĩĐŊĐŊŅ Đˇ `IntEnum`, ĐŊаĐŋŅиĐēĐģад, С Python `http.HTTPStatus`.
+
+///
+
+ĐŅĐŊ ĐąŅĐ´Đĩ:
+
+* ĐОвĐĩŅŅаŅи вĐēаСаĐŊиК ĐēОд ŅŅаŅŅŅŅ Ņ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+* ĐĐžĐēŅĐŧĐĩĐŊŅŅваŅи ĐšĐžĐŗĐž ŅĐē ŅаĐēиК Ņ ŅŅ
ĐĩĐŧŅ OpenAPI (Ņ, ŅаĐēиĐŧ ŅиĐŊĐžĐŧ, в ŅĐŊŅĐĩŅŅĐĩĐšŅŅ ĐēĐžŅиŅŅŅваŅа):
+
+
+
+/// note | ĐĐžŅаŅĐēа
+
+ĐĐĩŅĐēŅ ĐēОди вŅĐ´ĐŋОвŅĐ´Ņ (див. ĐŊаŅŅŅĐŋĐŊиК ŅОСдŅĐģ) вĐēаСŅŅŅŅ, ŅĐž вŅĐ´ĐŋОвŅĐ´Ņ ĐŊĐĩ ĐŧĐ°Ņ ŅŅĐģа.
+
+FastAPI СĐŊĐ°Ņ ĐŋŅĐž ŅĐĩ Ņ ŅŅвОŅиŅŅ OpenAPI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ŅĐēа вĐēаСŅŅ, ŅĐž ŅŅĐģа вŅĐ´ĐŋОвŅĐ´Ņ ĐŊĐĩĐŧаŅ.
+
+///
+
+## ĐŅĐž HTTP ŅŅаŅŅŅ ĐēОди
+
+/// note | ĐĐžŅаŅĐēа
+
+Đ¯ĐēŅĐž Đи вĐļĐĩ СĐŊаŅŅĐĩ, ŅĐž ŅаĐēĐĩ HTTP ĐēОди ŅŅаŅŅŅŅ, ĐŋĐĩŅĐĩŅ
ОдŅŅĐĩ Đ´Đž ĐŊаŅŅŅĐŋĐŊĐžĐŗĐž ŅОСдŅĐģŅ.
+
+///
+
+Đ HTTP Đи ĐŊадŅиĐģаŅŅĐĩ ŅиŅĐģОвиК ĐēОд ŅŅаŅŅŅŅ Đˇ 3 ŅиŅŅ ŅĐē ŅаŅŅиĐŊŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ.
+
+ĐĻŅ ĐēОди ŅŅаŅŅŅŅ ĐŧаŅŅŅ ĐŋОвâŅСаĐŊŅ ĐŊĐ°ĐˇĐ˛Ņ Đ´ĐģŅ ŅŅ
ŅОСĐŋŅСĐŊаваĐŊĐŊŅ, аĐģĐĩ ĐŊаКваĐļĐģивŅŅĐžŅ ŅаŅŅиĐŊĐžŅ Ņ ŅаĐŧĐĩ ŅиŅĐģĐž.
+
+ĐĐžŅĐžŅĐēĐž:
+
+* **`100 - 199`** "ĐĐŊŅĐžŅĐŧаŅŅĐšĐŊŅ" вŅĐ´ĐŋОвŅĐ´Ņ. Đи ŅŅĐ´ĐēĐž виĐēĐžŅиŅŅОвŅŅŅĐĩ ŅŅ
ĐŊаĐŋŅŅĐŧŅ. ĐŅĐ´ĐŋОвŅĐ´Ņ Đˇ ŅаĐēиĐŧи ĐēОдаĐŧи ĐŊĐĩ ĐŧĐžĐļŅŅŅ ĐŧаŅи ŅŅĐģа.
+* **`200 - 299`** "ĐŖŅĐŋŅŅĐŊŅ" вŅĐ´ĐŋОвŅĐ´Ņ. ĐĻĐĩ ŅŅ, ŅĐēŅ Đи виĐēĐžŅиŅŅОвŅваŅиĐŧĐĩŅĐĩ ĐŊаКŅаŅŅŅŅĐĩ.
+ * `200` - ĐēОд Са СаĐŧОвŅŅваĐŊĐŊŅĐŧ, ŅĐēиК ОСĐŊаŅаŅ, ŅĐž вŅĐĩ ĐŋŅОКŅĐģĐž "OK".
+ * ĐĐŊŅиК ĐŋŅиĐēĐģад â `201`, "Created" (ŅŅвОŅĐĩĐŊĐž). ĐĐžĐŗĐž СаСвиŅаК виĐēĐžŅиŅŅОвŅŅŅŅ ĐŋŅŅĐģŅ ŅŅвОŅĐĩĐŊĐŊŅ ĐŊĐžĐ˛ĐžĐŗĐž СаĐŋиŅŅ Đ˛ ĐąĐ°ĐˇŅ Đ´Đ°ĐŊиŅ
.
+ * ĐŅОйĐģивиК виĐŋадОĐē â `204`, "No Content" (ĐŊĐĩĐŧĐ°Ņ Đ˛ĐŧŅŅŅŅ). ĐĻŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅŅŅ, ĐēĐžĐģи ĐŊĐĩĐŧĐ°Ņ Đ´Đ°ĐŊиŅ
Đ´ĐģŅ ĐŋОвĐĩŅĐŊĐĩĐŊĐŊŅ ĐēĐģŅŅĐŊŅŅ, ŅĐžĐŧŅ Đ˛ŅĐ´ĐŋОвŅĐ´Ņ ĐŊĐĩ ĐŋОвиĐŊĐŊа ĐŧаŅи ŅŅĐģа.
+* **`300 - 399`** "ĐĐĩŅĐĩĐŊаĐŋŅавĐģĐĩĐŊĐŊŅ". ĐŅĐ´ĐŋОвŅĐ´Ņ Đˇ ŅиĐŧи ĐēОдаĐŧи ĐŧĐžĐļŅŅŅ ĐŧаŅи айО ĐŊĐĩ ĐŧаŅи ŅŅĐģа, Са виĐŊŅŅĐēĐžĐŧ `304`, "Not Modified" (ĐŊĐĩ СĐŧŅĐŊĐĩĐŊĐž), ŅĐēа ĐŊĐĩ ĐŋОвиĐŊĐŊа ĐŧаŅи ŅŅĐģа.
+* **`400 - 499`** "ĐĐžĐŧиĐģĐēа ĐēĐģŅŅĐŊŅа". ĐĻĐĩ Đ´ŅŅĐŗĐ¸Đš ŅиĐŋ, ŅĐēиК Đи, ĐšĐŧОвŅŅĐŊĐž, ĐąŅĐ´ĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐŊаКŅаŅŅŅŅĐĩ.
+ * ĐŅиĐēĐģад `404`, "Not Found" (ĐŊĐĩ СĐŊаКдĐĩĐŊĐž).
+ * ĐĐģŅ ĐˇĐ°ĐŗĐ°ĐģŅĐŊиŅ
ĐŋĐžĐŧиĐģĐžĐē ĐēĐģŅŅĐŊŅа ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи `400`.
+* `500 - 599` "ĐĐžĐŧиĐģĐēи ŅĐĩŅвĐĩŅа". Đи ĐŧаКĐļĐĩ ĐŊŅĐēĐžĐģи ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅĐĩ ŅŅ
ĐŊаĐŋŅŅĐŧŅ. Đ¯ĐēŅĐž в ĐēĐžĐ´Ņ ĐаŅĐžĐŗĐž СаŅŅĐžŅŅĐŊĐēŅ Đ°ĐąĐž ĐŊа ŅĐĩŅвĐĩŅŅ ŅĐžŅŅ ĐŋŅŅĐģĐž ĐŊĐĩ ŅаĐē, авŅĐžĐŧаŅиŅĐŊĐž ĐąŅĐ´Đĩ ĐŋОвĐĩŅĐŊĐĩĐŊĐž ОдиĐŊ ŅС ŅиŅ
ĐēОдŅв ŅŅаŅŅŅŅ.
+
+/// tip | ĐĐžŅада
+
+ЊОй Đ´ŅСĐŊаŅиŅŅ ĐąŅĐģŅŅĐĩ ĐŋŅĐž ĐēĐžĐļĐĩĐŊ ĐēОд ŅŅаŅŅŅŅ Ņ ĐŋŅиСĐŊаŅĐĩĐŊĐŊŅ ĐēĐžĐļĐŊĐžĐŗĐž С ĐŊиŅ
, ĐŋĐĩŅĐĩĐŗĐģŅĐŊŅŅĐĩ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ MDN ĐŋŅĐž HTTP ĐēОди ŅŅаŅŅŅŅ.
+
+///
+
+## ĐĐĩĐŗĐēиК ŅĐŋĐžŅŅĐą СаĐŋаĐŧ'ŅŅаŅи ĐŊаСви
+
+Đ ĐžĐˇĐŗĐģŅĐŊĐĩĐŧĐž ŅĐĩ ŅаС ĐŋĐžĐŋĐĩŅĐĩĐ´ĐŊŅĐš ĐŋŅиĐēĐģад:
+
+{* ../../docs_src/response_status_code/tutorial001.py hl[6] *}
+
+`201` - ŅĐĩ ĐēОд ŅŅаŅŅŅŅ Đ´ĐģŅ "Created" (ŅŅвОŅĐĩĐŊĐž).
+
+ĐĐģĐĩ ĐаĐŧ ĐŊĐĩ ĐŋĐžŅŅŅĐąĐŊĐž СаĐŋаĐŧ'ŅŅОвŅваŅи, ŅĐž ОСĐŊаŅĐ°Ņ ĐēĐžĐļĐĩĐŊ ŅС ŅиŅ
ĐēОдŅв.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи СŅŅŅĐŊŅ ĐˇĐŧŅĐŊĐŊŅ Đˇ `fastapi.status`
+
+{* ../../docs_src/response_status_code/tutorial002.py hl[1,6] *}
+
+ĐĻŅ ĐˇĐŧŅĐŊĐŊŅ ĐŋŅĐžŅŅĐž Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ. ĐĐžĐŊи ĐŧŅŅŅŅŅŅ ŅŅ Đļ ŅаĐŧŅ ŅиŅĐģа, аĐģĐĩ Đи ĐŧĐžĐļĐĩŅĐĩ ŅĐēĐžŅиŅŅаŅиŅŅ Đ°Đ˛ŅОСаĐŋОвĐŊĐĩĐŊĐŊŅĐŧ в ŅĐĩдаĐēŅĐžŅŅ:
+
+
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `from starlette import status`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅŅ Đļ ŅаĐŧŅ ĐˇĐŧŅĐŊĐŊŅ `starlette.status` ŅĐē `fastapi.status`, ĐŋŅĐžŅŅĐž Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēа. ĐĐ´ĐŊаĐē вОĐŊи ĐŋĐžŅ
ОдŅŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐˇŅ Starlette.
+
+///
+
+## ĐĐŧŅĐŊа СĐŊаŅĐĩĐŊĐŊŅ ĐˇĐ° СаĐŧОвŅŅваĐŊĐŊŅĐŧ
+
+ĐаĐģŅ, Ņ ĐĐžŅŅĐąĐŊиĐēŅ Đ´ĐģŅ Đ´ĐžŅвŅĐ´ŅĐĩĐŊиŅ
ĐēĐžŅиŅŅŅваŅŅв{.internal-link target=_blank}, Đи Đ´ŅСĐŊаŅŅĐĩŅŅ, ŅĐē ĐŋОвĐĩŅĐŊŅŅи ŅĐŊŅиК ĐēОд ŅŅаŅŅŅŅ, ĐŊŅĐļ ŅОК, ŅĐēиК Đи ĐžĐŗĐžĐģĐžŅиĐģи ŅŅŅ.
diff --git a/docs/uk/docs/tutorial/schema-extra-example.md b/docs/uk/docs/tutorial/schema-extra-example.md
new file mode 100644
index 0000000000..853fd5e659
--- /dev/null
+++ b/docs/uk/docs/tutorial/schema-extra-example.md
@@ -0,0 +1,222 @@
+# ĐĐĩĐēĐģаŅŅваĐŊĐŊŅ ĐŋŅиĐēĐģадŅв вŅ
ŅĐ´ĐŊиŅ
даĐŊиŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ СадаŅи ĐŋŅиĐēĐģади даĐŊиŅ
, ŅĐēŅ ĐĐ°Ņ ĐˇĐ°ŅŅĐžŅŅĐŊĐžĐē ĐŧĐžĐļĐĩ ĐžŅŅиĐŧŅваŅи.
+
+ĐŅŅ ĐēŅĐģŅĐēа ŅĐŋĐžŅОйŅв, ŅĐē ŅĐĩ СŅОйиŅи.
+
+## ĐОдаŅĐēĐžĐ˛Ņ Đ´Đ°ĐŊŅ JSON-ŅŅ
ĐĩĐŧи в ĐŧОдĐĩĐģŅŅ
Pydantic
+
+Đи ĐŧĐžĐļĐĩŅĐĩ СадаŅи `examples` Đ´ĐģŅ ĐŧОдĐĩĐģŅ Pydantic, ŅĐēŅ ĐąŅĐ´Đĩ дОдаĐŊĐž Đ´Đž ĐˇĐŗĐĩĐŊĐĩŅОваĐŊĐžŅ JSON-ŅŅ
ĐĩĐŧи.
+
+//// tab | Pydantic v2
+
+{* ../../docs_src/schema_extra_example/tutorial001_py310.py hl[13:24] *}
+
+////
+
+//// tab | Pydantic v1
+
+{* ../../docs_src/schema_extra_example/tutorial001_pv1_py310.py hl[13:23] *}
+
+////
+
+ĐĻŅ Đ´ĐžĐ´Đ°ŅĐēОва ŅĐŊŅĐžŅĐŧаŅŅŅ ĐąŅĐ´Đĩ дОдаĐŊа ŅĐē Ņ Đ´Đž **JSON-ŅŅ
ĐĩĐŧи**, Ņ Đ˛ĐžĐŊа ĐąŅĐ´Đĩ виĐēĐžŅиŅŅОвŅваŅиŅŅ Đ˛ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Đ´Đž API.
+
+//// tab | Pydantic v2
+
+ĐŖ вĐĩŅŅŅŅ Pydantic 2 виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ°ŅŅийŅŅ `model_config`, ŅĐēиК ĐŋŅиКĐŧĐ°Ņ `dict`, ŅĐē ĐžĐŋиŅаĐŊĐž в Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Pydantic: ĐĐžĐŊŅŅĐŗŅŅаŅŅŅ.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ вŅŅаĐŊОвиŅи `"json_schema_extra"` ŅĐē `dict`, ŅĐž ĐŧŅŅŅиŅŅ ĐąŅĐ´Ņ-ŅĐēŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ Đ´Đ°ĐŊŅ, ŅĐēŅ Đи Ņ
ĐžŅĐĩŅĐĩ вŅдОйŅаСиŅи Ņ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊŅĐš JSON-ŅŅ
ĐĩĐŧŅ, вĐēĐģŅŅаŅŅи `examples`.
+
+////
+
+//// tab | Pydantic v1
+
+ĐŖ вĐĩŅŅŅŅ Pydantic 1 виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ˛ĐŊŅŅŅŅŅĐŊŅĐš ĐēĐģĐ°Ņ `Config` Ņ ĐŋаŅаĐŧĐĩŅŅ `schema_extra`, ŅĐē ĐžĐŋиŅаĐŊĐž в Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Pydantic: ĐаĐģаŅŅŅваĐŊĐŊŅ ŅŅ
ĐĩĐŧи.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ СадаŅи `schema_extra` ŅĐē `dict`, ŅĐž ĐŧŅŅŅиŅŅ ĐąŅĐ´Ņ-ŅĐēŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ Đ´Đ°ĐŊŅ, ŅĐēŅ Đи Ņ
ĐžŅĐĩŅĐĩ йаŅиŅи Ņ ĐˇĐŗĐĩĐŊĐĩŅОваĐŊŅĐš JSON-ŅŅ
ĐĩĐŧŅ, вĐēĐģŅŅаŅŅи `examples`.
+
+////
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи ŅŅ Đļ ŅĐĩŅ
ĐŊŅĐēŅ, ŅОй ŅОСŅиŅиŅи JSON-ŅŅ
ĐĩĐŧŅ Ņ Đ´ĐžĐ´Đ°Ņи вĐģаŅĐŊŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ ŅĐŊŅĐžŅĐŧаŅŅŅ.
+
+ĐаĐŋŅиĐēĐģад, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи ŅŅ Đ´ĐģŅ Đ´ĐžĐ´Đ°Đ˛Đ°ĐŊĐŊŅ ĐŧĐĩŅадаĐŊиŅ
Đ´ĐģŅ ŅĐŊŅĐĩŅŅĐĩĐšŅŅ ĐēĐžŅиŅŅŅваŅа ĐŊа ŅŅĐžĐŊŅĐĩĐŊĐ´Ņ ŅĐžŅĐž.
+
+///
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+OpenAPI 3.1.0 (ŅĐēиК виĐēĐžŅиŅŅОвŅŅŅŅŅŅ ĐŋĐžŅиĐŊаŅŅи С FastAPI 0.99.0) дОдав ĐŋŅĐ´ŅŅиĐŧĐēŅ `examples`, ŅĐž Ņ ŅаŅŅиĐŊĐžŅ ŅŅаĐŊдаŅŅŅ **JSON-ŅŅ
ĐĩĐŧи**.
+
+ĐĐž ŅŅĐžĐŗĐž ĐŋŅĐ´ŅŅиĐŧŅвавŅŅ ĐģиŅĐĩ ĐēĐģŅŅ `example` С ОдĐŊиĐŧ ĐŋŅиĐēĐģадОĐŧ. ĐŅĐŊ вŅĐĩ ŅĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅŅŅŅŅ Đ˛ OpenAPI 3.1.0, аĐģĐĩ Ņ ĐˇĐ°ŅŅаŅŅĐģиĐŧ Ņ ĐŊĐĩ вŅ
ОдиŅŅ Đ´Đž ŅŅаĐŊдаŅŅŅ JSON Schema. ĐĸĐžĐŧŅ ŅĐĩĐēĐžĐŧĐĩĐŊĐ´ŅŅŅŅŅŅ ĐŋĐĩŅĐĩĐšŅи С `example` ĐŊа `examples`. đ¤
+
+ĐŅĐģŅŅĐĩ ĐŋŅĐž ŅĐĩ ĐŧĐžĐļĐŊа ĐŋŅĐžŅиŅаŅи в ĐēŅĐŊŅŅ ŅŅŅŅ ŅŅĐžŅŅĐŊĐēи.
+
+///
+
+## ĐОдаŅĐēĐžĐ˛Ņ Đ°ŅĐŗŅĐŧĐĩĐŊŅи `Field`
+
+ĐĐžĐģи ви виĐēĐžŅиŅŅОвŅŅŅĐĩ `Field()` Ņ ĐŧОдĐĩĐģŅŅ
Pydantic, Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ вĐēаСаŅи дОдаŅĐēĐžĐ˛Ņ `examples`:
+
+{* ../../docs_src/schema_extra_example/tutorial002_py310.py hl[2,8:11] *}
+
+## `examples` Ņ JSON-ŅŅ
ĐĩĐŧŅ â OpenAPI
+
+ĐŅи виĐēĐžŅиŅŅаĐŊĐŊŅ ĐąŅĐ´Ņ-ĐēĐžĐŗĐž С ĐŊаŅŅŅĐŋĐŊĐžĐŗĐž:
+
+* `Path()`
+* `Query()`
+* `Header()`
+* `Cookie()`
+* `Body()`
+* `Form()`
+* `File()`
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ СадаŅи ĐŊайŅŅ `examples` С дОдаŅĐēĐžĐ˛ĐžŅ ŅĐŊŅĐžŅĐŧаŅŅŅŅ, ŅĐēа ĐąŅĐ´Đĩ дОдаĐŊа Đ´Đž ŅŅ
ĐŊŅŅ
**JSON-ŅŅ
ĐĩĐŧ** Ņ **OpenAPI**.
+
+### `Body` С `examples`
+
+ĐĸŅŅ Đŧи ĐŋĐĩŅĐĩдаŅĐŧĐž `examples`, ŅĐēŅ ĐŧŅŅŅŅŅŅ ĐžĐ´Đ¸ĐŊ ĐŋŅиĐēĐģад ĐžŅŅĐēŅваĐŊиŅ
даĐŊиŅ
Ņ `Body()`:
+
+{* ../../docs_src/schema_extra_example/tutorial003_an_py310.py hl[22:29] *}
+
+### ĐŅиĐēĐģад Ņ UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đа Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐąŅĐ´Ņ-ŅĐēĐžĐŗĐž С ĐŊавĐĩĐ´ĐĩĐŊиŅ
виŅĐĩ ĐŧĐĩŅОдŅв ŅĐĩ Đ˛Đ¸ĐŗĐģŅдаŅиĐŧĐĩ ŅаĐē Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ ĐˇĐ° `/docs`:
+
+
+
+### `Body` С ĐēŅĐģŅĐēĐžĐŧа `examples`
+
+ĐвиŅаКĐŊĐž, Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи ĐēŅĐģŅĐēа `examples`:
+
+{* ../../docs_src/schema_extra_example/tutorial004_an_py310.py hl[23:38] *}
+
+ĐĐžĐģи Đи ŅĐĩ ŅОйиŅĐĩ, ĐŋŅиĐēĐģади ĐąŅĐ´ŅŅŅ ŅаŅŅиĐŊĐžŅ Đ˛ĐŊŅŅŅŅŅĐŊŅĐžŅ **JSON-ŅŅ
ĐĩĐŧи** Đ´ĐģŅ ŅиŅ
даĐŊиŅ
.
+
+ĐŅŅĐŧ, ĐŊа ĐŧĐžĐŧĐĩĐŊŅ ĐŊаĐŋиŅаĐŊĐŊŅ ŅŅĐžĐŗĐž (26 ŅĐĩŅĐŋĐŊŅ 2023), Swagger UI â ŅĐŊŅŅŅŅĐŧĐĩĐŊŅ, ŅĐēиК вŅĐ´ĐŋОвŅĐ´Đ°Ņ ĐˇĐ° вŅдОйŅаĐļĐĩĐŊĐŊŅ UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ â ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅŅ ĐŋĐžĐēаС ĐēŅĐģŅĐēĐžŅ
ĐŋŅиĐēĐģадŅв Ņ **JSON-ŅŅ
ĐĩĐŧи**. ĐĐģĐĩ ĐŊиĐļŅĐĩ ĐŧĐžĐļĐŊа ĐŋŅĐžŅиŅаŅи ĐŋŅĐž ОйŅ
ŅĐ´ĐŊиК ŅĐģŅŅ
.
+
+### ĐĄĐŋĐĩŅиŅŅŅĐŊŅ Đ´ĐģŅ OpenAPI `examples`
+
+ĐŠĐĩ Đ´Đž ŅĐžĐŗĐž, ŅĐē **JSON-ŅŅ
ĐĩĐŧа** ĐŋĐžŅаĐģа ĐŋŅĐ´ŅŅиĐŧŅваŅи `examples`, OpenAPI вĐļĐĩ ĐŧаĐģа ĐŋŅĐ´ŅŅиĐŧĐēŅ ĐŋĐžĐģŅ Đˇ ŅаĐēĐžŅ Đļ ĐŊĐ°ĐˇĐ˛ĐžŅ â `examples`.
+
+ĐĻĐĩ **ŅĐŋĐĩŅиŅŅŅĐŊĐĩ Đ´ĐģŅ OpenAPI** ĐŋĐžĐģĐĩ `examples` ŅОСĐŧŅŅŅŅŅŅŅŅ Đ˛ ŅĐŊŅŅĐš ŅаŅŅиĐŊŅ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ OpenAPI â Ņ **Đ´ĐĩŅаĐģŅŅ
ĐēĐžĐļĐŊĐžŅ *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ***, а ĐŊĐĩ вŅĐĩŅĐĩдиĐŊŅ ŅаĐŧĐžŅ JSON-ŅŅ
ĐĩĐŧи.
+
+Swagger UI вĐļĐĩ давĐŊĐž ĐŋŅĐ´ŅŅиĐŧŅŅ ŅĐĩ ĐŋĐžĐģĐĩ `examples`. ĐĸĐžĐŧŅ Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи ĐšĐžĐŗĐž, ŅОй **вŅдОйŅаĐļаŅи** ĐēŅĐģŅĐēа **ĐŋŅиĐēĐģадŅв Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ**.
+
+ĐĻĐĩ ĐŋĐžĐģĐĩ `examples` Ņ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ OpenAPI â ŅĐĩ `dict` (ŅĐģОвĐŊиĐē) С **ĐēŅĐģŅĐēĐžĐŧа ĐŋŅиĐēĐģадаĐŧи** (а ĐŊĐĩ ŅĐŋиŅĐžĐē `list`), ĐēĐžĐļĐĩĐŊ ŅС ŅĐēиŅ
ĐŧĐžĐļĐĩ ĐŧŅŅŅиŅи дОдаŅĐēĐžĐ˛Ņ ŅĐŊŅĐžŅĐŧаŅŅŅ, ŅĐž ĐąŅĐ´Đĩ дОдаĐŊа Đ´Đž **OpenAPI**.
+
+ĐĐžĐŊĐž ĐŊĐĩ вĐēĐģŅŅаŅŅŅŅŅ Đ´Đž JSON Schema ĐēĐžĐļĐŊĐžĐŗĐž ĐŋаŅаĐŧĐĩŅŅа, а ŅОСĐŧŅŅŅŅŅŅŅŅ ĐˇĐžĐ˛ĐŊŅ, ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž в *ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ*.
+
+### ĐиĐēĐžŅиŅŅаĐŊĐŊŅ ĐŋаŅаĐŧĐĩŅŅа `openapi_examples`
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŗĐžĐģĐžŅиŅи ŅĐŋĐĩŅиŅŅŅĐŊŅ Đ´ĐģŅ OpenAPI `examples` Ņ FastAPI Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ĐŋаŅаĐŧĐĩŅŅа `openapi_examples` Đ´ĐģŅ:
+
+* `Path()`
+* `Query()`
+* `Header()`
+* `Cookie()`
+* `Body()`
+* `Form()`
+* `File()`
+
+ĐĐģŅŅŅ ŅĐģОвĐŊиĐēа (`dict`) ŅĐ´ĐĩĐŊŅиŅŅĐēŅŅŅŅ ĐēĐžĐļĐĩĐŊ ĐŋŅиĐēĐģад, а ĐēĐžĐļĐŊĐĩ СĐŊаŅĐĩĐŊĐŊŅ `dict` â ĐēĐžĐļĐĩĐŊ ŅĐŋĐĩŅиŅŅŅĐŊиК ŅĐģОвĐŊиĐē `dict` в `examples` ĐŧĐžĐļĐĩ ĐŧŅŅŅиŅи:
+
+* `summary`: ĐēĐžŅĐžŅĐēиК ĐžĐŋĐ¸Ņ ĐŋŅиĐēĐģадŅ.
+* `description`: ŅĐžĐˇĐŗĐžŅĐŊŅŅиК ĐžĐŋĐ¸Ņ (ĐŧĐžĐļĐĩ ĐŧŅŅŅиŅи Markdown).
+* `value`: ŅаĐŧ ĐŋŅиĐēĐģад, ĐŊаĐŋŅиĐēĐģад, ŅĐģОвĐŊиĐē (`dict`).
+* `externalValue`: аĐģŅŅĐĩŅĐŊаŅива `value`, URL-адŅĐĩŅа, ŅĐž вĐēаСŅŅ ĐŊа ĐŋŅиĐēĐģад. ĐŅĐžŅĐĩ ŅŅ ĐžĐŋŅŅŅ ĐŧĐžĐļĐĩ ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅваŅиŅŅ ĐąŅĐģŅŅŅŅŅŅ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв, ĐŊа вŅĐ´ĐŧŅĐŊŅ Đ˛ŅĐ´ `value`.
+
+ĐиĐēĐžŅиŅŅаĐŊĐŊŅ Đ˛Đ¸ĐŗĐģŅĐ´Đ°Ņ ŅаĐē:
+
+{* ../../docs_src/schema_extra_example/tutorial005_an_py310.py hl[23:49] *}
+
+### ĐŅиĐēĐģади OpenAPI Ņ UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ
+
+Đ ĐŋаŅаĐŧĐĩŅŅĐžĐŧ `openapi_examples`, дОдаĐŊиĐŧ Đ´Đž `Body()`, Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ `/docs` Đ˛Đ¸ĐŗĐģŅдаŅиĐŧĐĩ ŅаĐē:
+
+
+
+## ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+/// tip | ĐŅĐ´ĐēаСĐēа
+
+Đ¯ĐēŅĐž Đи вĐļĐĩ виĐēĐžŅиŅŅОвŅŅŅĐĩ **FastAPI** вĐĩŅŅŅŅ **0.99.0 айО виŅĐĩ**, Đи ĐŧĐžĐļĐĩŅĐĩ **ĐŋŅĐžĐŋŅŅŅиŅи** ŅĐĩĐš ŅОСдŅĐģ.
+
+ĐŅĐŊ ĐąŅĐģŅŅ Đ°ĐēŅŅаĐģŅĐŊиК Đ´ĐģŅ ŅŅаŅиŅ
вĐĩŅŅŅĐš, Đ´Đž ĐŋĐžŅви OpenAPI 3.1.0.
+
+ĐĐžĐļĐŊа вваĐļаŅи ŅĐĩ ĐēĐžŅĐžŅĐēиĐŧ **ŅŅŅĐžŅиŅĐŊиĐŧ ĐĩĐēŅĐēŅŅŅĐžĐŧ** Ņ OpenAPI Ņа JSON Schema. đ¤
+
+///
+
+/// warning | ĐĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ
+
+ĐĻĐĩ Đ´ŅĐļĐĩ ŅĐĩŅ
ĐŊŅŅĐŊа ŅĐŊŅĐžŅĐŧаŅŅŅ ĐŋŅĐž ŅŅаĐŊдаŅŅи **JSON Schema** Ņ **OpenAPI**.
+
+Đ¯ĐēŅĐž виŅĐĩĐˇĐŗĐ°Đ´Đ°ĐŊŅ ŅĐ´ĐĩŅ Đ˛ĐļĐĩ ĐŋŅаŅŅŅŅŅ Ņ ĐĐ°Ņ â ĐŧĐžĐļĐĩŅĐĩ ĐŊĐĩ ĐˇĐ°ĐŗĐģийĐģŅваŅиŅŅ Đ˛ ŅŅ Đ´ĐĩŅаĐģŅ.
+
+///
+
+ĐĐž OpenAPI 3.1.0 ŅĐŋĐĩŅиŅŅĐēаŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваĐģа ŅŅаŅŅ Ņа ĐŧОдиŅŅĐēОваĐŊŅ Đ˛ĐĩŅŅŅŅ **JSON Schema**.
+
+ĐŅĐēŅĐģŅĐēи JSON Schema ŅаĐŊŅŅĐĩ ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅваĐģа `examples`, OpenAPI дОдаĐģа вĐģаŅĐŊĐĩ ĐŋĐžĐģĐĩ `examples`.
+
+OpenAPI ŅаĐēĐžĐļ дОдаĐģа `example` Ņ `examples` Đ´Đž ŅĐŊŅиŅ
ŅаŅŅиĐŊ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ:
+
+* `Parameter Object` (в ŅĐŋĐĩŅиŅŅĐēаŅŅŅ) виĐēĐžŅиŅŅОвŅŅŅŅŅŅ FastAPI Đ´ĐģŅ:
+ * `Path()`
+ * `Query()`
+ * `Header()`
+ * `Cookie()`
+* `Request Body Object`, в ĐŋĐžĐģŅ `content`, в `Media Type Object` (в ŅĐŋĐĩŅиŅŅĐēаŅŅŅ) виĐēĐžŅиŅŅОвŅŅŅŅŅŅ FastAPI Đ´ĐģŅ:
+ * `Body()`
+ * `File()`
+ * `Form()`
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐĻĐĩĐš ŅŅаŅиК ĐŋаŅаĐŧĐĩŅŅ `examples`, ŅĐŋĐĩŅиŅŅŅĐŊиК Đ´ĐģŅ OpenAPI, ŅĐĩĐŋĐĩŅ ĐŊаСиваŅŅŅŅŅ `openapi_examples`, ĐŋĐžŅиĐŊаŅŅи С FastAPI вĐĩŅŅŅŅ `0.103.0`.
+
+///
+
+### ĐĐžĐģĐĩ `examples` Ņ JSON Schema
+
+ĐŅСĐŊŅŅĐĩ JSON Schema дОдаĐģа ĐŋĐžĐģĐĩ `examples` Ņ ĐŊĐžĐ˛Ņ Đ˛ĐĩŅŅŅŅ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ.
+
+РвĐļĐĩ OpenAPI 3.1.0 йаСŅŅŅŅŅŅ ĐŊа ŅŅĐš ĐŊОвŅĐš вĐĩŅŅŅŅ (JSON Schema 2020-12), ŅĐēа вĐēĐģŅŅĐ°Ņ ĐŋĐžĐģĐĩ `examples`.
+
+ĐĸĐĩĐŋĐĩŅ ŅĐĩ ĐŋĐžĐģĐĩ `examples` Ņ ĐŋŅŅĐžŅиŅĐĩŅĐŊиĐŧ Ņ ĐˇĐ°ĐŧŅĐŊŅŅ ŅŅаŅĐĩ (Ņ ĐēаŅŅĐžĐŧĐŊĐĩ) ĐŋĐžĐģĐĩ `example`, ŅĐēĐĩ ŅŅаĐģĐž СаŅŅаŅŅĐģиĐŧ.
+
+ĐОвĐĩ ĐŋĐžĐģĐĩ `examples` Ņ JSON Schema â ŅĐĩ **ĐŋŅĐžŅŅĐž ŅĐŋиŅĐžĐē (`list`)** ĐŋŅиĐēĐģадŅв, ĐąĐĩС дОдаŅĐēОвиŅ
ĐŧĐĩŅадаĐŊиŅ
(ĐŊа вŅĐ´ĐŧŅĐŊŅ Đ˛ŅĐ´ OpenAPI).
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐавŅŅŅ ĐŋŅŅĐģŅ ŅĐžĐŗĐž, ŅĐē С'ŅвивŅŅ OpenAPI 3.1.0, ŅĐēиК ĐŋŅĐ´ŅŅиĐŧŅвав examples Ņ JSON Schema, ŅĐŊŅŅŅŅĐŧĐĩĐŊŅ Swagger UI ŅĐĩ Đ´ĐĩŅĐēиК ŅĐ°Ņ ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅвав ŅŅ Đ˛ĐĩŅŅŅŅ (ĐŋŅĐ´ŅŅиĐŧĐēа СâŅвиĐģаŅŅ Đˇ вĐĩŅŅŅŅ 5.0.0 đ).
+
+ЧĐĩŅĐĩС ŅĐĩ вĐĩŅŅŅŅ FastAPI Đ´Đž 0.99.0 вŅĐĩ ŅĐĩ виĐēĐžŅиŅŅОвŅваĐģи вĐĩŅŅŅŅ OpenAPI ĐŊиĐļŅŅ ĐˇĐ° 3.1.0.
+
+///
+
+### `Examples` в Pydantic Ņ FastAPI
+
+ĐĐžĐģи Đи дОдаŅŅĐĩ `examples` Ņ ĐŧОдĐĩĐģŅ Pydantic ŅĐĩŅĐĩС `schema_extra` айО `Field(examples=["something"])`, ŅŅ ĐŋŅиĐēĐģади дОдаŅŅŅŅŅ Đ´Đž **JSON Schema** ŅŅŅŅ ĐŧОдĐĩĐģŅ.
+
+Đ ŅŅ **JSON Schema** Pydantic-ĐŧОдĐĩĐģŅ Đ˛ĐēĐģŅŅаŅŅŅŅŅ Đ´Đž **OpenAPI** ĐаŅĐžĐŗĐž API, а ĐŋĐžŅŅĐŧ виĐēĐžŅиŅŅОвŅŅŅŅŅŅ Đ˛ UI Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ (docs UI).
+
+ĐŖ вĐĩŅŅŅŅŅ
FastAPI Đ´Đž 0.99.0 (ĐŋĐžŅиĐŊаŅŅи С 0.99.0 виĐēĐžŅиŅŅОвŅŅŅŅŅŅ ĐŊОвŅŅиК OpenAPI 3.1.0), ĐēĐžĐģи Đи виĐēĐžŅиŅŅОвŅваĐģи `example` айО `examples` С ŅĐŊŅиĐŧи ŅŅиĐģŅŅаĐŧи (`Query()`, `Body()` ŅĐžŅĐž), ŅŅ ĐŋŅиĐēĐģади ĐŊĐĩ дОдаваĐģиŅŅ Đ´Đž JSON Schema, ŅĐēиК ĐžĐŋиŅŅŅ ŅŅ Đ´Đ°ĐŊŅ (ĐŊавŅŅŅ ĐŊĐĩ Đ´Đž вĐģаŅĐŊĐžŅ Đ˛ĐĩŅŅŅŅ JSON Schema Ņ OpenAPI). ĐаŅĐžĐŧŅŅŅŅ Đ˛ĐžĐŊи дОдаваĐģиŅŅ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž Đ´Đž ĐžĐŋиŅŅ *ОйŅОйĐŊиĐēа ŅĐģŅŅ
Ņ* *(path operation)* в OpenAPI (ŅОйŅĐž ĐŋОСа ĐŧĐĩĐļаĐŧи ŅаŅŅиĐŊ, ŅĐēŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅŅŅŅ JSON Schema).
+
+ĐĐģĐĩ ŅĐĩĐŋĐĩŅ, ĐēĐžĐģи FastAPI 0.99.0 Ņ Đ˛Đ¸ŅĐĩ виĐēĐžŅиŅŅОвŅŅŅŅ OpenAPI 3.1.0, а ŅОК â JSON Schema 2020-12, ŅаСОĐŧ ŅС Swagger UI 5.0.0 Ņ Đ˛Đ¸ŅĐĩ â вŅĐĩ ŅŅаĐģĐž ĐąŅĐģŅŅ ŅĐˇĐŗĐžĐ´ĐļĐĩĐŊиĐŧ, Ņ examples ŅĐĩĐŋĐĩŅ Đ˛ĐēĐģŅŅаŅŅŅŅŅ Đ´Đž JSON Schema.
+
+### Swagger UI Ņа ŅĐŋĐĩŅиŅŅŅĐŊŅ Đ´ĐģŅ OpenAPI `examples`
+
+РаĐŊŅŅĐĩ (ŅŅаĐŊĐžĐŧ ĐŊа 26 ŅĐĩŅĐŋĐŊŅ 2023 ŅĐžĐēŅ) Swagger UI ĐŊĐĩ ĐŋŅĐ´ŅŅиĐŧŅвав ĐēŅĐģŅĐēа ĐŋŅиĐēĐģадŅв Ņ JSON Schema, ŅĐžĐŧŅ ĐēĐžŅиŅŅŅваŅŅ ĐŊĐĩ ĐŧаĐģи ĐŧĐžĐļĐģивОŅŅŅ ĐŋĐžĐēаСаŅи Đ´ĐĩĐēŅĐģŅĐēа ĐŋŅиĐēĐģадŅв Ņ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+ЊОй виŅŅŅиŅи ŅĐĩ, FastAPI ĐŋĐžŅиĐŊаŅŅи С вĐĩŅŅŅŅ 0.103.0 **дОдав ĐŋŅĐ´ŅŅиĐŧĐēŅ** ŅŅаŅĐžĐŗĐž **OpenAPI-ŅĐŋĐĩŅиŅŅŅĐŊĐžĐŗĐž** ĐŋĐžĐģŅ `examples` ŅĐĩŅĐĩС ĐŊОвиК ĐŋаŅаĐŧĐĩŅŅ `openapi_examples`. đ¤
+
+### ĐŅĐ´ŅŅĐŧĐžĐē
+
+РаĐŊŅŅĐĩ Ņ ĐēаСав, ŅĐž ĐŊĐĩ ĐģŅĐąĐģŅ ŅŅŅĐžŅŅŅ... а ŅĐĩĐŋĐĩŅ ĐžŅŅ Ņ â ŅОСĐŋОвŅĐ´Đ°Ņ "ŅĐĩŅ
ĐŊŅŅĐŊŅ ŅŅŅĐžŅиŅĐŊŅ" ĐģĐĩĐēŅŅŅ. đ
+
+ĐĐžŅĐžŅĐēĐž: **ĐžĐŊОвŅŅŅŅŅ Đ´Đž FastAPI 0.99.0 айО виŅĐĩ** â Ņ Đ˛ŅĐĩ ŅŅаĐŊĐĩ СĐŊаŅĐŊĐž **ĐŋŅĐžŅŅŅŅиĐŧ, ŅĐˇĐŗĐžĐ´ĐļĐĩĐŊиĐŧ Ņа ŅĐŊŅŅŅŅивĐŊĐž СŅОСŅĐŧŅĐģиĐŧ**, Ņ ĐаĐŧ ĐŊĐĩ дОвĐĩĐ´ĐĩŅŅŅŅ ĐˇĐŊаŅи вŅŅ ŅŅ ŅŅŅĐžŅиŅĐŊŅ Đ´ĐĩŅаĐģŅ. đ
diff --git a/docs/uk/docs/tutorial/security/index.md b/docs/uk/docs/tutorial/security/index.md
new file mode 100644
index 0000000000..c3d94be8d9
--- /dev/null
+++ b/docs/uk/docs/tutorial/security/index.md
@@ -0,0 +1,104 @@
+# ĐĐĩСĐŋĐĩĐēа
+
+ĐŅĐŊŅŅ ĐąĐ°ĐŗĐ°ŅĐž ŅĐŋĐžŅОйŅв ŅĐĩаĐģŅСŅваŅи ĐąĐĩСĐŋĐĩĐēŅ, авŅĐĩĐŊŅиŅŅĐēаŅŅŅ Ņа авŅĐžŅиСаŅŅŅ.
+
+ĐĻĐĩ СаСвиŅаК ŅĐēĐģадĐŊа Ņ "ĐŊĐĩĐŋŅĐžŅŅа" ŅĐĩĐŧа.
+
+ĐŖ ĐąĐ°ĐŗĐ°ŅŅĐžŅ
ŅŅĐĩĐšĐŧвОŅĐēаŅ
Ņ ŅиŅŅĐĩĐŧаŅ
СайĐĩСĐŋĐĩŅĐĩĐŊĐŊŅ ĐąĐĩСĐŋĐĩĐēи Ņа авŅĐĩĐŊŅиŅŅĐēаŅŅŅ ĐˇĐ°ĐšĐŧĐ°Ņ Đ˛ĐĩĐģиŅĐĩСĐŊŅ ŅаŅŅиĐŊŅ ĐˇŅŅиĐģŅ Ņ ĐēĐžĐ´Ņ (ŅĐŊĐžĐ´Ņ â ĐŋĐžĐŊад 50% вŅŅĐžĐŗĐž ĐŊаĐŋиŅаĐŊĐžĐŗĐž ĐēОдŅ).
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ĐēŅĐģŅĐēа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв, ŅĐēŅ Đ´ĐžĐŋĐžĐŧĐžĐļŅŅŅ ĐаĐŧ вĐŋĐžŅаŅиŅŅ Đˇ **ĐąĐĩСĐŋĐĩĐēĐžŅ** ĐģĐĩĐŗĐēĐž, ŅвидĐēĐž, ŅŅаĐŊдаŅŅĐŊиĐŧ ŅĐŋĐžŅОйОĐŧ, ĐąĐĩС ĐŊĐĩОйŅ
ŅĐ´ĐŊĐžŅŅŅ Đ˛Đ¸Đ˛ŅаŅи вŅŅ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ ĐąĐĩСĐŋĐĩĐēи.
+
+ĐĐģĐĩ ŅĐŋĐžŅаŅĐēŅ â ĐēŅĐģŅĐēа ĐēĐžŅĐžŅĐēиŅ
ĐŋĐžĐŊŅŅŅ.
+
+## ĐĐžŅĐŋŅŅаŅŅĐĩ?
+
+Đ¯ĐēŅĐž ĐаĐŧ ĐŊĐĩ ŅŅĐēĐ°Đ˛Ņ Đ˛ŅŅ ŅŅ ŅĐĩŅĐŧŅĐŊи Đš ĐŋŅĐžŅŅĐž ĐŋĐžŅŅŅĐąĐŊĐž *ŅвидĐēĐž* дОдаŅи авŅĐĩĐŊŅиŅŅĐēаŅŅŅ ĐˇĐ° ĐģĐžĐŗŅĐŊĐžĐŧ Ņ ĐŋаŅĐžĐģĐĩĐŧ â ĐŋĐĩŅĐĩŅ
ОдŅŅĐĩ Đ´Đž ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģŅв.
+
+## OAuth2
+
+OAuth2 â ŅĐĩ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ, ŅĐž ĐžĐŋиŅŅŅ ĐēŅĐģŅĐēа ŅĐŋĐžŅОйŅв ОйŅОйĐēи авŅĐĩĐŊŅиŅŅĐēаŅŅŅ Ņа авŅĐžŅиСаŅŅŅ.
+
+ĐĻĐĩ Đ´ĐžŅиŅŅ ĐžĐą'ŅĐŧĐŊа ŅĐŋĐĩŅиŅŅĐēаŅŅŅ, ŅĐēа ĐžŅ
ĐžĐŋĐģŅŅ ŅĐēĐģадĐŊŅ Đ˛Đ¸ĐŋадĐēи виĐēĐžŅиŅŅаĐŊĐŊŅ.
+
+ĐĐžĐŊа вĐēĐģŅŅĐ°Ņ ŅĐŋĐžŅОйи авŅĐĩĐŊŅиŅŅĐēаŅŅŅ ŅĐĩŅĐĩС "ŅŅĐĩŅŅ ŅŅĐžŅĐžĐŊŅ".
+
+ХаĐŧĐĩ ŅĐĩ ĐģĐĩĐļиŅŅ Đ˛ ĐžŅĐŊĐžĐ˛Ņ "вŅ
ĐžĐ´Ņ ŅĐĩŅĐĩС Google, Facebook, X (Twitter), GitHub" ŅĐžŅĐž.
+
+### OAuth 1
+
+РаĐŊŅŅĐĩ ŅŅĐŊŅвав OAuth 1, ŅĐēиК СĐŊаŅĐŊĐž вŅĐ´ŅŅСĐŊŅŅŅŅŅŅ Đ˛ŅĐ´ OAuth2 Ņ Ņ ŅĐēĐģадĐŊŅŅиĐŧ, ĐžŅĐēŅĐģŅĐēи ĐŧŅŅŅив ŅĐŋĐĩŅиŅŅĐēаŅŅŅ Đ´ĐģŅ ŅиŅŅŅваĐŊĐŊŅ ĐēĐžĐŧŅĐŊŅĐēаŅŅĐš.
+
+ĐаŅаС ĐŧаКĐļĐĩ ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅŅŅŅ.
+
+OAuth2 ĐŊĐĩ вĐēаСŅŅ, ŅĐē ŅаĐŧĐĩ ŅиŅŅŅваŅи С'ŅĐ´ĐŊаĐŊĐŊŅ â вОĐŊĐž ĐžŅŅĐēŅŅ, ŅĐž Đ˛Đ°Ņ ĐˇĐ°ŅŅĐžŅŅĐŊĐžĐē ĐŋŅаŅŅŅ ŅĐĩŅĐĩС HTTPS.
+
+/// tip | ĐĐžŅада
+
+ĐŖ ŅОСдŅĐģŅ ĐŋŅĐž **Đ´ĐĩĐŋĐģОК** Đи ĐŋОйаŅиŅĐĩ, ŅĐē ĐŊаĐģаŅŅŅваŅи HTTPS ĐąĐĩСĐēĐžŅŅОвĐŊĐž С Traefik Ņа Let's Encrypt.
+
+///
+
+## OpenID Connect
+
+OpenID Connect â ŅĐĩ ОдĐŊа ŅĐŋĐĩŅиŅŅĐēаŅŅŅ, ĐŋОйŅдОваĐŊа ĐŊа ĐžŅĐŊĐžĐ˛Ņ **OAuth2**.
+
+ĐĐžĐŊа ŅОСŅиŅŅŅ OAuth2, ŅŅĐžŅĐŊŅŅŅи Đ´ĐĩŅĐēŅ ĐŊĐĩОдĐŊОСĐŊаŅĐŊĐžŅŅŅ Đ´ĐģŅ Đ´ĐžŅŅĐŗĐŊĐĩĐŊĐŊŅ ĐēŅаŅĐžŅ ŅŅĐŧŅŅĐŊĐžŅŅŅ.
+
+ĐаĐŋŅиĐēĐģад, вŅ
ŅĐ´ ŅĐĩŅĐĩС Google виĐēĐžŅиŅŅОвŅŅ OpenID Connect (ŅĐēиК йаСŅŅŅŅŅŅ ĐŊа OAuth2).
+
+ĐĐģĐĩ вŅ
ŅĐ´ ŅĐĩŅĐĩС Facebook â ĐŊŅ. ĐŅĐŊ ĐŧĐ°Ņ Đ˛ĐģаŅĐŊŅ ŅĐĩаĐģŅСаŅŅŅ ĐŊа ĐąĐ°ĐˇŅ OAuth2.
+
+### OpenID (ĐŊĐĩ "OpenID Connect")
+
+ĐŅĐŊŅваĐģа ŅаĐēĐžĐļ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ "OpenID", ŅĐēа ĐŊаĐŧĐ°ĐŗĐ°ĐģаŅŅ ŅОСвĘŧŅСаŅи ŅŅ ŅаĐŧŅ ĐˇĐ°Đ´Đ°ŅŅ, ŅĐž Đš **OpenID Connect**, аĐģĐĩ ĐŊĐĩ йаСŅваĐģаŅŅ ĐŊа OAuth2.
+
+ĐĻĐĩ ĐąŅĐģа СОвŅŅĐŧ ŅĐŊŅа ŅиŅŅĐĩĐŧа, Ņ ŅŅĐžĐŗĐžĐ´ĐŊŅ Đ˛ĐžĐŊа ĐŧаКĐļĐĩ ĐŊĐĩ виĐēĐžŅиŅŅОвŅŅŅŅŅŅ.
+
+## OpenAPI
+
+OpenAPI (ŅаĐŊŅŅĐĩ Swagger) â ŅĐĩ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ Đ´ĐģŅ ĐŋОйŅдОви API (ŅĐĩĐŋĐĩŅ ĐŋŅĐ´ ĐĩĐŗŅĐ´ĐžŅ Linux Foundation).
+
+**FastAPI** йаСŅŅŅŅŅŅ ĐŊа **OpenAPI**.
+
+ĐавдŅĐēи ŅŅĐžĐŧŅ Đи ĐžŅŅиĐŧŅŅŅĐĩ авŅĐžĐŧаŅиŅĐŊŅ ŅĐŊŅĐĩŅаĐēŅивĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ, ĐŗĐĩĐŊĐĩŅаŅŅŅ ĐēĐžĐ´Ņ Ņа ĐąĐ°ĐŗĐ°ŅĐž ŅĐŊŅĐžĐŗĐž.
+
+OpenAPI дОСвОĐģŅŅ ĐžĐŋиŅŅваŅи ŅŅСĐŊŅ "ŅŅ
ĐĩĐŧи" ĐąĐĩСĐŋĐĩĐēи.
+
+ĐиĐēĐžŅиŅŅОвŅŅŅи ŅŅ
, Đи ĐŧĐžĐļĐĩŅĐĩ ŅĐēĐžŅиŅŅаŅиŅŅ Đ˛ŅŅĐŧа ŅиĐŧи ŅĐŊŅŅŅŅĐŧĐĩĐŊŅаĐŧи, ŅĐž йаСŅŅŅŅŅŅ ĐŊа ŅŅаĐŊдаŅŅаŅ
, СОĐēŅĐĩĐŧа ŅĐŊŅĐĩŅаĐēŅивĐŊиĐŧи ŅиŅŅĐĩĐŧаĐŧи Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ.
+
+OpenAPI виСĐŊаŅĐ°Ņ ŅаĐēŅ ŅŅ
ĐĩĐŧи ĐąĐĩСĐŋĐĩĐēи:
+
+* `apiKey`: ŅĐŋĐĩŅиŅŅŅĐŊиК Đ´ĐģŅ ĐˇĐ°ŅŅĐžŅŅĐŊĐēŅ ĐēĐģŅŅ, ŅĐēиК ĐŧĐžĐļĐĩ ĐŋĐĩŅĐĩдаваŅиŅŅ ŅĐĩŅĐĩС:
+ * ĐаŅаĐŧĐĩŅŅ ĐˇĐ°ĐŋиŅŅ.
+ * ĐĐ°ĐŗĐžĐģОвОĐē.
+ * Cookie.
+* `http`: ŅŅаĐŊдаŅŅĐŊŅ ĐŧĐĩŅОди HTTP-авŅĐĩĐŊŅиŅŅĐēаŅŅŅ, вĐēĐģŅŅаŅŅи:
+ * `bearer`: ĐˇĐ°ĐŗĐžĐģОвОĐē `Authorization` ĐˇŅ ĐˇĐŊаŅĐĩĐŊĐŊŅĐŧ `Bearer` Ņа ŅĐžĐēĐĩĐŊĐžĐŧ. ĐĻĐĩ ŅŅĐŋадĐēОваĐŊĐž С OAuth2.
+ * HTTP Basic авŅĐĩĐŊŅиŅŅĐēаŅŅŅ
+ * HTTP Digest, ŅĐžŅĐž.
+* `oauth2`: ŅŅŅ ŅĐŋĐžŅОйи ОйŅОйĐēи ĐąĐĩСĐŋĐĩĐēи Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ OAuth2 (ŅаĐē СваĐŊŅ ÂĢĐŋĐžŅĐžĐēиÂģ).
+ * ĐĐĩŅĐēŅ Đˇ ŅиŅ
ĐŋĐžŅĐžĐēŅв ĐŋŅĐ´Ņ
ОдŅŅŅ Đ´ĐģŅ ŅŅвОŅĐĩĐŊĐŊŅ Đ˛ĐģаŅĐŊĐžĐŗĐž ĐŋŅОваКдĐĩŅа авŅĐĩĐŊŅиŅŅĐēаŅŅŅ OAuth 2.0 (ĐŊаĐŋŅиĐēĐģад, Google, Facebook, X (Twitter), GitHub ŅĐžŅĐž):
+ * `implicit`â ĐŊĐĩŅвĐŊиК
+ * `clientCredentials`â ОйĐģŅĐēĐžĐ˛Ņ Đ´Đ°ĐŊŅ ĐēĐģŅŅĐŊŅа
+ * `authorizationCode` â ĐēОд авŅĐžŅиСаŅŅŅ
+ * ĐĐģĐĩ Ņ ĐžĐ´Đ¸ĐŊ ĐžĐēŅĐĩĐŧиК ÂĢĐŋĐžŅŅĐēÂģ, ŅĐēиК ŅĐ´ĐĩаĐģŅĐŊĐž ĐŋŅĐ´Ņ
ОдиŅŅ Đ´ĐģŅ ŅĐĩаĐģŅСаŅŅŅ Đ°Đ˛ŅĐĩĐŊŅиŅŅĐēаŅŅŅ Đ˛ŅĐĩŅĐĩдиĐŊŅ ĐžĐ´ĐŊĐžĐŗĐž дОдаŅĐēŅ:
+ * `password`: Ņ ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģаŅ
ĐąŅĐ´Đĩ ĐŋŅиĐēĐģад виĐēĐžŅиŅŅаĐŊĐŊŅ ŅŅĐžĐŗĐž ĐŋĐžŅĐžĐēŅ.
+* `openIdConnect`: дОСвОĐģŅŅ Đ°Đ˛ŅĐžĐŧаŅиŅĐŊĐž виŅвĐģŅŅи ĐŋаŅаĐŧĐĩŅŅи авŅĐĩĐŊŅиŅŅĐēаŅŅŅ OAuth2.
+ * ĐĻĐĩ авŅĐžĐŧаŅиŅĐŊĐĩ виŅвĐģĐĩĐŊĐŊŅ Đ˛Đ¸ĐˇĐŊаŅаŅŅŅŅŅ Ņ ŅĐŋĐĩŅиŅŅĐēаŅŅŅ OpenID Connect.
+
+
+/// tip | ĐĐžŅада
+
+ĐĐŊŅĐĩĐŗŅаŅŅŅ ŅĐŊŅиŅ
ĐŋŅОваКдĐĩŅŅв авŅĐĩĐŊŅиŅŅĐēаŅŅŅ/авŅĐžŅиСаŅŅŅ, ŅаĐēиŅ
ŅĐē Google, Facebook, X (Twitter), GitHub ŅĐžŅĐž â ŅаĐēĐžĐļ ĐŧĐžĐļĐģива Ņ Đ˛ŅĐ´ĐŊĐžŅĐŊĐž ĐŋŅĐžŅŅа.
+
+ĐаКŅĐēĐģадĐŊŅŅĐĩ â ŅĐĩ ŅŅвОŅиŅи вĐģаŅĐŊĐžĐŗĐž ĐŋŅОваКдĐĩŅа авŅĐĩĐŊŅиŅŅĐēаŅŅŅ/авŅĐžŅиСаŅŅŅ, ŅĐē Google Ņи Facebook. ĐĐģĐĩ **FastAPI** ĐŊĐ°Đ´Đ°Ņ ĐаĐŧ ŅĐŊŅŅŅŅĐŧĐĩĐŊŅи, ŅОй СŅОйиŅи ŅĐĩ ĐģĐĩĐŗĐēĐž, ĐąĐĩŅŅŅи ĐŊа ŅĐĩĐąĐĩ ваĐļĐēŅ ŅаŅŅиĐŊŅ ŅОйОŅи.
+
+///
+
+## ĐĐŊŅŅŅŅĐŧĐĩĐŊŅи **FastAPI**
+
+FastAPI ĐŊĐ°Đ´Đ°Ņ ĐēŅĐģŅĐēа ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв Đ´ĐģŅ ĐēĐžĐļĐŊĐžŅ Đˇ ĐžĐŋиŅаĐŊиŅ
ŅŅ
ĐĩĐŧ ĐąĐĩСĐŋĐĩĐēи в ĐŧОдŅĐģŅ `fastapi.security`, ŅĐēŅ ŅĐŋŅĐžŅŅŅŅŅ Đ˛Đ¸ĐēĐžŅиŅŅаĐŊĐŊŅ ŅиŅ
ĐŧĐĩŅ
аĐŊŅСĐŧŅв СаŅ
иŅŅŅ.
+
+ĐŖ ĐŊаŅŅŅĐŋĐŊиŅ
ŅОСдŅĐģаŅ
Đи ĐŋОйаŅиŅĐĩ, ŅĐē дОдаŅи ĐąĐĩСĐŋĐĩĐēŅ Đ´Đž ŅĐ˛ĐžĐŗĐž API Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ ŅиŅ
ŅĐŊŅŅŅŅĐŧĐĩĐŊŅŅв **FastAPI**.
+
+Đ ŅаĐēĐžĐļ ĐŋОйаŅиŅĐĩ, ŅĐē вОĐŊа авŅĐžĐŧаŅиŅĐŊĐž ŅĐŊŅĐĩĐŗŅŅŅŅŅŅŅ Đ˛ ŅĐŊŅĐĩŅаĐēŅивĐŊŅ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Đ˛Đ°ŅĐžĐŗĐž API.
diff --git a/docs/uk/docs/tutorial/static-files.md b/docs/uk/docs/tutorial/static-files.md
new file mode 100644
index 0000000000..a84782d8f1
--- /dev/null
+++ b/docs/uk/docs/tutorial/static-files.md
@@ -0,0 +1,40 @@
+# ĐĄŅаŅиŅĐŊŅ ŅаКĐģи
+
+Đи ĐŧĐžĐļĐĩŅĐĩ авŅĐžĐŧаŅиŅĐŊĐž ĐŊадаваŅи ŅŅаŅиŅĐŊŅ ŅаКĐģи С ĐēаŅаĐģĐžĐŗŅ, виĐēĐžŅиŅŅОвŅŅŅи `StaticFiles`.
+
+## ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `StaticFiles`
+
+* ĐĐŧĐŋĐžŅŅŅĐšŅĐĩ `StaticFiles`.
+* "ĐŅĐ´'ŅĐ´ĐŊаŅи" ĐĩĐēСĐĩĐŧĐŋĐģŅŅ `StaticFiles()` С вĐēаСаĐŊĐŊŅĐŧ ĐŊĐĩОйŅ
ŅĐ´ĐŊĐžĐŗĐž ŅĐģŅŅ
Ņ.
+
+{* ../../docs_src/static_files/tutorial001.py hl[2,6] *}
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `from starlette.staticfiles import StaticFiles`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅОК ŅаĐŧиК `starlette.staticfiles`, ŅĐž Đš `fastapi.staticfiles` Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēŅв. ĐĐģĐĩ ŅаĐēŅиŅĐŊĐž вŅĐŊ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐŋĐžŅ
ОдиŅŅ ŅС Starlette.
+
+///
+
+### ĐŠĐž ŅаĐēĐĩ "ĐŅĐ´'ŅĐ´ĐŊаĐŊĐŊŅ"
+
+"ĐŅĐ´'ŅĐ´ĐŊаĐŊĐŊŅ" ОСĐŊаŅĐ°Ņ Đ´ĐžĐ´Đ°Đ˛Đ°ĐŊĐŊŅ ĐŋОвĐŊĐžŅŅĐŊĐŊĐžĐŗĐž "ĐŊĐĩСаĐģĐĩĐļĐŊĐžĐŗĐž" СаŅŅĐžŅŅĐŊĐēŅ ĐˇĐ° ĐŋĐĩвĐŊиĐŧ ŅĐģŅŅ
ĐžĐŧ, ŅĐēиК ĐŋĐžŅŅĐŧ ОйŅОйĐģŅŅ Đ˛ŅŅ ĐŋŅĐ´ ŅĐģŅŅ
и.
+
+ĐĻĐĩ вŅĐ´ŅŅСĐŊŅŅŅŅŅŅ Đ˛ŅĐ´ виĐēĐžŅиŅŅаĐŊĐŊŅ `APIRouter`, ĐžŅĐēŅĐģŅĐēи ĐŋŅĐ´'ŅĐ´ĐŊаĐŊиК СаŅŅĐžŅŅĐŊĐžĐē Ņ ĐŋОвĐŊŅŅŅŅ ĐŊĐĩСаĐģĐĩĐļĐŊиĐŧ. OpenAPI Ņа Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Đ˛Đ°ŅĐžĐŗĐž ĐžŅĐŊОвĐŊĐžĐŗĐž СаŅŅĐžŅŅĐŊĐēŅ ĐŊĐĩ ĐąŅĐ´ŅŅŅ ĐˇĐŊаŅи ĐŊŅŅĐžĐŗĐž ĐŋŅĐž Đ˛Đ°Ņ ĐŋŅĐ´'ŅĐ´ĐŊаĐŊиК СаŅŅĐžŅŅĐŊĐžĐē.
+
+Đи ĐŧĐžĐļĐĩŅĐĩ Đ´ŅСĐŊаŅиŅŅ ĐąŅĐģŅŅĐĩ ĐŋŅĐž ŅĐĩ в [ĐĐžŅŅĐąĐŊиĐēŅ Đ´ĐģŅ ĐŋŅĐžŅŅĐŊŅŅиŅ
ĐēĐžŅиŅŅŅваŅŅв](../advanced/index.md){.internal-link target=_blank}.
+
+## ĐĐĩŅаĐģŅ
+
+ĐĐĩŅŅĐĩ `"/static"` вĐēаСŅŅ ĐŊа ĐŋŅĐ´ ŅĐģŅŅ
, Са ŅĐēиĐŧ ĐąŅĐ´Đĩ "ĐŋŅĐ´'ŅĐ´ĐŊаĐŊĐž" ŅĐĩĐš ĐŊОвиК "СаŅŅĐžŅŅĐŊĐžĐē". ĐĸĐžĐŧŅ ĐąŅĐ´Ņ-ŅĐēиК ŅĐģŅŅ
, ŅĐēиК ĐŋĐžŅиĐŊаŅŅŅŅŅ Đˇ `"/static"`, ĐąŅĐ´Đĩ ОйŅОйĐģŅŅиŅŅ ĐŊиĐŧ.
+
+`directory="static"` виСĐŊаŅĐ°Ņ ĐēаŅаĐģĐžĐŗ, ŅĐž ĐŧŅŅŅиŅŅ Đ˛Đ°ŅŅ ŅŅаŅиŅĐŊŅ ŅаКĐģи.
+
+`name="static"` ŅĐĩ ŅĐŧ'Ņ, ŅĐēĐĩ ĐŧĐžĐļĐŊа виĐēĐžŅиŅŅОвŅваŅи вŅĐĩŅĐĩдиĐŊŅ **FastAPI**.
+
+ĐŖŅŅ ŅŅ ĐŋаŅаĐŧĐĩŅŅи ĐŧĐžĐļŅŅŅ ĐąŅŅи СĐŧŅĐŊĐĩĐŊŅ Đ˛ŅĐ´ĐŋОвŅĐ´ĐŊĐž Đ´Đž ĐŋĐžŅŅĐĩĐą Ņ ĐžŅОйĐģивОŅŅĐĩĐš ваŅĐžĐŗĐž СаŅŅĐžŅŅĐŊĐēŅ.
+
+## ĐОдаŅĐēОва ŅĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐĐĩŅаĐģŅĐŊŅŅĐĩ ĐŋŅĐž ĐŊаĐģаŅŅŅваĐŊĐŊŅ Ņа ĐŧĐžĐļĐģивОŅŅŅ ĐŧĐžĐļĐŊа Đ´ŅСĐŊаŅиŅŅ Đ˛ Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ Starlette ĐŋŅĐž ŅŅаŅиŅĐŊŅ ŅаКĐģи.
diff --git a/docs/uk/docs/tutorial/testing.md b/docs/uk/docs/tutorial/testing.md
new file mode 100644
index 0000000000..25fc370d67
--- /dev/null
+++ b/docs/uk/docs/tutorial/testing.md
@@ -0,0 +1,240 @@
+# ĐĸĐĩŅŅŅваĐŊĐŊŅ
+
+ĐĸĐĩŅŅŅваĐŊĐŊŅ **FastAPI** дОдаŅĐēŅв Ņ ĐŋŅĐžŅŅиĐŧ Ņа ĐĩŅĐĩĐēŅивĐŊиĐŧ СавдŅĐēи ĐąŅĐąĐģŅĐžŅĐĩŅŅ Starlette, ŅĐēа йаСŅŅŅŅŅŅ ĐŊа HTTPX.
+ĐŅĐēŅĐģŅĐēи HTTPX ŅОСŅОйĐģĐĩĐŊиК ĐŊа ĐžŅĐŊĐžĐ˛Ņ Requests, ĐšĐžĐŗĐž API Ņ ŅĐŊŅŅŅŅивĐŊĐž СŅОСŅĐŧŅĐģиĐŧ Đ´ĐģŅ ŅиŅ
, Ņ
ŅĐž вĐļĐĩ СĐŊаКОĐŧиК С Requests.
+
+Đ ĐšĐžĐŗĐž Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи pytest ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž С **FastAPI**.
+
+## ĐиĐēĐžŅиŅŅаĐŊĐŊŅ `TestClient`
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ЊОй виĐēĐžŅиŅŅОвŅваŅи `TestClient`, ŅĐŋĐžŅаŅĐēŅ Đ˛ŅŅаĐŊОвŅŅŅ `httpx`.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи ŅŅвОŅиĐģи [вŅŅŅŅаĐģŅĐŊĐĩ ŅĐĩŅĐĩдОвиŅĐĩ](../virtual-environments.md){.internal-link target=_blank}, аĐēŅивŅваĐģи ĐšĐžĐŗĐž, а ĐŋĐžŅŅĐŧ вŅŅаĐŊОвиĐģи ŅаĐŧŅ ĐąŅĐąĐģŅĐžŅĐĩĐēŅ, ĐŊаĐŋŅиĐēĐģад:
+
+```console
+$ pip install httpx
+```
+
+///
+
+ĐĐŧĐŋĐžŅŅŅĐšŅĐĩ `TestClient`.
+
+ĐĄŅвОŅŅŅŅ `TestClient`, ĐŋĐĩŅĐĩдавŅи КОĐŧŅ ĐĐ°Ņ ĐˇĐ°ŅŅĐžŅŅĐŊĐžĐē **FastAPI**.
+
+ĐĄŅвОŅŅĐšŅĐĩ ŅŅĐŊĐēŅŅŅ Đˇ ŅĐŧĐĩĐŊаĐŧи, ŅĐž ĐŋĐžŅиĐŊаŅŅŅŅŅ Đˇ `test_` (ŅĐĩ ŅŅаĐŊдаŅŅĐŊа ŅĐŗĐžĐ´Đ° Đ´ĐģŅ `pytest`).
+
+ĐиĐēĐžŅиŅŅОвŅĐšŅĐĩ Ой'ŅĐēŅ `TestClient` ŅаĐē ŅаĐŧĐž ŅĐē Ņ `httpx`.
+
+ĐаĐŋиŅŅĐšŅĐĩ ĐŋŅĐžŅŅŅ `assert`-виŅаСи ĐˇŅ ŅŅаĐŊдаŅŅĐŊиĐŧи виŅаСаĐŧи Python, ŅĐēŅ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋĐĩŅĐĩвŅŅиŅи (ŅĐĩ ŅаĐēĐžĐļ ŅŅаĐŊдаŅŅ Đ´ĐģŅ `pytest`).
+
+{* ../../docs_src/app_testing/tutorial001.py hl[2,12,15:18] *}
+
+
+/// tip | ĐĐžŅада
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž ŅĐĩŅŅĐžĐ˛Ņ ŅŅĐŊĐēŅŅŅ â ŅĐĩ СвиŅаКĐŊŅ `def`, а ĐŊĐĩ `async def`.
+
+ĐиĐēĐģиĐēи ĐēĐģŅŅĐŊŅа ŅаĐēĐžĐļ СвиŅаКĐŊŅ, ĐąĐĩС виĐēĐžŅиŅŅаĐŊĐŊŅ `await`.
+
+ĐĻĐĩ дОСвОĐģŅŅ Đ˛Đ¸ĐēĐžŅиŅŅОвŅваŅи `pytest` ĐąĐĩС СаКвиŅ
ŅŅĐēĐģадĐŊĐĩĐŊŅ.
+
+///
+
+/// note | ĐĸĐĩŅ
ĐŊŅŅĐŊŅ Đ´ĐĩŅаĐģŅ
+
+Đи ŅаĐēĐžĐļ ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи `from starlette.testclient import TestClient`.
+
+**FastAPI** ĐŊĐ°Đ´Đ°Ņ ŅОК ŅаĐŧиК `starlette.testclient` ĐŋŅĐ´ ĐŊĐ°ĐˇĐ˛ĐžŅ `fastapi.testclient` Đ´ĐģŅ ĐˇŅŅŅĐŊĐžŅŅŅ ŅОСŅОйĐŊиĐēŅв, аĐģĐĩ вŅĐŊ ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž ĐŋĐžŅ
ОдиŅŅ ŅС Starlette.
+
+///
+
+/// tip | ĐĐžŅада
+
+Đ¯ĐēŅĐž ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž виĐēĐģиĐēаŅи `async`-ŅŅĐŊĐēŅŅŅ Ņ Đ˛Đ°ŅиŅ
ŅĐĩŅŅаŅ
, ĐžĐēŅŅĐŧ вŅĐ´ĐŋŅавĐģĐĩĐŊĐŊŅ ĐˇĐ°ĐŋиŅŅв Đ´Đž FastAPI-СаŅŅĐžŅŅĐŊĐēŅ (ĐŊаĐŋŅиĐēĐģад, аŅиĐŊŅ
ŅĐžĐŊĐŊŅ ŅŅĐŊĐēŅŅŅ ŅОйОŅи С ĐąĐ°ĐˇĐžŅ Đ´Đ°ĐŊиŅ
), ĐŋĐĩŅĐĩĐŗĐģŅĐŊŅŅĐĩ [ĐŅиĐŊŅ
ŅĐžĐŊĐŊŅ ŅĐĩŅŅи](../advanced/async-tests.md){.internal-link target=_blank} Ņ ŅОСŅиŅĐĩĐŊĐžĐŧŅ ĐēĐĩŅŅвĐŊиŅŅвŅ.
+
+///
+
+## РОСдŅĐģĐĩĐŊĐŊŅ ŅĐĩŅŅŅв
+
+ĐŖ ŅĐĩаĐģŅĐŊĐžĐŧŅ ĐˇĐ°ŅŅĐžŅŅĐŊĐēŅ ĐаŅŅ ŅĐĩŅŅи, ĐšĐŧОвŅŅĐŊĐž, ĐąŅĐ´ŅŅŅ Đ˛ ĐžĐēŅĐĩĐŧĐžĐŧŅ ŅаКĐģŅ.
+
+ĐĸаĐēĐžĐļ ĐĐ°Ņ **FastAPI**-СаŅŅĐžŅŅĐŊĐžĐē ĐŧĐžĐļĐĩ ŅĐēĐģадаŅиŅŅ Đˇ ĐēŅĐģŅĐēĐžŅ
ŅаКĐģŅв айО ĐŧОдŅĐģŅв ŅĐžŅĐž.
+
+### ФаКĐģ СаŅŅĐžŅŅĐŊĐēŅ **FastAPI**
+
+ĐŅиĐŋŅŅŅиĐŧĐž, Ņ ĐĐ°Ņ Ņ ŅŅŅŅĐēŅŅŅа ŅаКĐģŅв, ĐžĐŋиŅаĐŊа в ŅОСдŅĐģŅ [ĐŅĐģŅŅŅ ĐˇĐ°ŅŅĐžŅŅĐŊĐēи](bigger-applications.md){.internal-link target=_blank}:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+```
+ĐŖ ŅаКĐģŅ `main.py` СĐŊаŅ
ОдиŅŅŅŅ ĐĐ°Ņ ĐˇĐ°ŅŅĐžŅŅĐŊĐžĐē **FastAPI** :
+
+{* ../../docs_src/app_testing/main.py *}
+
+### ФаКĐģ ŅĐĩŅŅŅваĐŊĐŊŅ
+
+Đи ĐŧĐžĐļĐĩŅĐĩ ŅŅвОŅиŅи ŅаКĐģ `test_main.py` С ĐаŅиĐŧи ŅĐĩŅŅаĐŧи. ĐŅĐŊ ĐŧĐžĐļĐĩ СĐŊаŅ
ОдиŅиŅŅ Đ˛ ŅĐžĐŧŅ Đļ ĐŋаĐēĐĩŅŅ Python (Ņ ŅŅĐš ŅаĐŧŅĐš диŅĐĩĐēŅĐžŅŅŅ Đˇ ŅаКĐģĐžĐŧ `__init__.py`):
+
+
+``` hl_lines="5"
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ test_main.py
+```
+
+ĐŅĐēŅĐģŅĐēи ŅĐĩĐš ŅаКĐģ СĐŊаŅ
ОдиŅŅŅŅ Đ˛ ŅĐžĐŧŅ Đļ ĐŋаĐēĐĩŅŅ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅОвŅваŅи вŅĐ´ĐŊĐžŅĐŊиК ŅĐŧĐŋĐžŅŅ, ŅОй ŅĐŧĐŋĐžŅŅŅваŅи Ой'ŅĐēŅ `app` ŅС ĐŧОдŅĐģŅ `main` (`main.py`):
+
+{* ../../docs_src/app_testing/test_main.py hl[3] *}
+
+
+...Ņ ĐŊаĐŋиŅаŅи ĐēОд Đ´ĐģŅ ŅĐĩŅŅŅв ŅаĐē ŅаĐŧĐž ŅĐē Ņ ŅаĐŊŅŅĐĩ.
+
+## ĐĸĐĩŅŅŅваĐŊĐŊŅ: ŅОСŅиŅĐĩĐŊиК ĐŋŅиĐēĐģад
+
+ĐĸĐĩĐŋĐĩŅ ŅОСŅиŅиĐŧĐž ŅĐĩĐš ĐŋŅиĐēĐģад Ņ Đ´ĐžĐ´Đ°ĐŧĐž ĐąŅĐģŅŅĐĩ Đ´ĐĩŅаĐģĐĩĐš, ŅОй ĐŋОйаŅиŅи, ŅĐē ŅĐĩŅŅŅваŅи ŅŅСĐŊŅ ŅаŅŅиĐŊи.
+
+### РОСŅиŅĐĩĐŊиК ŅаКĐģ СаŅŅĐžŅŅĐŊĐēŅ **FastAPI**
+
+ĐаĐģиŅиĐŧĐž ŅŅ ŅаĐŧŅ ŅŅŅŅĐēŅŅŅŅ ŅаКĐģŅв:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ test_main.py
+```
+
+ĐŅиĐŋŅŅŅиĐŧĐž, ŅĐž ŅĐĩĐŋĐĩŅ ŅаКĐģ `main.py` ŅС ĐаŅиĐŧ **FastAPI**-СаŅŅĐžŅŅĐŊĐēĐžĐŧ ĐŧŅŅŅиŅŅ Đ´ĐžĐ´Đ°ŅĐēĐžĐ˛Ņ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ (**path operations**).
+
+ĐŅĐŊ ĐŧĐ°Ņ `GET`-ĐžĐŋĐĩŅаŅŅŅ, ŅĐēа ĐŧĐžĐļĐĩ ĐŋОвĐĩŅŅаŅи ĐŋĐžĐŧиĐģĐēŅ.
+
+ĐŅĐŊ ĐŧĐ°Ņ `POST`-ĐžĐŋĐĩŅаŅŅŅ, ŅĐēа ĐŧĐžĐļĐĩ ĐŋОвĐĩŅŅаŅи ĐēŅĐģŅĐēа ĐŋĐžĐŧиĐģĐžĐē.
+
+ĐĐąĐ¸Đ´Đ˛Ņ ĐžĐŋĐĩŅаŅŅŅ ŅĐģŅŅ
Ņ Đ˛Đ¸ĐŧĐ°ĐŗĐ°ŅŅŅ ĐˇĐ°ĐŗĐžĐģОвОĐē `X-Token`.
+
+//// tab | Python 3.10+
+
+```Python
+{!> ../../docs_src/app_testing/app_b_an_py310/main.py!}
+```
+
+////
+
+//// tab | Python 3.9+
+
+```Python
+{!> ../../docs_src/app_testing/app_b_an_py39/main.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python
+{!> ../../docs_src/app_testing/app_b_an/main.py!}
+```
+
+////
+
+//// tab | Python 3.10+ non-Annotated
+
+/// tip | ĐĐžŅада
+
+ĐаĐļаĐŊĐž виĐēĐžŅиŅŅОвŅваŅи вĐĩŅŅŅŅ Đˇ `Annotated`, ŅĐēŅĐž ŅĐĩ ĐŧĐžĐļĐģивО
+
+///
+
+```Python
+{!> ../../docs_src/app_testing/app_b_py310/main.py!}
+```
+
+////
+
+//// tab | Python 3.8+ non-Annotated
+
+/// tip | ĐĐžŅада
+
+ĐаĐļаĐŊĐž виĐēĐžŅиŅŅОвŅваŅи вĐĩŅŅŅŅ Đˇ `Annotated`, ŅĐēŅĐž ŅĐĩ ĐŧĐžĐļĐģивО
+
+///
+
+```Python
+{!> ../../docs_src/app_testing/app_b/main.py!}
+```
+
+////
+
+### РОСŅиŅĐĩĐŊиК ŅĐĩŅŅОвиК ŅаКĐģ
+
+ĐĐžŅŅĐŧ Đи ĐŧĐžĐļĐĩŅĐĩ ĐžĐŊОвиŅи `test_main.py`, дОдавŅи ŅОСŅиŅĐĩĐŊŅ ŅĐĩŅŅи:
+
+{* ../../docs_src/app_testing/app_b/test_main.py *}
+
+ĐĐžĐģи ĐаĐŧ ĐŋĐžŅŅŅĐąĐŊĐž ĐŋĐĩŅĐĩдаŅи ĐēĐģŅŅĐŊŅŅ ŅĐŊŅĐžŅĐŧаŅŅŅ Đ˛ СаĐŋиŅŅ, аĐģĐĩ Đи ĐŊĐĩ СĐŊаŅŅĐĩ, ŅĐē ŅĐĩ СŅОйиŅи, Đи ĐŧĐžĐļĐĩŅĐĩ ĐŋĐžŅŅĐēаŅи (ĐŊаĐŋŅиĐēĐģад, Ņ Google) ŅĐŋĐžŅŅĐą ŅĐĩаĐģŅСаŅŅŅ Đ˛ `httpx`, айО ĐŊавŅŅŅ Ņ `requests`, ĐžŅĐēŅĐģŅĐēи HTTPX ŅОСŅОйĐģĐĩĐŊиК ĐŊа ĐžŅĐŊĐžĐ˛Ņ Đ´Đ¸ĐˇĐ°ĐšĐŊŅ Requests.
+
+ĐаĐģŅ Đи ĐŋŅĐžŅŅĐž ĐŋОвŅĐžŅŅŅŅĐĩ ŅŅ Đļ Đ´ŅŅ Ņ Đ˛Đ°ŅиŅ
ŅĐĩŅŅаŅ
.
+
+ĐаĐŋŅиĐēĐģад:
+
+* ЊОй ĐŋĐĩŅĐĩдаŅи *path* айО *query* ĐŋаŅаĐŧĐĩŅŅ, дОдаКŅĐĩ ĐšĐžĐŗĐž ĐąĐĩСĐŋĐžŅĐĩŅĐĩĐ´ĐŊŅĐž Đ´Đž URL.
+* ЊОй ĐŋĐĩŅĐĩдаŅи ŅŅĐģĐž JSON, ĐŋĐĩŅĐĩдаКŅĐĩ Python-Ой'ŅĐēŅ (ĐŊаĐŋŅиĐēĐģад, `dict`) Ņ ĐŋаŅаĐŧĐĩŅŅ `json`.
+* Đ¯ĐēŅĐž ĐŋĐžŅŅŅĐąĐŊĐž ĐŊадŅŅĐģаŅи *Form Data* СаĐŧŅŅŅŅ JSON, виĐēĐžŅиŅŅОвŅĐšŅĐĩ ĐŋаŅаĐŧĐĩŅŅ `data`.
+* ЊОй ĐŋĐĩŅĐĩдаŅи ĐˇĐ°ĐŗĐžĐģОвĐēи *headers*, виĐēĐžŅиŅŅОвŅĐšŅĐĩ `dict` Ņ ĐŋаŅаĐŧĐĩŅŅŅ `headers`.
+* ĐĐģŅ *cookies* виĐēĐžŅиŅŅОвŅĐšŅĐĩ `dict` Ņ ĐŋаŅаĐŧĐĩŅŅŅ `cookies`.
+
+ĐĐžĐēĐģадĐŊŅŅĐĩ ĐŋŅĐž ĐŋĐĩŅĐĩдаŅŅ Đ´Đ°ĐŊиŅ
Ņ ĐąĐĩĐēĐĩĐŊĐ´ (Са Đ´ĐžĐŋĐžĐŧĐžĐŗĐžŅ `httpx` айО `TestClient`) ĐŧĐžĐļĐŊа СĐŊаКŅи в Đ´ĐžĐēŅĐŧĐĩĐŊŅаŅŅŅ HTTPX.
+
+/// info | ĐĐŊŅĐžŅĐŧаŅŅŅ
+
+ĐвĐĩŅĐŊŅŅŅ ŅĐ˛Đ°ĐŗŅ, ŅĐž `TestClient` ĐžŅŅиĐŧŅŅ Đ´Đ°ĐŊŅ, ŅĐēŅ ĐŧĐžĐļĐŊа ĐēĐžĐŊвĐĩŅŅŅваŅи в JSON, а ĐŊĐĩ Pydantic-ĐŧОдĐĩĐģŅ.
+Đ¯ĐēŅĐž Ņ ĐĐ°Ņ Ņ Pydantic-ĐŧОдĐĩĐģŅ Ņ ŅĐĩŅŅŅ, Ņ Đи Ņ
ĐžŅĐĩŅĐĩ ĐŋĐĩŅĐĩдаŅи ŅŅ Đ´Đ°ĐŊŅ Đ˛ дОдаŅĐžĐē ĐŋŅĐ´ ŅĐ°Ņ ŅĐĩŅŅŅваĐŊĐŊŅ, Đи ĐŧĐžĐļĐĩŅĐĩ виĐēĐžŅиŅŅаŅи `jsonable_encoder`, ĐžĐŋиŅаĐŊиК Ņ ŅОСдŅĐģŅ [JSON Compatible Encoder](encoder.md){.internal-link target=_blank}.
+
+///
+
+## ĐаĐŋŅŅĐē ŅĐĩŅŅŅв
+
+ĐŅŅĐģŅ ŅŅĐžĐŗĐž ваĐŧ ĐŋĐžŅŅŅĐąĐŊĐž вŅŅаĐŊОвиŅи `pytest`.
+
+ĐĐĩŅĐĩĐēĐžĐŊаКŅĐĩŅŅ, ŅĐž Đи ŅŅвОŅиĐģи [вŅŅŅŅаĐģŅĐŊĐĩ ŅĐĩŅĐĩдОвиŅĐĩ]{.internal-link target=_blank}, аĐēŅивŅваĐģи ĐšĐžĐŗĐž Ņ Đ˛ŅŅаĐŊОвиĐģи ĐŊĐĩОйŅ
ŅĐ´ĐŊŅ ĐŋаĐēĐĩŅи, ĐŊаĐŋŅиĐēĐģад:
+
+
-
+
diff --git a/docs/vi/docs/tutorial/static-files.md b/docs/vi/docs/tutorial/static-files.md
new file mode 100644
index 0000000000..ecf8c24856
--- /dev/null
+++ b/docs/vi/docs/tutorial/static-files.md
@@ -0,0 +1,40 @@
+# Táģp tÄŠnh (Static Files)
+
+BáēĄn cÃŗ tháģ triáģn khai táģp tÄŠnh táģą Äáģng táģĢ máģt thư máģĨc báēąng cÃĄch sáģ dáģĨng StaticFiles.
+
+## Sáģ dáģĨng `Táģp tÄŠnh`
+
+- Nháēp `StaticFiles`.
+- "Mount" a `StaticFiles()` instance in a specific path.
+
+{* ../../docs_src/static_files/tutorial001.py hl[2,6] *}
+
+/// note | Chi tiáēŋt káģš thuáēt
+
+BáēĄn cÅŠng cÃŗ tháģ sáģ dáģĨng `from starlette.staticfiles import StaticFiles`.
+
+**FastAPI** cung cáēĨp cÚng `starlette.staticfiles` như `fastapi.staticfiles` giÃēp ÄÆĄn giáēŖn hÃŗa viáģc sáģ dáģĨng, nhưng nÃŗ tháģąc sáģą Äáēŋn táģĢ Starlette.
+
+///
+
+### "Mounting" là gÃŦ
+
+"Mounting" cÃŗ nghÄŠa là thÃĒm máģt áģŠng dáģĨng "Äáģc láēp" hoà n cháģnh và o máģt ÄÆ°áģng dáēĢn cáģĨ tháģ, sau ÄÃŗ áģŠng dáģĨng ÄÃŗ sáēŊ cháģu trÃĄch nhiáģm xáģ lÃŊ táēĨt cáēŖ cÃĄc ÄÆ°áģng dáēĢn con.
+
+Äiáģu nà y khÃĄc váģi viáģc sáģ dáģĨng `APIRouter` vÃŦ máģt áģŠng dáģĨng ÄÆ°áģŖc gáē¯n káēŋt là hoà n toà n Äáģc láēp. OpenAPI và tà i liáģu táģĢ áģŠng dáģĨng chÃnh cáģ§a báēĄn sáēŊ không bao gáģm báēĨt káģŗ tháģŠ gÃŦ táģĢ áģŠng dáģĨng ÄÆ°áģŖc gáē¯n káēŋt, v.v.
+
+BáēĄn cÃŗ tháģ Äáģc thÃĒm váģ Äiáģu nà y trong [Hưáģng dáēĢn Ngưáģi dÚng NÃĸng cao](../advanced/index.md){.internal-link target=\_blank}.
+
+## Chi tiáēŋt
+
+ÄÆ°áģng dáēĢn Äáē§u tiÃĒn `"/static"` lÃ ÄÆ°áģng dáēĢn con mà "áģŠng dáģĨng con" nà y sáēŊ ÄÆ°áģŖc "gáē¯n" và o. VÃŦ váēy, báēĨt káģŗ ÄÆ°áģng dáēĢn nà o báē¯t Äáē§u báēąng `"/static"` sáēŊ ÄÆ°áģŖc xáģ lÃŊ báģi nÃŗ.
+
+ÄÆ°áģng dáēĢn `directory="static"` là tÃĒn cáģ§a thư máģĨc cháģŠa táģp tÄŠnh cáģ§a báēĄn.
+
+Tham sáģ `name="static"` Äáēˇt tÃĒn cho nÃŗ Äáģ cÃŗ tháģ ÄÆ°áģŖc sáģ dáģĨng bÃĒn trong **FastAPI**.
+
+TáēĨt cáēŖ cÃĄc tham sáģ nà y cÃŗ tháģ khÃĄc váģi `static`, Äiáģu cháģnh chÃēng váģi phÚ háģŖp váģi áģŠng dáģĨng cáģ§a báēĄn.
+
+## Thông tin thÃĒm
+
+Äáģ biáēŋt thÃĒm chi tiáēŋt và tÚy cháģn, hÃŖy xem Starlette's docs about Static Files.
diff --git a/docs/vi/docs/virtual-environments.md b/docs/vi/docs/virtual-environments.md
new file mode 100644
index 0000000000..22d8e153e5
--- /dev/null
+++ b/docs/vi/docs/virtual-environments.md
@@ -0,0 +1,842 @@
+# Môi trưáģng áēŖo (Virtual Environments)
+
+Khi báēĄn là m viáģc trong cÃĄc dáģą ÃĄn Python, báēĄn cÃŗ tháģ sáģ dáģĨng máģt **môi trưáģng áēŖo** (hoáēˇc máģt cÆĄ cháēŋ tÆ°ÆĄng táģą) Äáģ cÃĄch ly cÃĄc gÃŗi báēĄn cà i Äáēˇt cho máģi dáģą ÃĄn.
+
+/// info
+Náēŋu báēĄn ÄÃŖ biáēŋt váģ cÃĄc môi trưáģng áēŖo, cÃĄch táēĄo chÃēng và sáģ dáģĨng chÃēng, báēĄn cÃŗ tháģ báģ qua pháē§n nà y. đ¤
+
+///
+
+/// tip
+
+Máģt **môi trưáģng áēŖo** khÃĄc váģi máģt **biáēŋn môi trưáģng (environment variable)**.
+
+Máģt **biáēŋn môi trưáģng** là máģt biáēŋn trong háģ tháģng cÃŗ tháģ ÄÆ°áģŖc sáģ dáģĨng báģi cÃĄc chÆ°ÆĄng trÃŦnh.
+
+Máģt **môi trưáģng áēŖo** là máģt thư máģĨc váģi máģt sáģ táģp trong ÄÃŗ.
+
+///
+
+/// info
+
+Trang nà y sáēŊ hưáģng dáēĢn báēĄn cÃĄch sáģ dáģĨng cÃĄc **môi trưáģng áēŖo** và cÃĄch chÃēng hoáēĄt Äáģng.
+
+Náēŋu báēĄn ÄÃŖ sáēĩn sà ng sáģ dáģĨng máģt **công cáģĨ cÃŗ tháģ quáēŖn lÃŊ táēĨt cáēŖ máģi tháģŠ** cho báēĄn (bao gáģm cáēŖ viáģc cà i Äáēˇt Python), hÃŖy tháģ uv.
+
+///
+
+## TáēĄo máģt Dáģą ÃĄn
+
+Äáē§u tiÃĒn, táēĄo máģt thư máģĨc cho dáģą ÃĄn cáģ§a báēĄn.
+
+CÃĄch tôi thưáģng là m là táēĄo máģt thư máģĨc cÃŗ tÃĒn `code` trong thư máģĨc `home/user`.
+
+Và trong thư máģĨc ÄÃŗ, tôi táēĄo máģt thư máģĨc cho máģi dáģą ÃĄn.
+
+
-
+
diff --git a/docs/zh-hant/docs/index.md b/docs/zh-hant/docs/index.md
index 137a17284b..81d99ede4d 100644
--- a/docs/zh-hant/docs/index.md
+++ b/docs/zh-hant/docs/index.md
@@ -6,7 +6,7 @@
-
+
diff --git a/docs/zh/docs/deployment/concepts.md b/docs/zh/docs/deployment/concepts.md
index 7a0b6c3d25..f7208da7c5 100644
--- a/docs/zh/docs/deployment/concepts.md
+++ b/docs/zh/docs/deployment/concepts.md
@@ -220,7 +220,7 @@
čŋäēåˇĨäŊčŋį¨å°æ¯čŋčĄæ¨įåēį¨į¨åēįčŋį¨īŧåŽäģŦå°æ§čĄä¸ģčĻ莥įŽäģĨæĨæļ **蝎æą** åšļčŋå **ååē**īŧåšļä¸åŽäģŦå°å čŊŊæ¨æžå
Ĩ RAM ä¸įåéä¸įäģģäŊå
厚ã
-
+
åŊįļīŧé¤ä翍įåēį¨į¨åēäšå¤īŧåä¸å°æēå¨å¯čŊčŋčŋčĄ**å
ļäģčŋį¨**ã
diff --git a/docs/zh/docs/deployment/https.md b/docs/zh/docs/deployment/https.md
index 9c963d587f..d994c4add8 100644
--- a/docs/zh/docs/deployment/https.md
+++ b/docs/zh/docs/deployment/https.md
@@ -86,7 +86,7 @@
DNS æåĄå¨äŧå蝿ĩč§å¨äŊŋ፿ä¸ĒįšåŽį **IP å°å**ã čŋå°æ¯äŊ å¨ DNS æåĄå¨ä¸ä¸ēäŊ įæåĄå¨é
įŊŽįå
Ŧå
ą IP å°åã
-
+
### TLS æĄæåŧå§
@@ -94,7 +94,7 @@ DNS æåĄå¨äŧå蝿ĩč§å¨äŊŋ፿ä¸ĒįšåŽį **IP å°å**ã čŋå°æ¯
éäŋĄįįŦŦä¸é¨ååĒæ¯åģēįĢåŽĸæˇį̝åæåĄå¨äšé´įčŋæĨåšļåŗåŽåŽäģŦå°äŊŋį¨įå å¯å¯éĨįã
-
+
åŽĸæˇį̝åæåĄå¨äšé´åģēįĢ TLS čŋæĨįčŋį¨į§°ä¸ē **TLS æĄæ**ã
@@ -112,7 +112,7 @@ TLS įģæĸäģŖįå¯äģĨčŽŋéŽä¸ä¸Ēæå¤ä¸Ē **TLS č¯äšĻ**īŧHTTPS č¯äšĻīŧã
å¨čŋį§æ
åĩä¸īŧåŽå°äŊŋį¨`someapp.example.com`įč¯äšĻã
-
+
åŽĸæˇį̝厞įģ**äŋĄäģģ**įæč¯Ĩ TLS č¯äšĻįåŽäŊīŧ卿Ŧäžä¸ä¸ē Let's EncryptīŧäŊæäģŦį¨åäŧįå°īŧīŧå æ¤åŽå¯äģĨ**éĒč¯**č¯Ĩč¯äšĻæ¯åĻææã
@@ -134,19 +134,19 @@ TLS įģæĸäģŖįå¯äģĨčŽŋéŽä¸ä¸Ēæå¤ä¸Ē **TLS č¯äšĻ**īŧHTTPS č¯äšĻīŧã
æĨ䏿ĨīŧåŽĸæˇį̝åéä¸ä¸Ē **HTTPS 蝎æą**ã čŋå
ļåŽåĒæ¯ä¸ä¸Ēéčŋ TLS å å¯čŋæĨį HTTP 蝎æąã
-
+
### č§Ŗå¯č¯ˇæą
TLS įģæĸäģŖįå°äŊŋį¨åååĨŊįå å¯įŽæŗ**č§Ŗå¯č¯ˇæą**īŧåšļå°**īŧč§Ŗå¯įīŧHTTP 蝎æą**äŧ čžå°čŋčĄåēį¨į¨åēįčŋį¨īŧäžåĻčŋčĄ FastAPI åēį¨į Uvicorn čŋį¨īŧã
-
+
### HTTP ååē
åēį¨į¨åēå°å¤į蝎æąåšļå TLS įģæĸäģŖįåé**īŧæĒå å¯īŧHTTP ååē**ã
-
+
### HTTPS ååē
@@ -154,7 +154,7 @@ TLS įģæĸäģŖįå°äŊŋį¨åååĨŊįå å¯įŽæŗ**č§Ŗå¯č¯ˇæą**īŧåšļå°**īŧ
æĨ䏿Ĩīŧæĩč§å¨å°éĒč¯åå翝åĻææåæ¯åĻäŊŋį¨äēæŖįĄŽįå å¯å¯éĨįãįļååŽäŧ**č§Ŗå¯ååē**åšļå¤įåŽã
-
+
åŽĸæˇį̝īŧæĩč§å¨īŧå°įĨéååēæĨčĒæŖįĄŽįæåĄå¨īŧå ä¸ēåŽäŊŋį¨äēäģäģŦäšåäŊŋ፠**HTTPS č¯äšĻ** åååēįå å¯įŽæŗã
@@ -164,7 +164,7 @@ TLS įģæĸäģŖįå°äŊŋį¨åååĨŊįå å¯įŽæŗ**č§Ŗå¯č¯ˇæą**īŧåšļå°**īŧ
åĒæä¸ä¸Ēčŋį¨å¯äģĨå¤įįšåŽį IP åį̝åŖīŧ卿äģŦįį¤ēäžä¸ä¸ē TLS įģæĸäģŖįīŧīŧäŊå
ļäģåēį¨į¨åē/čŋį¨äšå¯äģĨ卿åĄå¨ä¸čŋčĄīŧåĒčĻåŽäģŦä¸å°č¯äŊŋį¨į¸åį **å
Ŧå
ą IP åį̝åŖįįģå**ã
-
+
čŋæ ˇīŧTLS įģæĸäģŖįå°ąå¯äģĨä¸ēå¤ä¸Ēåēį¨į¨åēå¤į**å¤ä¸Ēåå**į HTTPS åč¯äšĻīŧįļå卿¯į§æ
åĩä¸å°č¯ˇæąäŧ čžå°æŖįĄŽįåēį¨į¨åēã
@@ -174,7 +174,7 @@ TLS įģæĸäģŖįå°äŊŋį¨åååĨŊįå å¯įŽæŗ**č§Ŗå¯č¯ˇæą**īŧåšļå°**īŧ
įļåīŧäŧæåĻä¸ä¸Ēį¨åēīŧ卿äēæ
åĩ䏿¯åĻä¸ä¸Ēį¨åēīŧ卿äēæ
åĩä¸å¯čŊæ¯åä¸ä¸Ē TLS įģæĸäģŖįīŧä¸ Let's Encrypt éäŋĄåšļæ´æ°č¯äšĻã
-
+
**TLS č¯äšĻ** **ä¸ååį¸å
ŗč**īŧč䏿¯ä¸ IP å°åį¸å
ŗčã
diff --git a/docs/zh/docs/deployment/manually.md b/docs/zh/docs/deployment/manually.md
index 30ee7a1e95..3dc5942e3f 100644
--- a/docs/zh/docs/deployment/manually.md
+++ b/docs/zh/docs/deployment/manually.md
@@ -1,12 +1,62 @@
-# æå¨čŋčĄæåĄå¨ - Uvicorn
+# æå¨čŋčĄæåĄå¨
-å¨čŋ፿åĄå¨čŽĄįŽæēä¸čŋčĄ **FastAPI** åēį¨į¨åēæéįä¸ģčĻä¸čĨŋæ¯ ASGI æåĄå¨į¨åēīŧäžåĻ **Uvicorn**ã
+## äŊŋ፠`fastapi run` åŊäģ¤
-æ 3 ä¸Ēä¸ģčĻå¯éæšæĄīŧ
+įŽčč¨äšīŧäŊŋ፠`fastapi run` æĨčŋčĄæ¨į FastAPI åēį¨į¨åēīŧ
+
+
-
-
+
+
-
-
+
+
diff --git a/docs/zh/docs/python-types.md b/docs/zh/docs/python-types.md
index 5126cb847e..ba767da879 100644
--- a/docs/zh/docs/python-types.md
+++ b/docs/zh/docs/python-types.md
@@ -228,7 +228,7 @@ John Doe
## Pydantic æ¨Ąå
-Pydantic æ¯ä¸ä¸Ē፿Ĩ፿Ĩæ§čĄæ°æŽæ ĄéĒį Python åēã
+Pydantic æ¯ä¸ä¸Ē፿Ĩæ§čĄæ°æŽæ ĄéĒį Python åēã
äŊ å¯äģĨå°æ°æŽį"įģæ"åŖ°æä¸ēå
ˇæåąæ§įįąģã
diff --git a/docs/zh/docs/tutorial/bigger-applications.md b/docs/zh/docs/tutorial/bigger-applications.md
index 318e10fd75..554bc654f0 100644
--- a/docs/zh/docs/tutorial/bigger-applications.md
+++ b/docs/zh/docs/tutorial/bigger-applications.md
@@ -52,7 +52,7 @@ from app.routers import items
* čŋæä¸ä¸ĒåįŽåŊ `app/internal/` å
åĢåĻä¸ä¸Ē `__init__.py` æäģļīŧå æ¤åŽæ¯åä¸ä¸ĒãPython åå
ãīŧ`app.internal`ã
* `app/internal/admin.py` æ¯åĻä¸ä¸Ē忍Ąåīŧ`app.internal.admin`ã
-
+
å¸Ļææŗ¨éįå䏿äģļįģæīŧ
@@ -244,7 +244,7 @@ from .dependencies import get_token_header
č¯ˇčŽ°äŊæäģŦįį¨åē/æäģļįģææ¯ææ ˇįīŧ
-
+
---
diff --git a/docs/zh/docs/tutorial/first-steps.md b/docs/zh/docs/tutorial/first-steps.md
index c4ff460e0e..80a34116a5 100644
--- a/docs/zh/docs/tutorial/first-steps.md
+++ b/docs/zh/docs/tutorial/first-steps.md
@@ -11,34 +11,49 @@