Skip to content

Commit

Permalink
Add Ukrainian translation for docs/uk/docs/tutorial/body-fields.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ArtemKhymenko committed Nov 17, 2023
1 parent 1c25e2d commit 47329aa
Showing 1 changed file with 116 additions and 0 deletions.
116 changes: 116 additions & 0 deletions docs/uk/docs/tutorial/body-fields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Тіло - Поля

Так само як ви можете визначати додаткову валідацію та метадані у параметрах *функції обробки шляху* за допомогою `Query`, `Path` та `Body`, ви можете визначати валідацію та метадані всередині моделей Pydantic за допомогою `Field` від Pydantic.

## Імпорт `Field`

Спочатку вам потрібно імпортувати це:

=== "Python 3.10+"

```Python hl_lines="4"
{!> ../../../docs_src/body_fields/tutorial001_an_py310.py!}
```

=== "Python 3.9+"

```Python hl_lines="4"
{!> ../../../docs_src/body_fields/tutorial001_an_py39.py!}
```

=== "Python 3.8+"

```Python hl_lines="4"
{!> ../../../docs_src/body_fields/tutorial001_an.py!}
```

=== "Python 3.10+ non-Annotated"

!!! tip
Варто користуватись `Annotated` версією, якщо це можливо.

```Python hl_lines="2"
{!> ../../../docs_src/body_fields/tutorial001_py310.py!}
```

=== "Python 3.8+ non-Annotated"

!!! tip
Варто користуватись `Annotated` версією, якщо це можливо.

```Python hl_lines="4"
{!> ../../../docs_src/body_fields/tutorial001.py!}
```

!!! warning
Зверніть увагу, що `Field` імпортується прямо з `pydantic`, а не з `fastapi`, як всі інші (`Query`, `Path`, `Body` тощо).

## Оголошення атрибутів моделі

Ви можете використовувати `Field` з атрибутами моделі:

=== "Python 3.10+"

```Python hl_lines="11-14"
{!> ../../../docs_src/body_fields/tutorial001_an_py310.py!}
```

=== "Python 3.9+"

```Python hl_lines="11-14"
{!> ../../../docs_src/body_fields/tutorial001_an_py39.py!}
```

=== "Python 3.8+"

```Python hl_lines="12-15"
{!> ../../../docs_src/body_fields/tutorial001_an.py!}
```

=== "Python 3.10+ non-Annotated"

!!! tip
Варто користуватись `Annotated` версією, якщо це можливо..

```Python hl_lines="9-12"
{!> ../../../docs_src/body_fields/tutorial001_py310.py!}
```

=== "Python 3.8+ non-Annotated"

!!! tip
Варто користуватись `Annotated` версією, якщо це можливо..

```Python hl_lines="11-14"
{!> ../../../docs_src/body_fields/tutorial001.py!}
```

`Field` працює так саме, як `Query`, `Path` і `Body`, у неї такі самі параметри тощо.

!!! note "Технічні деталі"
Насправді, `Query`, `Path` та інші, що ви побачите далі, створюють об'єкти підкласів загального класу `Param`, котрий сам є підкласом класу `FieldInfo` з Pydantic.

І `Field` від Pydantic також повертає екземпляр `FieldInfo`.

`Body` також безпосередньо повертає об'єкти підкласу `FieldInfo`. І є інші підкласи, які ви побачите пізніше, що є підкласами класу Body.

Пам'ятайте, що коли ви імпортуєте 'Query', 'Path' та інше з 'fastapi', вони фактично є функціями, які повертають спеціальні класи.

!!! tip
Зверніть увагу, як кожний атрибут моделі із типом, значенням за замовчуванням та `Field` має ту саму структуру, що й параметр *функції обробки шляху*, з `Field` замість `Path`, `Query` і `Body`.

## Додавання додаткової інформації

Ви можете визначити додаткову інформацію у `Field`, `Query`, `Body`, тощо. І вона буде включена у згенеровану JSON схему.

Ви дізнаєтеся більше про додавання додаткової інформації пізніше у документації, коли вивчатимете визначення прикладів.

!!! warning
Додаткові ключі, передані в `Field`, також будуть присутні в отриманій схемі OpenAPI для вашого додатка.
Оскільки ці ключі не обов'язково можуть бути частиною специфікації OpenAPI, деякі інструменти OpenAPI, наприклад, [OpenAPI валідатор](https://validator.swagger.io/), можуть не працювати з вашою згенерованою схемою.

## Підсумок

Ви можете використовувати `Field` з Pydantic для визначення додаткових перевірок та метаданих для атрибутів моделі.

Ви також можете використовувати додаткові іменовані аргументи для передачі додаткових метаданих JSON схеми.

0 comments on commit 47329aa

Please sign in to comment.