--- /dev/null
+# ΠΠΎΠ΄Π΅Π»ΠΈ Header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
+
+ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π³ΡΡΠΏΠΏΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
**header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²**, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ
Π² ΠΎΠ΄Π½Ρ **Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ**.
+
+ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ **ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ** Π² **ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
**, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ°Π·Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². π
+
+/// note | ΠΠ°ΠΌΠ΅ΡΠΊΠ°
+
+ΠΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² FastAPI Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ `0.115.0`. π€
+
+///
+
+## Header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Pydantic-ΠΌΠΎΠ΄Π΅Π»ΠΈ
+
+ΠΠ±ΡΡΠ²ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ **header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ** Π² **Pydantic-ΠΌΠΎΠ΄Π΅Π»ΠΈ** ΠΈ Π·Π°ΡΠ΅ΠΌ Π°Π½Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ `Header`:
+
+{* ../../docs_src/header_param_models/tutorial001_an_py310.py hl[9:14,18] *}
+
+**FastAPI** **ΠΈΠ·Π²Π»Π΅ΡΡΡ** Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ **ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ** ΠΈΠ· **Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²** Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π²ΡΠ΄Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΡ Π²Π°ΠΌΠΈ Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ.
+
+## ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½ΡΠΆΠ½ΡΠ΅ header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΡΠΈ `/docs`:
+
+<div class="screenshot">
+<img src="/img/tutorial/header-param-models/image01.png">
+</div>
+
+## ΠΠ°ΠΊ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
+
+Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
(Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΡ
ΡΡ) Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ **ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ** Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ.
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Pydantic-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ (`forbid`) Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (`extra`) ΠΏΠΎΠ»Ρ:
+
+{* ../../docs_src/header_param_models/tutorial002_an_py310.py hl[10] *}
+
+ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ **Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ**, ΡΠΎ Π² ΠΎΡΠ²Π΅Ρ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ **ΠΎΡΠΈΠ±ΠΊΡ**.
+
+ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `tool` ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ `plumbus`, ΡΠΎ Π² ΠΎΡΠ²Π΅Ρ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΡΡ Π΅ΠΌΡ, ΡΡΠΎ header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `tool` Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½:
+
+```json
+{
+ "detail": [
+ {
+ "type": "extra_forbidden",
+ "loc": ["header", "tool"],
+ "msg": "Extra inputs are not permitted",
+ "input": "plumbus",
+ }
+ ]
+}
+```
+
+## ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠΉ
+
+ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π² ΠΈΠΌΠ΅Π½Π°Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΠΎΠ½ΠΈ **Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² Π΄Π΅ΡΠΈΡ**.
+
+ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `save_data`, ΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π±ΡΠ΄Π΅Ρ `save-data` ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
+
+ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π΄Π»Ρ Pydantic-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π»Ρ header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
+
+{* ../../docs_src/header_param_models/tutorial003_an_py310.py hl[19] *}
+
+/// warning | ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
+
+ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° `convert_underscores` Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ `False`, ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ HTTP-ΠΏΡΠΎΠΊΡΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ.
+
+///
+
+## Π Π΅Π·ΡΠΌΠ΅
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ **Pydantic-ΠΌΠΎΠ΄Π΅Π»ΠΈ** Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ **header-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²** Π² **FastAPI**. π