mirror of https://github.com/tiangolo/fastapi.git
🌐 Update translations for uk (update-outdated) (#14822)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com> Co-authored-by: Maksym Zavalniuk <maksym.z@jome.com> Co-authored-by: Roman Mashevskyi <romanmashevskyi@proton.me>
This commit is contained in:
parent
64d0ee9104
commit
31faba8e41
|
|
@ -8,7 +8,7 @@
|
|||
<a href="https://fastapi.tiangolo.com/uk"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em>Фреймворк FastAPI: висока продуктивність, легко вивчати, швидко писати код, готовий до продакшину</em>
|
||||
<em>Фреймворк FastAPI - це висока продуктивність, легко вивчати, швидко писати код, готовий до продакшину</em>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://github.com/fastapi/fastapi/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster" target="_blank">
|
||||
|
|
@ -33,14 +33,14 @@
|
|||
|
||||
---
|
||||
|
||||
FastAPI — це сучасний, швидкий (високопродуктивний) вебфреймворк для створення API за допомогою Python, що базується на стандартних підказках типів Python.
|
||||
FastAPI - це сучасний, швидкий (високопродуктивний) вебфреймворк для створення API за допомогою Python, що базується на стандартних підказках типів Python.
|
||||
|
||||
Ключові особливості:
|
||||
|
||||
* **Швидкий**: дуже висока продуктивність, на рівні з **NodeJS** та **Go** (завдяки Starlette та Pydantic). [Один із найшвидших Python-фреймворків](#performance).
|
||||
* **Швидке написання коду**: пришвидшує розробку функціоналу приблизно на 200%–300%. *
|
||||
* **Менше помилок**: зменшує приблизно на 40% кількість помилок, спричинених людиною (розробником). *
|
||||
* **Інтуїтивний**: чудова підтримка редакторами коду. <abbr title="also known as auto-complete, autocompletion, IntelliSense">Автодоповнення</abbr> всюди. Менше часу на налагодження.
|
||||
* **Інтуїтивний**: чудова підтримка редакторами коду. <abbr title="також відоме як auto-complete, autocompletion, IntelliSense">Автодоповнення</abbr> всюди. Менше часу на налагодження.
|
||||
* **Простий**: спроєктований так, щоб бути простим у використанні та вивченні. Менше часу на читання документації.
|
||||
* **Короткий**: мінімізує дублювання коду. Кілька можливостей з кожного оголошення параметра. Менше помилок.
|
||||
* **Надійний**: ви отримуєте код, готовий до продакшину. З автоматичною інтерактивною документацією.
|
||||
|
|
@ -127,9 +127,9 @@ FastAPI — це сучасний, швидкий (високопродукти
|
|||
|
||||
<a href="https://typer.tiangolo.com" target="_blank"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a>
|
||||
|
||||
Якщо ви створюєте застосунок <abbr title="Command Line Interface">CLI</abbr> для використання в терміналі замість веб-API, зверніть увагу на <a href="https://typer.tiangolo.com/" class="external-link" target="_blank">**Typer**</a>.
|
||||
Якщо ви створюєте застосунок <abbr title="Command Line Interface- Інтерфейс командного рядка">CLI</abbr> для використання в терміналі замість веб-API, зверніть увагу на <a href="https://typer.tiangolo.com/" class="external-link" target="_blank">**Typer**</a>.
|
||||
|
||||
**Typer** — молодший брат FastAPI. І його задумано як **FastAPI для CLI**. ⌨️ 🚀
|
||||
**Typer** - молодший брат FastAPI. І його задумано як **FastAPI для CLI**. ⌨️ 🚀
|
||||
|
||||
## Вимоги { #requirements }
|
||||
|
||||
|
|
@ -161,8 +161,6 @@ $ pip install "fastapi[standard]"
|
|||
Створіть файл `main.py` з:
|
||||
|
||||
```Python
|
||||
from typing import Union
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
app = FastAPI()
|
||||
|
|
@ -174,7 +172,7 @@ def read_root():
|
|||
|
||||
|
||||
@app.get("/items/{item_id}")
|
||||
def read_item(item_id: int, q: Union[str, None] = None):
|
||||
def read_item(item_id: int, q: str | None = None):
|
||||
return {"item_id": item_id, "q": q}
|
||||
```
|
||||
|
||||
|
|
@ -183,9 +181,7 @@ def read_item(item_id: int, q: Union[str, None] = None):
|
|||
|
||||
Якщо ваш код використовує `async` / `await`, скористайтеся `async def`:
|
||||
|
||||
```Python hl_lines="9 14"
|
||||
from typing import Union
|
||||
|
||||
```Python hl_lines="7 12"
|
||||
from fastapi import FastAPI
|
||||
|
||||
app = FastAPI()
|
||||
|
|
@ -197,7 +193,7 @@ async def read_root():
|
|||
|
||||
|
||||
@app.get("/items/{item_id}")
|
||||
async def read_item(item_id: int, q: Union[str, None] = None):
|
||||
async def read_item(item_id: int, q: str | None = None):
|
||||
return {"item_id": item_id, "q": q}
|
||||
```
|
||||
|
||||
|
|
@ -288,9 +284,7 @@ INFO: Application startup complete.
|
|||
|
||||
Оголосіть тіло, використовуючи стандартні типи Python, завдяки Pydantic.
|
||||
|
||||
```Python hl_lines="4 9-12 25-27"
|
||||
from typing import Union
|
||||
|
||||
```Python hl_lines="2 7-10 23-25"
|
||||
from fastapi import FastAPI
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
|
@ -300,7 +294,7 @@ app = FastAPI()
|
|||
class Item(BaseModel):
|
||||
name: str
|
||||
price: float
|
||||
is_offer: Union[bool, None] = None
|
||||
is_offer: bool | None = None
|
||||
|
||||
|
||||
@app.get("/")
|
||||
|
|
@ -309,7 +303,7 @@ def read_root():
|
|||
|
||||
|
||||
@app.get("/items/{item_id}")
|
||||
def read_item(item_id: int, q: Union[str, None] = None):
|
||||
def read_item(item_id: int, q: str | None = None):
|
||||
return {"item_id": item_id, "q": q}
|
||||
|
||||
|
||||
|
|
@ -374,7 +368,7 @@ item: Item
|
|||
* Валідацію даних:
|
||||
* Автоматичні та зрозумілі помилки, коли дані некоректні.
|
||||
* Валідацію навіть для глибоко вкладених JSON-обʼєктів.
|
||||
* <abbr title="also known as: serialization, parsing, marshalling">Перетворення</abbr> вхідних даних: з мережі до даних і типів Python. Читання з:
|
||||
* <abbr title="також відоме як serialization, parsing, marshalling">Перетворення</abbr> вхідних даних: з мережі до даних і типів Python. Читання з:
|
||||
* JSON.
|
||||
* Параметрів шляху.
|
||||
* Параметрів запиту.
|
||||
|
|
@ -382,7 +376,7 @@ item: Item
|
|||
* Headers.
|
||||
* Forms.
|
||||
* Files.
|
||||
* <abbr title="also known as: serialization, parsing, marshalling">Перетворення</abbr> вихідних даних: перетворення з даних і типів Python у мережеві дані (як JSON):
|
||||
* <abbr title="також відоме як serialization, parsing, marshalling">Перетворення</abbr> вихідних даних: перетворення з даних і типів Python у мережеві дані (як JSON):
|
||||
* Перетворення типів Python (`str`, `int`, `float`, `bool`, `list`, тощо).
|
||||
* Обʼєктів `datetime`.
|
||||
* Обʼєктів `UUID`.
|
||||
|
|
@ -439,9 +433,9 @@ item: Item
|
|||
|
||||

|
||||
|
||||
Для більш повного прикладу, що включає більше можливостей, перегляньте <a href="https://fastapi.tiangolo.com/uk/tutorial/">Туторіал — Посібник користувача</a>.
|
||||
Для більш повного прикладу, що включає більше можливостей, перегляньте <a href="https://fastapi.tiangolo.com/uk/tutorial/">Навчальний посібник - Посібник користувача</a>.
|
||||
|
||||
**Spoiler alert**: туторіал — посібник користувача містить:
|
||||
**Попередження про спойлер**: навчальний посібник - посібник користувача містить:
|
||||
|
||||
* Оголошення **параметрів** з інших різних місць, як-от: **headers**, **cookies**, **form fields** та **files**.
|
||||
* Як встановлювати **обмеження валідації** як `maximum_length` або `regex`.
|
||||
|
|
@ -500,11 +494,11 @@ Deploying to FastAPI Cloud...
|
|||
|
||||
Він забезпечує той самий **developer experience** створення застосунків на FastAPI під час їх **розгортання** у хмарі. 🎉
|
||||
|
||||
FastAPI Cloud — основний спонсор і джерело фінансування open source проєктів *FastAPI and friends*. ✨
|
||||
FastAPI Cloud - основний спонсор і джерело фінансування open source проєктів *FastAPI and friends*. ✨
|
||||
|
||||
#### Розгортання в інших хмарних провайдерів { #deploy-to-other-cloud-providers }
|
||||
|
||||
FastAPI — open source і базується на стандартах. Ви можете розгортати застосунки FastAPI в будь-якому хмарному провайдері, який ви оберете.
|
||||
FastAPI - open source проект і базується на стандартах. Ви можете розгортати застосунки FastAPI в будь-якому хмарному провайдері, який ви оберете.
|
||||
|
||||
Дотримуйтеся інструкцій вашого хмарного провайдера, щоб розгорнути застосунки FastAPI у нього. 🤓
|
||||
|
||||
|
|
@ -530,7 +524,7 @@ FastAPI залежить від Pydantic і Starlette.
|
|||
|
||||
* <a href="https://www.python-httpx.org" target="_blank"><code>httpx</code></a> - потрібно, якщо ви хочете використовувати `TestClient`.
|
||||
* <a href="https://jinja.palletsprojects.com" target="_blank"><code>jinja2</code></a> - потрібно, якщо ви хочете використовувати конфігурацію шаблонів за замовчуванням.
|
||||
* <a href="https://github.com/Kludex/python-multipart" target="_blank"><code>python-multipart</code></a> - потрібно, якщо ви хочете підтримувати <abbr title="converting the string that comes from an HTTP request into Python data">«parsing»</abbr> форм за допомогою `request.form()`.
|
||||
* <a href="https://github.com/Kludex/python-multipart" target="_blank"><code>python-multipart</code></a> - потрібно, якщо ви хочете підтримувати <abbr title="перетворення строки із HTTP-запиту, у Python типи">«parsing»</abbr> форм за допомогою `request.form()`.
|
||||
|
||||
Використовується FastAPI:
|
||||
|
||||
|
|
|
|||
|
|
@ -102,15 +102,16 @@
|
|||
|
||||
Оскільки за замовчуванням одиничні значення інтерпретуються як параметри запиту, вам не потрібно явно додавати `Query`, ви можете просто зробити:
|
||||
|
||||
```Python
|
||||
q: str | None = None
|
||||
```
|
||||
|
||||
Або в Python 3.9:
|
||||
|
||||
```Python
|
||||
q: Union[str, None] = None
|
||||
```
|
||||
|
||||
Або в Python 3.10 і вище:
|
||||
|
||||
```Python
|
||||
q: str | None = None
|
||||
```
|
||||
|
||||
Наприклад:
|
||||
|
||||
|
|
@ -129,7 +130,7 @@ q: str | None = None
|
|||
|
||||
За замовчуванням **FastAPI** очікуватиме його тіло безпосередньо.
|
||||
|
||||
Але якщо ви хочете, щоб він очікував JSON з ключем `item`, а всередині нього — вміст моделі, як це відбувається, коли ви оголошуєте додаткові параметри тіла, ви можете використати спеціальний параметр `Body` — `embed`:
|
||||
Але якщо ви хочете, щоб він очікував JSON з ключем `item`, а всередині нього - вміст моделі, як це відбувається, коли ви оголошуєте додаткові параметри тіла, ви можете використати спеціальний параметр `Body` - `embed`:
|
||||
|
||||
```Python
|
||||
item: Item = Body(embed=True)
|
||||
|
|
|
|||
Loading…
Reference in New Issue