mirror of
https://github.com/fastapi/fastapi.git
synced 2026-01-30 00:41:13 -05:00
Apply suggestions from code review
This commit is contained in:
@@ -36,7 +36,7 @@ Django REST Framework створив Том Крісті. Той самий тв
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Мати автоматичний веб-інтерфейс документації API.
|
||||
|
||||
@@ -56,7 +56,7 @@ Flask — це «мікрофреймворк», він не включає ін
|
||||
|
||||
Враховуючи простоту Flask, він здавався хорошим підходом для створення API. Наступним, що знайшов, був «Django REST Framework» для Flask.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Бути мікрофреймоворком. Зробити легким комбінування та поєднання необхідних інструментів та частин.
|
||||
|
||||
@@ -98,7 +98,7 @@ def read_url():
|
||||
|
||||
Зверніть увагу на схожість у `requests.get(...)` і `@app.get(...)`.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
* Майте простий та інтуїтивно зрозумілий API.
|
||||
* Використовуйте імена (операції) методів HTTP безпосередньо, простим та інтуїтивно зрозумілим способом.
|
||||
@@ -118,7 +118,7 @@ def read_url():
|
||||
|
||||
Тому, коли говорять про версію 2.0, прийнято говорити «Swagger», а про версію 3+ «OpenAPI».
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Прийняти і використовувати відкритий стандарт для специфікацій API замість спеціальної схеми.
|
||||
|
||||
@@ -137,7 +137,7 @@ def read_url():
|
||||
|
||||
### <a href="https://marshmallow.readthedocs.io/en/stable/" class="external-link" target="_blank">Marshmallow</a> { #marshmallow }
|
||||
|
||||
Однією з головних функцій, необхідних для систем API, є "<abbr title="also called marshalling, conversion - також звана marshalling, conversion">serialization</abbr>", яка бере дані з коду (Python) і перетворює їх на щось, що можна надіслати через мережу. Наприклад, перетворення об’єкта, що містить дані з бази даних, на об’єкт JSON. Перетворення об’єктів `datetime` на строки тощо.
|
||||
Однією з головних функцій, необхідних для систем API, є "<abbr title="також звана marshalling, conversion">серіалізація</abbr>", яка бере дані з коду (Python) і перетворює їх на щось, що можна надіслати через мережу. Наприклад, перетворення об’єкта, що містить дані з бази даних, на об’єкт JSON. Перетворення об’єктів `datetime` на строки тощо.
|
||||
|
||||
Іншою важливою функцією, необхідною для API, є перевірка даних, яка забезпечує дійсність даних за певними параметрами. Наприклад, що деяке поле є `int`, а не деяка випадкова строка. Це особливо корисно для вхідних даних.
|
||||
|
||||
@@ -145,9 +145,9 @@ def read_url():
|
||||
|
||||
Marshmallow створено для забезпечення цих функцій. Це чудова бібліотека, і я часто нею користувався раніше.
|
||||
|
||||
Але він був створений до того, як існували підказки типу Python. Отже, щоб визначити кожну <abbr title="the definition of how data should be formed - визначення того, як дані повинні бути сформовані">schema</abbr>, вам потрібно використовувати спеціальні утиліти та класи, надані Marshmallow.
|
||||
Але він був створений до того, як існували підказки типу Python. Отже, щоб визначити кожну <abbr title="визначення того, як дані повинні бути сформовані">схему</abbr>, вам потрібно використовувати спеціальні утиліти та класи, надані Marshmallow.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Використовувати код для автоматичного визначення "схем", які надають типи даних і перевірку.
|
||||
|
||||
@@ -155,7 +155,7 @@ Marshmallow створено для забезпечення цих функці
|
||||
|
||||
### <a href="https://webargs.readthedocs.io/en/latest/" class="external-link" target="_blank">Webargs</a> { #webargs }
|
||||
|
||||
Іншою важливою функцією, необхідною для API, є <abbr title="reading and converting to Python data - читання та перетворення на дані Python">parsing</abbr> даних із вхідних запитів.
|
||||
Іншою важливою функцією, необхідною для API, є <abbr title="читання та перетворення даних Python">аналіз</abbr> даних із вхідних запитів.
|
||||
|
||||
Webargs — це інструмент, створений, щоб забезпечити це поверх кількох фреймворків, включаючи Flask.
|
||||
|
||||
@@ -169,7 +169,7 @@ Webargs був створений тими ж розробниками Marshmall
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Мати автоматичну перевірку даних вхідного запиту.
|
||||
|
||||
@@ -199,7 +199,7 @@ APISpec був створений тими ж розробниками Marshmall
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Підтримувати відкритий стандарт API, OpenAPI.
|
||||
|
||||
@@ -231,7 +231,7 @@ Flask-apispec був створений тими ж розробниками Mar
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Створення схеми OpenAPI автоматично з того самого коду, який визначає серіалізацію та перевірку.
|
||||
|
||||
@@ -251,7 +251,7 @@ Flask-apispec був створений тими ж розробниками Mar
|
||||
|
||||
Він не дуже добре обробляє вкладені моделі. Отже, якщо тіло JSON у запиті є об’єктом JSON із внутрішніми полями, які, у свою чергу, є вкладеними об’єктами JSON, його неможливо належним чином задокументувати та перевірити.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Використовувати типи Python, щоб мати чудову підтримку редактора.
|
||||
|
||||
@@ -271,7 +271,7 @@ Flask-apispec був створений тими ж розробниками Mar
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Знайти спосіб отримати божевільну продуктивність.
|
||||
|
||||
@@ -287,7 +287,7 @@ Falcon — ще один високопродуктивний фреймворк
|
||||
|
||||
Таким чином, перевірка даних, серіалізація та документація повинні виконуватися в коді, а не автоматично. Або вони повинні бути реалізовані як фреймворк поверх Falcon, як Hug. Така сама відмінність спостерігається в інших фреймворках, натхненних дизайном Falcon, що мають один об’єкт запиту та один об’єкт відповіді як параметри.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Знайти способи отримати чудову продуктивність.
|
||||
|
||||
@@ -313,7 +313,7 @@ Falcon — ще один високопродуктивний фреймворк
|
||||
|
||||
Маршрути оголошуються в одному місці з використанням функцій, оголошених в інших місцях (замість використання декораторів, які можна розмістити безпосередньо поверх функції, яка обробляє кінцеву точку). Це ближче до того, як це робить Django, ніж до Flask (і Starlette). Він розділяє в коді речі, які відносно тісно пов’язані.
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Визначити додаткові перевірки для типів даних, використовуючи значення "за замовчуванням" атрибутів моделі. Це покращує підтримку редактора, а раніше вона була недоступна в Pydantic.
|
||||
|
||||
@@ -341,7 +341,7 @@ Hug створив Тімоті Крослі, той самий творець <
|
||||
|
||||
///
|
||||
|
||||
/// check | Ideas inspiring **FastAPI**
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Hug надихнув частину APIStar і був одним із найбільш перспективних інструментів, поряд із APIStar.
|
||||
|
||||
@@ -385,7 +385,7 @@ APIStar створив Том Крісті. Той самий хлопець, я
|
||||
|
||||
///
|
||||
|
||||
/// check | Inspired **FastAPI** to
|
||||
/// check | Надихнуло **FastAPI** на
|
||||
|
||||
Існувати.
|
||||
|
||||
@@ -409,7 +409,7 @@ Pydantic — це бібліотека для визначення переві
|
||||
|
||||
Його можна порівняти з Marshmallow. Хоча він швидший за Marshmallow у тестах. Оскільки він базується на тих самих підказках типу Python, підтримка редактора чудова.
|
||||
|
||||
/// check | **FastAPI** uses it to
|
||||
/// check | **FastAPI** використовує його для
|
||||
|
||||
Виконання перевірки всіх даних, серіалізації даних і автоматичної документацію моделі (на основі схеми JSON).
|
||||
|
||||
@@ -452,7 +452,7 @@ ASGI — це новий «стандарт», який розробляєтьс
|
||||
|
||||
///
|
||||
|
||||
/// check | **FastAPI** uses it to
|
||||
/// check | **FastAPI** використовує його для
|
||||
|
||||
Керування всіма основними веб-частинами. Додавання функцій зверху.
|
||||
|
||||
@@ -470,7 +470,7 @@ Uvicorn — це блискавичний сервер ASGI, побудован
|
||||
|
||||
Це рекомендований сервер для Starlette і **FastAPI**.
|
||||
|
||||
/// check | **FastAPI** recommends it as
|
||||
/// check | **FastAPI** рекомендує це як
|
||||
|
||||
Основний веб-сервер для запуску програм **FastAPI**.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
### На основі відкритих стандартів { #based-on-open-standards }
|
||||
|
||||
* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> для створення API, включаючи оголошення <abbr title="також відомі як: endpoints, routes">шляхів</abbr>, <abbr title="також відомі як HTTP-методи, наприклад, POST, GET, PUT, DELETE">операцій</abbr>, параметрів, тіл запитів, безпеки тощо.
|
||||
* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> для створення API, включаючи оголошення <abbr title="також відомі як: endpoints, маршрути">шляхів</abbr>, <abbr title="також відомі як HTTP-методи, наприклад, POST, GET, PUT, DELETE">операцій</abbr>, параметрів, тіл запитів, безпеки тощо.
|
||||
* Автоматична документація моделей даних за допомогою <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (оскільки OpenAPI базується саме на JSON Schema).
|
||||
* Розроблено на основі цих стандартів після ретельного аналізу, а не як додатковий рівень поверх основної архітектури.
|
||||
* Це також дає змогу використовувати автоматичну **генерацію клієнтського коду** багатьма мовами.
|
||||
@@ -170,8 +170,8 @@ FastAPI містить надзвичайно просту у використа
|
||||
* Фонові задачі у процесі.
|
||||
* Події запуску та завершення роботи.
|
||||
* Клієнт для тестування, побудований на HTTPX.
|
||||
* **CORS**, GZip, Static Files, Streaming responses.
|
||||
* Підтримка **Session and Cookie**.
|
||||
* Підтримка **CORS**, **GZip**, статичних файлів, потокових відповідей.
|
||||
* Підтримка **сесій** і **cookie**.
|
||||
* 100% покриття тестами.
|
||||
* 100% анотована типами кодова база.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user