Browse Source

ЁЯМР Enable Hindi docs translations (#15554)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pull/15797/head
Yurii Motov 1 day ago
committed by GitHub
parent
commit
6e6c74fc16
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      docs/en/mkdocs.yml
  2. 495
      docs/hi/docs/_llm-test.md
  3. 585
      docs/hi/docs/index.md
  4. 11
      docs/hi/docs/translation-banner.md
  5. 5
      docs/hi/llm-prompt.md
  6. 1
      docs/hi/mkdocs.yml
  7. 1
      pyproject.toml
  8. 1
      scripts/docs.py

2
docs/en/mkdocs.yml

@ -303,6 +303,8 @@ extra:
name: es - espa├▒ol
- link: /fr/
name: fr - fran├зais
- link: /hi/
name: hi - рд╣рд┐рдиреНрджреА
- link: /ja/
name: ja - цЧецЬмшкЮ
- link: /ko/

495
docs/hi/docs/_llm-test.md

@ -0,0 +1,495 @@
# LLM рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ { #llm-test-file }
рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╣ рдкрд░рдЦрддрд╛ рд╣реИ рдХрд┐ <abbr title="Large Language Model - рдмрдбрд╝рд╛ рднрд╛рд╖рд╛ рдореЙрдбрд▓">LLM</abbr>, рдЬреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, `scripts/translate.py` рдореЗрдВ рджрд┐рдП рдЧрдП `general_prompt` рдФрд░ `docs/{language code}/llm-prompt.md` рдореЗрдВ рджрд┐рдП рдЧрдП рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ `general_prompt` рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рд╡реЗ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рднреА рдбрд┐рдЬрд╝рд╛рдЗрдирд░реНрд╕ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░реЗрдВ:
* рдПрдХ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рд░рдЦреЗрдВ - `docs/{language code}/llm-prompt.md`ред
* рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рд▓рдХреНрд╖реНрдп-рднрд╛рд╖рд╛ рдореЗрдВ рдирдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `translate.py` рдХреЗ `translate-page` рдХрдорд╛рдВрдб рдХреЛ рджреЗрдЦреЗрдВ)ред рдпрд╣ рдЕрдиреБрд╡рд╛рдж `docs/{language code}/docs/_llm-test.md` рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдмрдирд╛ рджреЗрдЧрд╛ред
* рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред
* рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░, рдЕрдкрдиреЗ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ, рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред
* рдлрд┐рд░ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдмрдЪреЗ рд╣реБрдП рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд╛рде рд╕реЗ рдареАрдХ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╡рд╛рдж рдмрди рдЬрд╛рдПред
* рджреБрдмрд╛рд░рд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ, рдЗрд╕ рдмрд╛рд░ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╡рд╛рдж рдЬрдЧрд╣ рдкрд░ рд░рд╣рддреЗ рд╣реБрдПред рдЖрджрд░реНрд╢ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ рдХрд┐ LLM рдЕрдм рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рди рдХрд░реЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдФрд░ рдЖрдкрдХрд╛ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рдЬрд┐рддрдиреЗ рдЕрдЪреНрдЫреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЙрддрдиреЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВ (рдХрднреА-рдХрднреА рдпрд╣ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ-рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рджреЗрдЧрд╛, рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ [LLM рдирд┐рдпрддрд╛рддреНрдордХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд╣реАрдВ рд╣реИрдВ](https://doublespeak.chat/#/handbook#deterministic-output))ред
рдкрд░реАрдХреНрд╖рдг:
## рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ { #code-snippets }
//// tab | рдкрд░реАрдХреНрд╖рдг
рдпрд╣ рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ: `foo`ред рдФрд░ рдпрд╣ рдПрдХ рдФрд░ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ: `bar`ред рдФрд░ рдПрдХ рдФрд░: `baz quux`ред
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬреНрдпреЛрдВ рдХрд╛ рддреНрдпреЛрдВ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### Content of code snippets` рдХреЛ рджреЗрдЦреЗрдВред
////
## рдЙрджреНрдзрд░рдг { #quotes }
//// tab | рдкрд░реАрдХреНрд╖рдг
рдХрд▓, рдореЗрд░реЗ рджреЛрд╕реНрдд рдиреЗ рд▓рд┐рдЦрд╛: "рдЕрдЧрд░ рдЖрдк 'рдЧрд▓рдд' рдХреЛ рд╕рд╣реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рдЙрд╕реЗ рдЧрд▓рдд рд▓рд┐рдЦрд╛ рд╣реИ"ред рдЬрд┐рд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдореИрдВрдиреЗ рдХрд╣рд╛: "рд╕рд╣реА, рд▓реЗрдХрд┐рди 'рдЧрд▓рдд' рдЧрд▓рдд рд╣реИ '"рдЧрд▓рдд"' рдирд╣реАрдВ"ред
/// note | рдЯрд┐рдкреНрдкрдгреА
LLM рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдЧрд▓рдд рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рджрд┐рд▓рдЪрд╕реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдкреБрдирдГ-рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдкрд░ рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рдХрд┐рдпрд╛ рд╣реБрдЖ рдЕрдиреБрд╡рд╛рдж рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред
///
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рдкреНрд░реЙрдореНрдкреНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдпрд╣ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕рд╛рдзрд╛рд░рдг рдХреЛрдЯреНрд╕ рдХреЛ рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдХреЛрдЯреНрд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЙрдиреНрд╣реЗрдВ рдЬреНрдпреЛрдВ рдХрд╛ рддреНрдпреЛрдВ рдЫреЛрдбрд╝рдирд╛ рднреА рдареАрдХ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `docs/de/llm-prompt.md` рдореЗрдВ рд╕реЗрдХреНрд╢рди `### Quotes` рджреЗрдЦреЗрдВред
////
## рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдореЗрдВ рдЙрджреНрдзрд░рдг { #quotes-in-code-snippets }
//// tab | рдкрд░реАрдХреНрд╖рдг
`pip install "foo[bar]"`
рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг: `"this"`, `'that'`.
рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рдХрд╛ рдПрдХ рдХрдард┐рди рдЙрджрд╛рд╣рд░рдг: `f"I like {'oranges' if orange else "apples"}"`
рд╣рд╛рд░реНрдбрдХреЛрд░: `Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"`
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
... рд▓реЗрдХрд┐рди, рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХреЗ рдЙрджреНрдзрд░рдг рдЬреНрдпреЛрдВ рдХреЗ рддреНрдпреЛрдВ рд░рд╣рдиреЗ рдЪрд╛рд╣рд┐рдПред
////
## рдХреЛрдб рдмреНрд▓реЙрдХреНрд╕ { #code-blocks }
//// tab | рдкрд░реАрдХреНрд╖рдг
рдПрдХ Bash рдХреЛрдб рдЙрджрд╛рд╣рд░рдг...
```bash
# рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡рд╛рджрди рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
echo "Hello universe"
```
...рдФрд░ рдПрдХ рдХрдВрд╕реЛрд▓ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг...
```console
$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:solid">main.py</u>
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting server
Searching for package file structure
```
...рдФрд░ рдПрдХ рдЕрдиреНрдп рдХрдВрд╕реЛрд▓ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг...
```console
// "Code" рдирд╛рдо рдХреА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдБ
$ mkdir code
// рдЙрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рдПрдБ
$ cd code
```
...рдФрд░ рдПрдХ Python рдХреЛрдб рдЙрджрд╛рд╣рд░рдг...
```Python
wont_work() # рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ ЁЯШ▒
works(foo="bar") # рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ЁЯОЙ
```
...рдФрд░ рдмрд╕ рдЗрддрдирд╛ рд╣реАред
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рдХреЛрдб рдмреНрд▓реЙрдХреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд┐рд╡рд╛рдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ (comments) рдХреЗред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### Content of code blocks` рдХреЛ рджреЗрдЦреЗрдВред
////
## рдЯреИрдм рдФрд░ рд░рдВрдЧреАрди рдмреЙрдХреНрд╕ { #tabs-and-colored-boxes }
//// tab | рдкрд░реАрдХреНрд╖рдг
/// note | рдЯрд┐рдкреНрдкрдгреА
рдХреБрдЫ рдкрд╛рда
///
/// note | рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг
рдХреБрдЫ рдкрд╛рда
///
/// tip | рд╕реБрдЭрд╛рд╡
рдХреБрдЫ рдкрд╛рда
///
/// warning | рдЪреЗрддрд╛рд╡рдиреА
рдХреБрдЫ рдкрд╛рда
///
/// danger | рдЦрддрд░рд╛
рдХреБрдЫ рдкрд╛рда
///
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рдЯреИрдм рдФрд░ `Info`/`Note`/`Warning`/рдЖрджрд┐ рдмреНрд▓реЙрдХреНрд╕ рдореЗрдВ рдЙрдирдХреЗ рд╢реАрд░реНрд╖рдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░реЗрдЦрд╛ (`|`) рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### Special blocks` рдФрд░ `### Tab blocks` рджреЗрдЦреЗрдВред
////
## рд╡реЗрдм рдФрд░ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ { #web-and-internal-links }
//// tab | рдкрд░реАрдХреНрд╖рдг
рд▓рд┐рдВрдХ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓рд┐рдВрдХ рдХрд╛ рдкрддрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗ:
* [рдКрдкрд░ рджрд┐рдП рдЧрдП рд╢реАрд░реНрд╖рдХ рдХрд╛ рд▓рд┐рдВрдХ](#code-snippets)
* [рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ](index.md#installation)
* [рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ](https://sqlmodel.tiangolo.com/)
* [рдПрдХ рд╕реНрдЯрд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ](https://fastapi.tiangolo.com/css/styles.css)
* [рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ](https://fastapi.tiangolo.com/js/logic.js)
* [рдПрдХ рдЫрд╡рд┐ рдХрд╛ рд▓рд┐рдВрдХ](https://fastapi.tiangolo.com/img/foo.jpg)
рд▓рд┐рдВрдХ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓рд┐рдВрдХ рдХрд╛ рдкрддрд╛ рдЕрдиреБрд╡рд╛рдж рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
* [FastAPI рд▓рд┐рдВрдХ](https://fastapi.tiangolo.com/hi/)
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рд▓рд┐рдВрдХ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдкрддреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВред рдЕрдкрд╡рд╛рдж рд╣реИ FastAPI рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдкреЗрдЬреЛрдВ рдХреЗ рдкреВрд░реНрдг (absolute) рд▓рд┐рдВрдХред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд┐рдВрдХ рдЕрдиреБрд╡рд╛рдж рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### Links` рджреЗрдЦреЗрдВред
////
## HTML "abbr" рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ { #html-abbr-elements }
//// tab | рдкрд░реАрдХреНрд╖рдг
рдпрд╣рд╛рдБ HTML "abbr" рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдореЗрдВ рд▓рд┐рдкрдЯреА рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ рд╣реИрдВ (рдХреБрдЫ рдЧрдврд╝реА рд╣реБрдИ рднреА):
### abbr рдПрдХ рдкреВрд░рд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рджреЗрддрд╛ рд╣реИ { #the-abbr-gives-a-full-phrase }
* <abbr title="Getting Things Done - рдХрд╛рдо рдкреВрд░реЗ рдХрд░рдирд╛">GTD</abbr>
* <abbr title="less than - рд╕реЗ рдХрдо"><code>lt</code></abbr>
* <abbr title="XML Web Token - XML рд╡реЗрдм рдЯреЛрдХрди">XWT</abbr>
* <abbr title="Parallel Server Gateway Interface - рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рд░реНрд╡рд░ рдЧреЗрдЯрд╡реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕">PSGI</abbr>
### abbr рдПрдХ рдкреВрд░рд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдФрд░ рдЙрд╕рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрддрд╛ рд╣реИ { #the-abbr-gives-a-full-phrase-and-an-explanation }
* <abbr title="Mozilla Developer Network - рдореЛрдЬрд╝рд┐рд▓рд╛ рдбреЗрд╡рд▓рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛">MDN</abbr>
* <abbr title="Input/Output - рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ: рдбрд┐рд╕реНрдХ рдХрд╛ рдкрдврд╝рдирд╛ рдпрд╛ рд▓рд┐рдЦрдирд╛, рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдЪрд╛рд░ред">I/O</abbr>.
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
"abbr" рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЗ "title" рдРрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреБрд╡рд╛рдж рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ "abbr" рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ LLM рдХреЛ рд╣рдЯрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### HTML abbr elements` рджреЗрдЦреЗрдВред
////
## HTML "dfn" рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ { #html-dfn-elements }
* <dfn title="рдРрд╕реА рдорд╢реАрдиреЛрдВ рдХрд╛ рд╕рдореВрд╣ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред">рдХреНрд▓рд╕реНрдЯрд░</dfn>
* <dfn title="рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдпрд░реНрд╕ рдХреЗ рдмреАрдЪ рдХрдИ рдЫреБрдкреА рд╣реБрдИ рд▓реЗрдпрд░реНрд╕ рд╡рд╛рд▓реЗ рдХреГрддреНрд░рд┐рдо рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИ">рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ</dfn>
## рд╢реАрд░реНрд╖рдХ { #headings }
//// tab | рдкрд░реАрдХреНрд╖рдг
### рдПрдХ рд╡реЗрдмрдРрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ - рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ { #develop-a-webapp-a-tutorial }
рдирдорд╕реНрддреЗред
### рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯреНрд╕ рдФрд░ -рдПрдиреЛрдЯреЗрд╢рдиреНрд╕ { #type-hints-and-annotations }
рдлрд┐рд░ рд╕реЗ рдирдорд╕реНрддреЗред
### рд╕реБрдкрд░- рдФрд░ рд╕рдмрдХреНрд▓рд╛рд╕реЗрдЬрд╝ { #super-and-subclasses }
рдлрд┐рд░ рд╕реЗ рдирдорд╕реНрддреЗред
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдХрдбрд╝рд╛ рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ LLM рдХрд░реНрд▓реА рдмреНрд░реИрдХреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХреЗ рд╣реИрд╢-рдкрд╛рд░реНрдЯ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝реЗ, рдЬрд┐рд╕рд╕реЗ рд▓рд┐рдВрдХ рди рдЯреВрдЯреЗрдВред
`scripts/translate.py` рдореЗрдВ рдЬрдирд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕реЗрдХреНрд╢рди `### Headings` рджреЗрдЦреЗрдВред
рдХреБрдЫ рднрд╛рд╖рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ `docs/de/llm-prompt.md` рдореЗрдВ рд╕реЗрдХреНрд╢рди `### Headings` рджреЗрдЦреЗрдВред
////
## рдбреЙрдХреНрд╕ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╢рдмреНрдж { #terms-used-in-the-docs }
//// tab | рдкрд░реАрдХреНрд╖рдг
* рдЖрдк
* рдЖрдкрдХрд╛
* рдЙрджрд╛.
* рдЖрджрд┐
* `foo` рдПрдХ `int` рдХреЗ рд░реВрдк рдореЗрдВ
* `bar` рдПрдХ `str` рдХреЗ рд░реВрдк рдореЗрдВ
* `baz` рдПрдХ `list` рдХреЗ рд░реВрдк рдореЗрдВ
* рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд╛рдЗрдб
* рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд╛рдЗрдб
* SQLModel рдбреЙрдХреНрд╕
* API рдбреЙрдХреНрд╕
* рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреЙрдХреНрд╕
* рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕
* рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ
* рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ
* рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди
* HTTP рдмреЗрд╕рд┐рдХ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди
* HTTP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ
* ISO рдлрд╝реЙрд░рдореИрдЯ
* JSON Schema рдорд╛рдирдХ
* JSON рд╕реНрдХреАрдорд╛
* рд╕реНрдХреАрдорд╛ рдкрд░рд┐рднрд╛рд╖рд╛
* рдкрд╛рд╕рд╡рд░реНрдб рдлреНрд▓реЛ
* рдореЛрдмрд╛рдЗрд▓
* рдЕрдкреНрд░рдЪрд▓рд┐рдд
* рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛
* рдЕрдорд╛рдиреНрдп
* рддреБрд░рдВрдд
* рдорд╛рдирдХ
* рдбрд┐рдлрд╝реЙрд▓реНрдЯ
* рдХреЗрд╕-рд╕рдВрд╡реЗрджреА
* рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджреА
* рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд░реНрд╡ рдХрд░рдирд╛
* рдкреЗрдЬ рдХреЛ рд╕рд░реНрд╡ рдХрд░рдирд╛
* рдРрдк
* рдПрдкреНрд▓рд┐рдХреЗрд╢рди
* рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ
* рд░рд┐рд╕реНрдкрд╛рдВрд╕
* рддреНрд░реБрдЯрд┐ рд░рд┐рд╕реНрдкрд╛рдВрд╕
* рдкрд╛рде рдСрдкрд░реЗрд╢рди
* рдкрд╛рде рдСрдкрд░реЗрд╢рди рдбреЗрдХреЛрд░реЗрдЯрд░
* рдкрд╛рде рдСрдкрд░реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди
* рдмреЙрдбреА
* рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдмреЙрдбреА
* рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдмреЙрдбреА
* JSON рдмреЙрдбреА
* рдлреЙрд░реНрдо рдмреЙрдбреА
* рдлрд╝рд╛рдЗрд▓ рдмреЙрдбреА
* рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА
* рдкреИрд░рд╛рдореАрдЯрд░
* рдмреЙрдбреА рдкреИрд░рд╛рдореАрдЯрд░
* рдкрд╛рде рдкреИрд░рд╛рдореАрдЯрд░
* рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░
* рдХреБрдХреА рдкреИрд░рд╛рдореАрдЯрд░
* рд╣реЗрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░
* рдлреЙрд░реНрдо рдкреИрд░рд╛рдореАрдЯрд░
* рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░
* рдЗрд╡реЗрдВрдЯ
* рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЗрд╡реЗрдВрдЯ
* рд╕рд░реНрд╡рд░ рдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк
* рд╢рдЯрдбрд╛рдЙрди рдЗрд╡реЗрдВрдЯ
* рд▓рд╛рдЗрдлрд╕реНрдкреИрди рдЗрд╡реЗрдВрдЯ
* рд╣реИрдВрдбрд▓рд░
* рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░
* рдПрдХреНрд╕реЗрдкреНрд╢рди рд╣реИрдВрдбрд▓рд░
* рд╣реИрдВрдбрд▓ рдХрд░рдирд╛
* рдореЙрдбрд▓
* Pydantic рдореЙрдбрд▓
* рдбреЗрдЯрд╛ рдореЙрдбрд▓
* рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓
* рдлреЙрд░реНрдо рдореЙрдбрд▓
* рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ
* рдХреНрд▓рд╛рд╕
* рдмреЗрд╕ рдХреНрд▓рд╛рд╕
* рдкреИрд░реЗрдВрдЯ рдХреНрд▓рд╛рд╕
* рд╕рдмрдХреНрд▓рд╛рд╕
* рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕
* рд╕рд┐рдмреНрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рд╕
* рдХреНрд▓рд╛рд╕ рдореЗрдердб
* рд╣реЗрдбрд░
* рд╣реЗрдбрд░реНрд╕
* рдСрдерд░рд╛рдЗрдЬрд╝реЗрд╢рди рд╣реЗрдбрд░
* `Authorization` рд╣реЗрдбрд░
* рдлреЙрд░рд╡рд░реНрдбреЗрдб рд╣реЗрдбрд░
* рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо
* рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА
* рдбрд┐рдкреЗрдВрдбреЗрдмрд▓
* рдбрд┐рдкреЗрдиреНрдбрдиреНрдЯ
* I/O рдмрд╛рдЙрдВрдб
* CPU рдмрд╛рдЙрдВрдб
* рд╕рдордХрд╛рд▓рд┐рдХрддрд╛
* рд╕рдорд╛рдиреНрддрд░рддрд╛
* рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
* env var
* рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
* `PATH`
* `PATH` рд╡реЗрд░рд┐рдПрдмрд▓
* рдкреНрд░рдорд╛рдгреАрдХрд░рдг
* рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рджрд╛рддрд╛
* рдЕрдзрд┐рдХрд╛рд░реАрдХрд░рдг
* рдЕрдзрд┐рдХрд╛рд░реАрдХрд░рдг рдлреЙрд░реНрдо
* рдЕрдзрд┐рдХрд╛рд░реАрдХрд░рдг рдкреНрд░рджрд╛рддрд╛
* рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИ
* рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИ
* CLI
* рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕
* рд╕рд░реНрд╡рд░
* рдХреНрд▓рд╛рдЗрдВрдЯ
* рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛
* рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛
* рд╡рд┐рдХрд╛рд╕
* рд╡рд┐рдХрд╛рд╕ рдЪрд░рдг
* dict
* рдбрд┐рдХреНрд╢рдирд░реА
* рдПрдиреНрдпреБрдорд░реЗрд╢рди
* рдПрдирдо
* рдПрдирдо рд╕рджрд╕реНрдп
* рдПрдиреНрдХреЛрдбрд░
* рдбреАрдХреЛрдбрд░
* рдПрдиреНрдХреЛрдб рдХрд░рдирд╛
* рдбреАрдХреЛрдб рдХрд░рдирд╛
* рдПрдХреНрд╕реЗрдкреНрд╢рди
* рд░реЗрдЬрд╝ рдХрд░рдирд╛
* рдПрдХреНрд╕рдкреНрд░реЗрд╢рди
* рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ
* рдлреНрд░рдВрдЯрдПрдВрдб
* рдмреИрдХрдПрдВрдб
* GitHub рдЪрд░реНрдЪрд╛
* GitHub рдЗрд╢реНрдпреВ
* рдкреНрд░рджрд░реНрд╢рди
* рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди
* рд░рд┐рдЯрд░реНрди рдЯрд╛рдЗрдк
* рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ
* рд╕реБрд░рдХреНрд╖рд╛
* рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдХреАрдо
* рдЯрд╛рд╕реНрдХ
* рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЯрд╛рд╕реНрдХ
* рдЯрд╛рд╕реНрдХ рдлрд╝рдВрдХреНрд╢рди
* рдЯреЗрдореНрдкрд▓реЗрдЯ
* рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди
* рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди
* рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯ
* рд╕рд░реНрд╡рд░ рд╡рд░реНрдХрд░
* Uvicorn рд╡рд░реНрдХрд░
* Gunicorn Worker
* рд╡рд░реНрдХрд░ рдкреНрд░реЛрд╕реЗрд╕
* рд╡рд░реНрдХрд░ рдХреНрд▓рд╛рд╕
* рд╡рд░реНрдХрд▓реЛрдб
* рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ
* рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдирд╛
* SDK
* рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ
* `APIRouter`
* `requirements.txt`
* Bearer Token
* рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ
* рдмрдЧ
* рдмрдЯрди
* рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп
* рдХреЛрдб
* рдХрдорд┐рдЯ
* рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдореИрдиреЗрдЬрд░
* рдХреЛрд░реВрдЯреАрди
* рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╢рди
* рдбрд┐рд╕реНрдХ
* рдбреЛрдореЗрди
* рдЗрдВрдЬрди
* рдирдХрд▓реА X
* HTTP GET рдореЗрдердб
* рдЖрдЗрдЯрдо
* рд▓рд╛рдЗрдмреНрд░реЗрд░реА
* рд▓рд╛рдЗрдлрд╕реНрдкреИрди
* рд▓реЙрдХ
* рдорд┐рдбрд▓рд╡реЗрдпрд░
* рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
* рдореЙрдбреНрдпреВрд▓
* рдорд╛рдЙрдВрдЯрд┐рдВрдЧ
* рдиреЗрдЯрд╡рд░реНрдХ
* рдУрд░рд┐рдЬрд┐рди
* рдУрд╡рд░рд░рд╛рдЗрдб
* рдкреЗрд▓реЛрдб
* рдкреНрд░реЛрд╕реЗрд╕рд░
* рдкреНрд░реЙрдкрд░реНрдЯреА
* рдкреНрд░реЙрдХреНрд╕реА
* рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ
* рдХреНрд╡реЗрд░реА
* RAM
* рд░рд┐рдореЛрдЯ рдорд╢реАрди
* рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб
* рд╕реНрдЯреНрд░рд┐рдВрдЧ
* рдЯреИрдЧ
* рд╡реЗрдм рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ
* рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб
* рд╡рд╛рдкрд╕ рдХрд░рдирд╛
* рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛
////
//// tab | рдЬрд╛рдирдХрд╛рд░реА
рдпрд╣ рдбреЙрдХреНрд╕ рдореЗрдВ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ (рдЬрд╝реНрдпрд╛рджрд╛рддрд░) рддрдХрдиреАрдХреА рд╢рдмреНрджреЛрдВ рдХреА рди рддреЛ рдкреВрд░реНрдг рдФрд░ рди рд╣реА рдорд╛рдирдХ рд╕реВрдЪреА рд╣реИред рдпрд╣ рдкреНрд░реЙрдореНрдкреНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХрд┐рди рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП LLM рдХреЛ рд╕рд╣рд╛рдпрдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдХрдорддрд░ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рд╡рд╛рдкрд╕ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╛ рдЬрдм рдЗрд╕реЗ рдЖрдкрдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдХрд┐рд╕реА рд╢рдмреНрдж рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг/рд╡рд┐рднрдХреНрддрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `docs/de/llm-prompt.md` рдореЗрдВ рд╕реЗрдХреНрд╢рди `### List of English terms and their preferred German translations` рджреЗрдЦреЗрдВред
////

585
docs/hi/docs/index.md

@ -0,0 +1,585 @@
---
include_yaml:
sponsors: data/sponsors.yml
---
# FastAPI { #fastapi }
<style>
.md-content .md-typeset h1 { display: none; }
</style>
<p align="center">
<a href="https://fastapi.tiangolo.com/hi"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
</p>
<p align="center">
<em>FastAPI рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ, рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рд╕реАрдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рддреЗрдЬрд╝, рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░</em>
</p>
<p align="center">
<a href="https://github.com/fastapi/fastapi/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster">
<img src="https://github.com/fastapi/fastapi/actions/workflows/test.yml/badge.svg?event=push&branch=master" alt="рдЯреЗрд╕реНрдЯ">
</a>
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/fastapi">
<img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/fastapi.svg" alt="рдХрд╡рд░реЗрдЬ">
</a>
<a href="https://pypi.org/project/fastapi">
<img src="https://img.shields.io/pypi/v/fastapi?color=%2334D058&label=pypi%20package" alt="рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг">
</a>
<a href="https://pypi.org/project/fastapi">
<img src="https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058" alt="рд╕рдорд░реНрдерд┐рдд Python рд╕рдВрд╕реНрдХрд░рдг">
</a>
</p>
---
**рджрд╕реНрддрд╛рд╡реЗрдЬрд╝**: [https://fastapi.tiangolo.com](https://fastapi.tiangolo.com/hi)
**рд╕реНрд░реЛрдд рдХреЛрдб**: [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)
---
FastAPI рдПрдХ рдЖрдзреБрдирд┐рдХ, рддреЗрдЬрд╝ (рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди) рд╡реЗрдм рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдорд╛рдирдХ Python type hints рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Python рд╕реЗ APIs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:
* **рддреЗрдЬрд╝**: рдмрд╣реБрдд рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, **NodeJS** рдФрд░ **Go** рдХреЗ рд╕рдордХрдХреНрд╖ (Starlette рдФрд░ Pydantic рдХреА рдмрджреМрд▓рдд)ред [рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рддреЗрдЬрд╝ Python рдлрд╝реНрд░реЗрдорд╡рд░реНрдХреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ](#performance)ред
* **рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рддреЗрдЬрд╝**: рдлрд╝реАрдЪрд░реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рд▓рдЧрднрдЧ 200% рд╕реЗ 300% рддрдХ рдмрдврд╝рд╛рдПрдБред *
* **рдХрдо рдмрдЧреНрд╕**: рдорд╛рдирд╡реАрдп (рдбреЗрд╡рд▓рдкрд░) рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ 40% рдХреА рдХрдореАред *
* **рд╕рд╣рдЬ**: рдмреЗрд╣рддрд░реАрди рдПрдбрд┐рдЯрд░ рд╕рдкреЛрд░реНрдЯред рд╣рд░ рдЬрдЧрд╣ <dfn title="рдЙрд░реНрдлрд╝: рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрдЯ, рдСрдЯреЛрдХрдореНрдкреНрд▓реАрд╢рди, IntelliSense">рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрдЯ</dfn>ред рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдо рд╕рдордпред
* **рдЖрд╕рд╛рди**: рдЗрд╕реНрддреЗрдорд╛рд▓ рдФрд░ рд╕реАрдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝рдиреЗ рдореЗрдВ рдХрдо рд╕рдордпред
* **рд╕рдВрдХреНрд╖рд┐рдкреНрдд**: рдХреЛрдб рдбреБрдкреНрд▓реАрдХреЗрд╢рди рдХреЛ рдиреНрдпреВрдирддрдо рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ parameter declaration рд╕реЗ рдХрдИ рдлрд╝реАрдЪрд░реНрд╕ред рдХрдо рдмрдЧреНрд╕ред
* **рдордЬрдмреВрдд**: рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╕реНрд╡рддрдГ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рдеред
* **рдорд╛рдирдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд**: APIs рдХреЗ рдЦреБрд▓реЗ рдорд╛рдирдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд (рдФрд░ рдкреВрд░реНрдгрддрдГ рдЕрдиреБрдХреВрд▓): [OpenAPI](https://github.com/OAI/OpenAPI-Specification) (рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ Swagger рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛) рдФрд░ [JSON Schema](https://json-schema.org/)ред
<small>* рдЖрдВрддрд░рд┐рдХ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдРрдкреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдорд╛рдиред</small>
## рдкреНрд░рд╛рдпреЛрдЬрдХ { #sponsors }
<!-- sponsors -->
### рдХреАрд╕реНрдЯреЛрди рдкреНрд░рд╛рдпреЛрдЬрдХ { #keystone-sponsor }
<div class="fastapi-sponsors fastapi-sponsors--keystone">
{% for sponsor in sponsors.keystone -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--keystone" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}"></a>
{% endfor -%}
</div>
### рдЧреЛрд▓реНрдб рдкреНрд░рд╛рдпреЛрдЬрдХ { #gold-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--gold">
{% for sponsor in sponsors.gold -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--gold" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor -%}
</div>
### рд╕рд┐рд▓реНрд╡рд░ рдкреНрд░рд╛рдпреЛрдЬрдХ { #silver-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--silver">
{% for sponsor in sponsors.silver -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--silver" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor %}
</div>
<!-- /sponsors -->
[рдЕрдиреНрдп рдкреНрд░рд╛рдпреЛрдЬрдХ](https://fastapi.tiangolo.com/hi/fastapi-people/#sponsors)
## рд╡рд┐рдЪрд╛рд░ { #opinions }
<!-- only-mkdocs -->
<div class="fastapi-opinions" data-fastapi-opinions>
<div class="fastapi-opinions__tabs" role="tablist" aria-label="Companies using FastAPI">
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-microsoft" aria-controls="fo-panel-microsoft" aria-selected="true" tabindex="0">
<span class="fastapi-opinions__mark"><img src="/img/logos/microsoft.svg" alt="Microsoft" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-uber" aria-controls="fo-panel-uber" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/uber.svg" alt="Uber" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-netflix" aria-controls="fo-panel-netflix" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/netflix.svg" alt="Netflix" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-cisco" aria-controls="fo-panel-cisco" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/cisco.svg" alt="Cisco" loading="lazy"></span>
</button>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-microsoft" role="tabpanel" aria-labelledby="fo-tab-microsoft" tabindex="0">
<blockquote class="fastapi-opinions__quote">"рдореИрдВ рдЗрди рджрд┐рдиреЛрдВ <strong>FastAPI</strong> рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдЕрдкрдиреА рдЯреАрдо рдХреА <strong>Microsoft рдореЗрдВ ML рд╕реЗрд╡рд╛рдУрдВ</strong> рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдореБрдЦреНрдп <strong>Windows</strong> рдкреНрд░реЛрдбрдХреНрдЯ рдФрд░ рдХреБрдЫ <strong>Office</strong> рдкреНрд░реЛрдбрдХреНрдЯреНрд╕ рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред"</blockquote>
<div class="fastapi-opinions__attr">тАФ рдХрдмреАрд░ рдЦрд╛рди, <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26">(рд╕рдВрджрд░реНрдн)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-uber" role="tabpanel" aria-labelledby="fo-tab-uber" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"рд╣рдордиреЗ <strong>FastAPI</strong> рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдирд╛рдИ рддрд╛рдХрд┐ рдПрдХ <strong>REST</strong> рд╕рд░реНрд╡рд░ рд╕реНрдкреЙрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд┐рд╕реЗ <strong>рдЕрдиреНрджрд╛рдЬрд╝реЛрдВ/рдЕрдиреБрдорд╛рдиреЛрдВ</strong> рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред" <em>[Ludwig рдХреЗ рд▓рд┐рдП]</em></blockquote>
<div class="fastapi-opinions__attr">тАФ рдкрд┐рдПрд░реЛ рдореЛрд▓рд┐рдиреЛ, рдпрд╛рд░реЛрд╕реНрд▓рд╛рд╡ рдбреБрдбрд┐рди, рд╕рд╛рдИ рд╕реБрдордВрдд рдорд┐рд░реНрдпрд╛рд▓рд╛, <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/">(рд╕рдВрджрд░реНрдн)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-netflix" role="tabpanel" aria-labelledby="fo-tab-netflix" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"<strong>Netflix</strong> рд╣рдорд╛рд░реЗ <strong>рд╕рдВрдХрдЯ рдкреНрд░рдмрдВрдзрди</strong> рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ: <strong>Dispatch</strong> рдХреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрди рд╣реИ!" <em>[FastAPI рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛]</em></blockquote>
<div class="fastapi-opinions__attr">тАФ рдХреЗрд╡рд┐рди рдЧреНрд▓рд┐рд╕рди, рдорд╛рд░реНрдХ рд╡рд┐рд▓рд╛рдиреЛрд╡рд╛, рдлреЙрд░реЗрд╕реНрдЯ рдореЙрдиреНрд╕реЗрди, <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(рд╕рдВрджрд░реНрдн)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-cisco" role="tabpanel" aria-labelledby="fo-tab-cisco" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдбрдХреНрд╢рди Python API рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ <strong>FastAPI</strong> рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░реВрдВрдЧрд╛/рдХрд░реВрдВрдЧреАред рдпрд╣ <strong>рд╕реБрдВрджрд░рддрд╛ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди</strong> рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, <strong>рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕рд░рд▓</strong> рд╣реИ рдФрд░ <strong>рдмреЗрд╣рдж рд╕реНрдХреЗрд▓реЗрдмрд▓</strong> рд╣реИ тАФ рдпрд╣ рд╣рдорд╛рд░реА API-рдлрд░реНрд╕реНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд░рдгрдиреАрддрд┐ рдХрд╛ <strong>рдореБрдЦреНрдп рдШрдЯрдХ</strong> рдмрди рдЧрдпрд╛ рд╣реИред"</blockquote>
<div class="fastapi-opinions__attr">тАФ рдбреАрдпреЛрди рдкрд┐рд▓реНрд╕рдмрд░реА, <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/">(рд╕рдВрджрд░реНрдн)</a></div>
</div>
</div>
<!-- /only-mkdocs -->
<div class="only-github" markdown="1">
"_[...] рдореИрдВ рдЗрди рджрд┐рдиреЛрдВ **FastAPI** рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБред [...] рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдЕрдкрдиреА рдЯреАрдо рдХреА **Microsoft рдореЗрдВ ML рд╕реЗрд╡рд╛рдУрдВ** рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдореБрдЦреНрдп **Windows** рдкреНрд░реЛрдбрдХреНрдЯ рдФрд░ рдХреБрдЫ **Office** рдкреНрд░реЛрдбрдХреНрдЯреНрд╕ рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ._"
<div style="text-align: right; margin-right: 10%;">рдХрдмреАрд░ рдЦрд╛рди - <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(рд╕рдВрджрд░реНрдн)</small></a></div>
---
"_рд╣рдордиреЗ **FastAPI** рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдирд╛рдИ рддрд╛рдХрд┐ рдПрдХ **REST** рд╕рд░реНрд╡рд░ рд╕реНрдкреЙрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд┐рд╕реЗ **рдЕрдиреБрдорд╛рдиреЛрдВ** рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред [Ludwig рдХреЗ рд▓рд┐рдП]_"
<div style="text-align: right; margin-right: 10%;">рдкрд┐рдПрд░реЛ рдореЛрд▓рд┐рдиреЛ, рдпрд╛рд░реЛрд╕реНрд▓рд╛рд╡ рдбреБрдбрд┐рди, рдФрд░ рд╕рд╛рдИ рд╕реБрдордВрдд рдорд┐рд░реНрдпрд╛рд▓рд╛ - <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/"><small>(рд╕рдВрджрд░реНрдн)</small></a></div>
---
"_**Netflix** рд╣рдорд╛рд░реЗ **рд╕рдВрдХрдЯ рдкреНрд░рдмрдВрдзрди** рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ: **Dispatch** рдХреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрди рд╣реИ! [**FastAPI** рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛]_"
<div style="text-align: right; margin-right: 10%;">рдХреЗрд╡рд┐рди рдЧреНрд▓рд┐рд╕рди, рдорд╛рд░реНрдХ рд╡рд┐рд▓рд╛рдиреЛрд╡рд╛, рдлреЙрд░реЗрд╕реНрдЯ рдореЙрдиреНрд╕реЗрди - <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"><small>(рд╕рдВрджрд░реНрдн)</small></a></div>
---
"_рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдбрдХреНрд╢рди Python API рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ **FastAPI** рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░реВрдВрдЧрд╛/рдХрд░реВрдВрдЧреАред рдпрд╣ **рд╕реБрдВрджрд░рддрд╛ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди** рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, **рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕рд░рд▓** рд╣реИ рдФрд░ **рдмреЗрд╣рдж рд╕реНрдХреЗрд▓реЗрдмрд▓** рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реА API-рдлрд╝рд░реНрд╕реНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд░рдгрдиреАрддрд┐ рдХрд╛ **рдореБрдЦреНрдп рдШрдЯрдХ** рдмрди рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ Virtual TAC Engineer рдЬреИрд╕реЗ рдХрдИ рдСрдЯреЛрдореЗрд╢рдиреНрд╕ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ._"
<div style="text-align: right; margin-right: 10%;">рдбреАрдпреЛрди рдкрд┐рд▓реНрд╕рдмрд░реА - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(рд╕рдВрджрд░реНрдн)</small></a></div>
---
</div>
## FastAPI рдХреЙрдиреНрдлрд╝ { #fastapi-conf }
[**FastAPI Conf '26**](https://fastapiconf.com) **28 рдЕрдХреНрдЯреВрдмрд░, 2026** рдХреЛ **рдПрдореНрд╕реНрдЯрд░реНрдбрдо, рдиреАрджрд░рд▓реИрдВрдбреНрд╕** рдореЗрдВ рд╣реЛ рд░рд╣реА рд╣реИред рд╕рдм рдХреБрдЫ FastAPI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕реАрдзреЗ рд╕реНрд░реЛрдд рд╕реЗред ЁЯОд
<a class="fastapi-feature-banner" href="https://fastapiconf.com"><img src="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg" alt="FastAPI Conf '26 - 28 рдЕрдХреНрдЯреВрдмрд░, 2026 - рдПрдореНрд╕реНрдЯрд░реНрдбрдо, NL"></a>
## FastAPI рдорд┐рдиреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд░реА { #fastapi-mini-documentary }
рд╕рд╛рд▓ 2025 рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ [FastAPI рдорд┐рдиреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд░реА](https://www.youtube.com/watch?v=mpR8ngthqiE) рд░рд┐рд▓реАрдЬрд╝ рд╣реБрдИ, рдЖрдк рдЗрд╕реЗ рдСрдирд▓рд╛рдЗрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
<a class="fastapi-feature-banner" href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI рдорд┐рдиреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд░реА"></a>
## **Typer**, CLIs рдХрд╛ FastAPI { #typer-the-fastapi-of-clis }
<a href="https://typer.tiangolo.com"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a>
рдпрджрд┐ рдЖрдк рд╡реЗрдм API рдХреЗ рдмрдЬрд╛рдп рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ <abbr title="Command Line Interface - рдЖрджреЗрд╢ рдкрдВрдХреНрддрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕">CLI</abbr> рдРрдк рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ [**Typer**](https://typer.tiangolo.com/) рджреЗрдЦреЗрдВред
**Typer**, FastAPI рдХрд╛ рдЫреЛрдЯрд╛ рднрд╛рдИ/рдмрд╣рди рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп **CLIs рдХрд╛ FastAPI** рд╣реЛрдирд╛ рд╣реИред тМия╕П ЁЯЪА
## рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ { #requirements }
FastAPI рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдЦрдбрд╝рд╛ рд╣реИ:
* рд╡реЗрдм рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП [Starlette](https://www.starlette.dev/)ред
* рдбреЗрдЯрд╛ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП [Pydantic](https://docs.pydantic.dev/)ред
## рд╕реНрдерд╛рдкрдирд╛ { #installation }
рдПрдХ [рд╡рд░реНрдЪреБрдЕрд▓ рдПрдиреНрд╡рд╛рдпрд░рдирдореЗрдВрдЯ](https://fastapi.tiangolo.com/hi/virtual-environments/) рдмрдирд╛рдПрдБ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ FastAPI рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
<div class="termy">
```console
$ pip install "fastapi[standard]"
---> 100%
```
</div>
**рдиреЛрдЯ**: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рднреА рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП `"fastapi[standard]"` рдХреЛ рдЙрджреНрдзрд░рдг-рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд░рдЦреЗрдВред
## рдЙрджрд╛рд╣рд░рдг { #example }
### рдЗрд╕реЗ рдмрдирд╛рдПрдБ { #create-it }
`main.py` рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ:
```Python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
```
<details markdown="1">
<summary>рдпрд╛ <code>async def</code> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ...</summary>
рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб `async` / `await` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ `async def` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
```Python hl_lines="7 12"
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
```
**рдиреЛрдЯ**:
рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ, рддреЛ _"рдЬрд▓реНрджреА рдореЗрдВ?"_ рд╕реЗрдХреНрд╢рди рджреЗрдЦреЗрдВ: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ [`async` рдФрд░ `await`](https://fastapi.tiangolo.com/hi/async/#in-a-hurry) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
</details>
### рдЗрд╕реЗ рдЪрд▓рд╛рдПрдБ { #run-it }
рд╕рд░реНрд╡рд░ рдХреЛ рдЗрд╕ рдХрдорд╛рдВрдб рд╕реЗ рдЪрд▓рд╛рдПрдБ:
<div class="termy">
```console
$ fastapi dev
тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FastAPI CLI - Development mode тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо
тФВ тФВ
тФВ Serving at: http://127.0.0.1:8000 тФВ
тФВ тФВ
тФВ API docs: http://127.0.0.1:8000/docs тФВ
тФВ тФВ
тФВ Running in development mode, for production use: тФВ
тФВ тФВ
тФВ fastapi run тФВ
тФВ тФВ
тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп
INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [2248755] using WatchFiles
INFO: Started server process [2248757]
INFO: Waiting for application startup.
INFO: Application startup complete.
```
</div>
<details markdown="1">
<summary><code>fastapi dev</code> рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ...</summary>
`fastapi dev` рдХрдорд╛рдВрдб рдЖрдкрдХрд╛ `main.py` рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рддрдГ рдкрдврд╝рддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ **FastAPI** рдРрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдФрд░ [Uvicorn](https://www.uvicorn.dev) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, `fastapi dev` рд▓реЛрдХрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП auto-reload рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред
рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: [FastAPI CLI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝](https://fastapi.tiangolo.com/hi/fastapi-cli/) рдореЗрдВред
</details>
### рдЗрд╕реЗ рдЬрд╛рдБрдЪреЗрдВ { #check-it }
рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ [http://127.0.0.1:8000/items/5?q=somequery](http://127.0.0.1:8000/items/5?q=somequery) рдЦреЛрд▓реЗрдВред
рдЖрдкрдХреЛ JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦреЗрдЧреА:
```JSON
{"item_id": 5, "q": "somequery"}
```
рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ API рдмрдирд╛ рд▓реА рд╣реИ рдЬреЛ:
* _paths_ `/` рдФрд░ `/items/{item_id}` рдкрд░ HTTP рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред
* рджреЛрдиреЛрдВ _paths_ `GET` <em>operations</em> рд▓реЗрддреА рд╣реИрдВ (рдЬрд┐рдиреНрд╣реЗрдВ HTTP _methods_ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
* _path_ `/items/{item_id}` рдореЗрдВ рдПрдХ _path parameter_ `item_id` рд╣реИ рдЬреЛ `int` рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
* _path_ `/items/{item_id}` рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ `str` _query parameter_ `q` рд╣реИред
### рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ { #interactive-api-docs }
рдЕрдм [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) рдкрд░ рдЬрд╛рдПрдБред
рдЖрдкрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджрд┐рдЦреЗрдЧрд╛ (рдЬреЛ [Swagger UI](https://github.com/swagger-api/swagger-ui) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png)
### рд╡реИрдХрд▓реНрдкрд┐рдХ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ { #alternative-api-docs }
рдФрд░ рдЕрдм, [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) рдкрд░ рдЬрд╛рдПрдБред
рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджрд┐рдЦреЗрдЧрд╛ (рдЬреЛ [ReDoc](https://github.com/Rebilly/ReDoc) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png)
## рдЙрджрд╛рд╣рд░рдг рдЙрдиреНрдирдпрди { #example-upgrade }
рдЕрдм `PUT` рдЕрдиреБрд░реЛрдз рд╕реЗ body рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП `main.py` рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред
Pydantic рдХреА рдмрджреМрд▓рдд, body рдХреЛ рдорд╛рдирдХ Python рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред
```Python hl_lines="2 7-10 23-25"
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool | None = None
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
```
`fastapi dev` рд╕рд░реНрд╡рд░ рд╕реНрд╡рддрдГ рд░реАрд▓реЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
### рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЙрдиреНрдирдпрди { #interactive-api-docs-upgrade }
рдЕрдм [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) рдкрд░ рдЬрд╛рдПрдБред
* рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрд╡рддрдГ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдирдП body рд╕рд╣рд┐рдд:
![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)
* "Try it out" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдпрд╣ рдЖрдкрдХреЛ parameters рднрд░рдиреЗ рдФрд░ рд╕реАрдзреЗ API рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png)
* рдлрд┐рд░ "Execute" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдкрдХреА API рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдЧрд╛, parameters рднреЗрдЬреЗрдЧрд╛, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдПрдЧрд╛:
![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png)
### рд╡реИрдХрд▓реНрдкрд┐рдХ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЙрдиреНрдирдпрди { #alternative-api-docs-upgrade }
рдФрд░ рдЕрдм, [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) рдкрд░ рдЬрд╛рдПрдБред
* рд╡реИрдХрд▓реНрдкрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рднреА рдирдП query parameter рдФрд░ body рдХреЛ рджрд░реНрд╢рд╛рдПрдЧрд╛:
![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)
### рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди { #recap }
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдк parameters, body, рдЖрджрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдлрд╝рдВрдХреНрд╢рди parameters рдХреЗ рд░реВрдк рдореЗрдВ **рдПрдХ рдмрд╛рд░** рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдпрд╣ рдорд╛рдирдХ рдЖрдзреБрдирд┐рдХ Python рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рдХрд┐рд╕реА рдирдИ рд╕рд┐рдВрдЯреИрдХреНрд╕, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ methods рдпрд╛ classes, рдЖрджрд┐ рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдмрд╕ рдорд╛рдирдХ **Python**ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ `int` рдХреЗ рд▓рд┐рдП:
```Python
item_id: int
```
рдпрд╛ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ `Item` рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП:
```Python
item: Item
```
...рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдХ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ:
* рдПрдбрд┐рдЯрд░ рд╕рдкреЛрд░реНрдЯ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ:
* рдХрдореНрдкреНрд▓реАрд╢рдиред
* рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪред
* рдбреЗрдЯрд╛ рдХрд╛ рд╡реИрдзреАрдХрд░рдг:
* рдЬрдм рдбреЗрдЯрд╛ рдЕрдорд╛рдиреНрдп рд╣реЛ рддреЛ рд╕реНрд╡рддрдГ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпрд╛рдБред
* рдЧрд╣рд░рд╛рдИ рд╕реЗ nested JSON objects рдХреЗ рд▓рд┐рдП рднреА рд╡реИрдзреАрдХрд░рдгред
* рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХрд╛ <dfn title="рдЙрд░реНрдлрд╝: рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ">рд░реВрдкрд╛рдВрддрд░рдг</dfn>: рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ Python рдбреЗрдЯрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВред рдЗрдирдореЗрдВ рд╕реЗ рдкрдврд╝рдирд╛:
* JSONред
* Path parametersред
* Query parametersред
* Cookiesред
* Headersред
* Formsред
* Filesред
* рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХрд╛ <dfn title="рдЙрд░реНрдлрд╝: рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ">рд░реВрдкрд╛рдВрддрд░рдг</dfn>: Python рдбреЗрдЯрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ (JSON рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдВ:
* Python рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг (`str`, `int`, `float`, `bool`, `list`, рдЖрджрд┐)ред
* `datetime` рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ред
* `UUID` рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ред
* рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓реНрд╕ред
* ...рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
* рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдЬрд┐рдирдореЗрдВ 2 рд╡реИрдХрд▓реНрдкрд┐рдХ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
* Swagger UIред
* ReDocред
---
рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, **FastAPI** рдпрд╣ рдХрд░реЗрдЧрд╛:
* `GET` рдФрд░ `PUT` рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП path рдореЗрдВ `item_id` рд╣реИ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред
* `GET` рдФрд░ `PUT` рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП `item_id` рдХрд╛ рдкреНрд░рдХрд╛рд░ `int` рд╣реИ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред
* рдпрджрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА, рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
* `GET` рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ `q` рдирд╛рдо рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ query parameter рд╣реИ (рдЬреИрд╕реЗ `http://127.0.0.1:8000/items/foo?q=somequery`)ред
* рдХреНрдпреЛрдВрдХрд┐ `q` parameter `= None` рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рд╣реИ, рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
* `None` рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ (рдЬреИрд╕реЗ `PUT` рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ body рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред
* `/items/{item_id}` рдкрд░ `PUT` рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП, body рдХреЛ JSON рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝реЗрдЧрд╛:
* рдпрд╣ рдЬрд╛рдБрдЪреЗрдЧрд╛ рдХрд┐ рдПрдХ рдЖрд╡рд╢реНрдпрдХ attribute `name` рд╣реИ рдЬреЛ `str` рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
* рдпрд╣ рдЬрд╛рдБрдЪреЗрдЧрд╛ рдХрд┐ рдПрдХ рдЖрд╡рд╢реНрдпрдХ attribute `price` рд╣реИ рдЬреЛ `float` рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
* рдпрд╣ рдЬрд╛рдБрдЪреЗрдЧрд╛ рдХрд┐ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ attribute `is_offer` рд╣реИ, рдЬреЛ рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ рддреЛ `bool` рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
* рдпрд╣ рд╕рдм рдЧрд╣рд░рд╛рдИ рд╕реЗ nested JSON objects рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
* JSON рд╕реЗ рдФрд░ JSON рдореЗрдВ рд╕реНрд╡рддрдГ рд░реВрдкрд╛рдВрддрд░рдгред
* рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ OpenAPI рдХреЗ рд╕рд╛рде рджрд╕реНрддрд╛рд╡реЗрдЬрд╝рд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рдирд┐рдореНрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
* рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБред
* рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБред
* рд╕реАрдзреЗ 2 рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕реЗрдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
---
рд╣рдордиреЗ рдХреЗрд╡рд▓ рд╕рддрд╣ рдХреЛ рдЫреБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЖ рдЧрдпрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдХрд░ рджреЗрдЦреЗрдВ:
```Python
return {"item_name": item.name, "item_id": item_id}
```
...рдпрд╣рд╛рдБ рд╕реЗ:
```Python
... "item_name": item.name ...
```
...рдпрд╣рд╛рдБ рддрдХ:
```Python
... "item_price": item.price ...
```
...рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдПрдбрд┐рдЯрд░ attributes рдХреЛ рдХреИрд╕реЗ auto-complete рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдиреЗрдЧрд╛:
![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png)
рдЕрдзрд┐рдХ рдлрд╝реАрдЪрд░реНрд╕ рд╕рд╣рд┐рдд рдПрдХ рдЕрдзрд┐рдХ рд╕рдореНрдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, <a href="https://fastapi.tiangolo.com/hi/tutorial/">рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ - рдпреВрдЬрд╝рд░ рдЧрд╛рдЗрдб</a> рджреЗрдЦреЗрдВред
**рд╕реНрдкреЙрдЗрд▓рд░ рдЕрд▓рд░реНрдЯ**: рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ - рдпреВрдЬрд╝рд░ рдЧрд╛рдЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ:
* рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ **parameters** рдХреА рдШреЛрд╖рдгрд╛: **headers**, **cookies**, **form fields** рдФрд░ **files**ред
* `maximum_length` рдпрд╛ `regex` рдЬреИрд╕реА **validation constraints** рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред
* рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди **<dfn title="рдЙрд░реНрдлрд╝: рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕, рд░рд┐рд╕реЛрд░реНрд╕реЗрдЬрд╝, рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕, рд╕рд░реНрд╡рд┐рд╕реЗрдЬрд╝, рдЗрдВрдЬреЗрдХреНрдЯреЗрдмрд▓реНрд╕">рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди</dfn>** рд╕рд┐рд╕реНрдЯрдоред
* рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдЬрд┐рд╕рдореЗрдВ **OAuth2** рдХреЗ рд╕рд╛рде **JWT tokens** рдФрд░ **HTTP Basic** auth рдХрд╛ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред
* **рдЧрд╣рд░рд╛рдИ рд╕реЗ nested JSON рдореЙрдбрд▓реНрд╕** рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рдЙрдиреНрдирдд (рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди) рддрдХрдиреАрдХреЗрдВ (Pydantic рдХреА рдмрджреМрд▓рдд)ред
* [Strawberry](https://strawberry.rocks) рдФрд░ рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд╕рд╛рде **GraphQL** рдПрдХреАрдХрд░рдгред
* рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрдЪрд░реНрд╕ (Starlette рдХреА рдмрджреМрд▓рдд) рдЬреИрд╕реЗ:
* **WebSockets**
* HTTPX рдФрд░ `pytest` рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрддреНрдпрдВрдд рдЖрд╕рд╛рди рдЯреЗрд╕реНрдЯреНрд╕
* **CORS**
* **Cookie Sessions**
* ...рдЖрджрд┐ред
### рдЕрдкрдиреА рдРрдк рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ) { #deploy-your-app-optional }
рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреА FastAPI рдРрдк рдХреЛ [FastAPI Cloud](https://fastapicloud.com) рдкрд░ рдПрдХ рд╣реА рдХрдорд╛рдВрдб рд╕реЗ рдбрд┐рдкреНрд▓реЙрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред ЁЯЪА
<div class="termy">
```console
$ fastapi deploy
Deploying to FastAPI Cloud...
тЬЕ Deployment successful!
ЁЯРФ Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev
```
</div>
CLI рдЖрдкрдХреА FastAPI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рддрдГ рдкрд╣рдЪрд╛рди рд▓реЗрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк logged in рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреБрд▓реЗрдЧрд╛ред
рдмрд╕ рдЗрддрдирд╛ рд╣реА! рдЕрдм рдЖрдк рдЙрд╕ URL рдкрд░ рдЕрдкрдиреА рдРрдк рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред тЬи
#### FastAPI Cloud рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ { #about-fastapi-cloud }
**[FastAPI Cloud](https://fastapicloud.com)** рдХреЛ **FastAPI** рдХреЗ рд╣реА рд▓реЗрдЦрдХ рдФрд░ рдЯреАрдо рдиреЗ рдмрдирд╛рдпрд╛ рд╣реИред
рдпрд╣ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдХрд┐рд╕реА API рдХреЛ **рдмрдирд╛рдиреЗ**, **рдбрд┐рдкреНрд▓реЙрдп** рдХрд░рдиреЗ рдФрд░ **рдПрдХреНрд╕реЗрд╕** рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣ FastAPI рдХреЗ рд╕рд╛рде рдРрдкреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдЙрд╕реА **рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡** рдХреЛ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ **рдбрд┐рдкреНрд▓реЙрдп** рдХрд░рдиреЗ рддрдХ рд▓рд╛рддрд╛ рд╣реИред ЁЯОЙ
FastAPI Cloud, *FastAPI and friends* рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░рд╛рдпреЛрдЬрдХ рдФрд░ рдлрдВрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рд╣реИред тЬи
#### рдЕрдиреНрдп рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛рдУрдВ рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ { #deploy-to-other-cloud-providers }
FastAPI рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реИ рдФрд░ рдорд╛рдирдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЖрдк FastAPI рдРрдкреНрд╕ рдХреЛ рдХрд┐рд╕реА рднреА рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдЧрд╛рдЗрдбреНрд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде FastAPI рдРрдкреНрд╕ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВред ЁЯдУ
## рдкреНрд░рджрд░реНрд╢рди { #performance }
рд╕реНрд╡рддрдВрддреНрд░ TechEmpower рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ Uvicorn рдХреЗ рддрд╣рдд рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ **FastAPI** рдПрдкреНрд▓реАрдХреЗрд╢рдиреНрд╕ [рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рддреЗрдЬрд╝ Python рдлрд╝реНрд░реЗрдорд╡рд░реНрдХреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ](https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7) рд╣реИрдВ, рдХреЗрд╡рд▓ Starlette рдФрд░ Uvicorn (рдЬреЛ FastAPI рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рд╕реЗ рдиреАрдЪреЗред (*)
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, [рдмреЗрдВрдЪрдорд╛рд░реНрдХреНрд╕](https://fastapi.tiangolo.com/hi/benchmarks/) рд╕реЗрдХреНрд╢рди рджреЗрдЦреЗрдВред
## рдирд┐рд░реНрднрд░рддрд╛рдПрдБ { #dependencies }
FastAPI, Pydantic рдФрд░ Starlette рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
### `standard` рдирд┐рд░реНрднрд░рддрд╛рдПрдБ { #standard-dependencies }
рдЬрдм рдЖрдк `pip install "fastapi[standard]"` рдХреЗ рд╕рд╛рде FastAPI рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ `standard` рд╕рдореВрд╣ рдХреА рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:
Pydantic рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:
* [`email-validator`](https://github.com/JoshData/python-email-validator) - рдИрдореЗрд▓ рд╡реИрдзреАрдХрд░рдг рдХреЗ рд▓рд┐рдПред
Starlette рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:
* [`httpx`](https://www.python-httpx.org) - рдпрджрд┐ рдЖрдк `TestClient` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрд╡рд╢реНрдпрдХред
* [`jinja2`](https://jinja.palletsprojects.com) - рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрд╡рд╢реНрдпрдХред
* [`python-multipart`](https://github.com/Kludex/python-multipart) - рдпрджрд┐ рдЖрдк рдлреЙрд░реНрдо <dfn title="HTTP рдЕрдиреБрд░реЛрдз рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ Python рдбреЗрдЯрд╛ рдореЗрдВ рдмрджрд▓рдирд╛">"рдкрд╛рд░реНрд╕рд┐рдВрдЧ"</dfn> рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, `request.form()` рдХреЗ рд╕рд╛рде, рддреЛ рдЖрд╡рд╢реНрдпрдХред
FastAPI рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:
* [`uvicorn`](https://www.uvicorn.dev) - рд╡рд╣ рд╕рд░реНрд╡рд░ рдЬреЛ рдЖрдкрдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЛрдб рдФрд░ рд╕рд░реНрд╡ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ `uvicorn[standard]` рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╕рд░реНрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ (рдЬреИрд╕реЗ `uvloop`) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
* `fastapi-cli[standard]` - `fastapi` рдХрдорд╛рдВрдб рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
* рдЗрд╕рдореЗрдВ `fastapi-cloud-cli` рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА FastAPI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ [FastAPI Cloud](https://fastapicloud.com) рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
### `standard` рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ { #without-standard-dependencies }
рдпрджрд┐ рдЖрдк `standard` рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ, рддреЛ рдЖрдк `pip install fastapi` рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, `pip install "fastapi[standard]"` рдХреЗ рдмрдЬрд╛рдпред
### `fastapi-cloud-cli` рдХреЗ рдмрд┐рдирд╛ { #without-fastapi-cloud-cli }
рдпрджрд┐ рдЖрдк standard рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓реЗрдХрд┐рди `fastapi-cloud-cli` рдХреЗ рдмрд┐рдирд╛ FastAPI рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ `pip install "fastapi[standard-no-fastapi-cloud-cli]"` рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
### рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ { #additional-optional-dependencies }
рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ Pydantic рдирд┐рд░реНрднрд░рддрд╛рдПрдБ:
* [`pydantic-settings`](https://docs.pydantic.dev/latest/usage/pydantic_settings/) - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдПред
* [`pydantic-extra-types`](https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/) - Pydantic рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рд╣реЗрддреБред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ FastAPI рдирд┐рд░реНрднрд░рддрд╛рдПрдБ:
* [`orjson`](https://github.com/ijl/orjson) - рдпрджрд┐ рдЖрдк `ORJSONResponse` рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрд╡рд╢реНрдпрдХред
* [`ujson`](https://github.com/esnme/ultrajson) - рдпрджрд┐ рдЖрдк `UJSONResponse` рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрд╡рд╢реНрдпрдХред
## рд▓рд╛рдЗрд╕реЗрдВрд╕ { #license }
рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ MIT рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред

11
docs/hi/docs/translation-banner.md

@ -0,0 +1,11 @@
/// details | ЁЯМР рдПрдЖрдИ рдФрд░ рдордиреБрд╖реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдиреБрд╡рд╛рдж
рдпрд╣ рдЕрдиреБрд╡рд╛рдж рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдореЗрдВ рдПрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред ЁЯдЭ
рдЗрд╕рдореЗрдВ рдореВрд▓ рдЕрд░реНрде рдХреЛ рдЧрд▓рдд рд╕рдордЭрдиреЗ рдпрд╛ рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ рд▓рдЧрдиреЗ рдЖрджрд┐ рдЬреИрд╕реА рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред ЁЯдЦ
рдЖрдк [рд╣рдореЗрдВ рдПрдЖрдИ LLM рдХреЛ рдмреЗрд╣рддрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдХреЗ](https://fastapi.tiangolo.com/hi/contributing/#translations) рдЗрд╕ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
[рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕рдВрд╕реНрдХрд░рдг](ENGLISH_VERSION_URL)
///

5
docs/hi/llm-prompt.md

@ -0,0 +1,5 @@
### Target language
Translate to Hindi (рд╣рд┐рдиреНрджреА).
Language code: hi.

1
docs/hi/mkdocs.yml

@ -0,0 +1 @@
INHERIT: ../en/mkdocs.yml

1
pyproject.toml

@ -331,6 +331,7 @@ extend-exclude = [
"docs/uk/",
"docs/zh/",
"docs/zh-hant/",
"docs/hi/",
"htmlcov/",
"scripts/general-llm-prompt.md",
"scripts/tests/test_translation_fixer/test_complex_doc/",

1
scripts/docs.py

@ -31,6 +31,7 @@ SUPPORTED_LANGS = {
"uk",
"zh",
"zh-hant",
"hi",
}

LoadingтАж
Cancel
Save