diff --git a/docs/ru/docs/advanced/additional-responses.md b/docs/ru/docs/advanced/additional-responses.md
index f7e8d9dec..ef9d3f223 100644
--- a/docs/ru/docs/advanced/additional-responses.md
+++ b/docs/ru/docs/advanced/additional-responses.md
@@ -34,7 +34,7 @@
///
-/// info | Информация
+/// note | Примечание
Ключ `model` не является частью OpenAPI.
@@ -183,7 +183,7 @@
///
-/// info | Информация
+/// note | Примечание
Если вы явно не укажете другой тип содержимого в параметре `responses`, FastAPI будет считать, что ответ имеет тот же тип содержимого, что и основной класс ответа (по умолчанию `application/json`).
diff --git a/docs/ru/docs/advanced/advanced-dependencies.md b/docs/ru/docs/advanced/advanced-dependencies.md
index fe37a79c1..fb6cb7ca8 100644
--- a/docs/ru/docs/advanced/advanced-dependencies.md
+++ b/docs/ru/docs/advanced/advanced-dependencies.md
@@ -98,7 +98,7 @@ checker(q="somequery")
В версии 0.118.0 это поведение было возвращено к тому, что код после `yield` выполняется после отправки ответа.
-/// info | Информация
+/// note | Примечание
Как вы увидите ниже, это очень похоже на поведение до версии 0.106.0, но с несколькими улучшениями и исправлениями краевых случаев.
diff --git a/docs/ru/docs/advanced/custom-response.md b/docs/ru/docs/advanced/custom-response.md
index fdfe2c549..695506223 100644
--- a/docs/ru/docs/advanced/custom-response.md
+++ b/docs/ru/docs/advanced/custom-response.md
@@ -41,7 +41,7 @@
{* ../../docs_src/custom_response/tutorial002_py310.py hl[2,7] *}
-/// info | Информация
+/// note | Примечание
Параметр `response_class` также используется для указания «типа содержимого» ответа.
@@ -65,7 +65,7 @@
///
-/// info | Информация
+/// note | Примечание
Разумеется, фактический заголовок `Content-Type`, статус-код и т.д. возьмутся из объекта `Response`, который вы вернули.
diff --git a/docs/ru/docs/advanced/dataclasses.md b/docs/ru/docs/advanced/dataclasses.md
index f9f8689b0..aa927cef1 100644
--- a/docs/ru/docs/advanced/dataclasses.md
+++ b/docs/ru/docs/advanced/dataclasses.md
@@ -18,7 +18,7 @@ FastAPI построен поверх **Pydantic**, и я показывал в
Это работает так же, как с Pydantic-моделями. И на самом деле под капотом это достигается тем же образом, с использованием Pydantic.
-/// info | Информация
+/// note | Примечание
Помните, что dataclasses не умеют всего того, что умеют Pydantic-модели.
diff --git a/docs/ru/docs/advanced/events.md b/docs/ru/docs/advanced/events.md
index 464bba93e..69ebe4ffc 100644
--- a/docs/ru/docs/advanced/events.md
+++ b/docs/ru/docs/advanced/events.md
@@ -120,7 +120,7 @@ async with lifespan(app):
Здесь функция-обработчик события `shutdown` запишет строку текста `"Application shutdown"` в файл `log.txt`.
-/// info | Информация
+/// note | Примечание
В функции `open()` параметр `mode="a"` означает «добавление» (append), то есть строка будет добавлена в конец файла, без перезаписи предыдущего содержимого.
@@ -152,7 +152,7 @@ async with lifespan(app):
Под капотом, в ASGI-технической спецификации, это часть [Протокола Lifespan](https://asgi.readthedocs.io/en/latest/specs/lifespan.html), и он определяет события `startup` и `shutdown`.
-/// info | Информация
+/// note | Примечание
Вы можете прочитать больше про обработчики `lifespan` в Starlette в [документации Starlette по Lifespan](https://www.starlette.dev/lifespan/).
diff --git a/docs/ru/docs/advanced/generate-clients.md b/docs/ru/docs/advanced/generate-clients.md
index dfedc5dc0..f05454d9c 100644
--- a/docs/ru/docs/advanced/generate-clients.md
+++ b/docs/ru/docs/advanced/generate-clients.md
@@ -31,7 +31,6 @@ FastAPI автоматически генерирует спецификации
Например, вы можете попробовать:
* [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
-* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)
Некоторые из этих решений также могут быть open source или иметь бесплатные тарифы, так что вы сможете попробовать их без финансовых затрат. Другие коммерческие генераторы SDK доступны и их можно найти онлайн. 🤓
@@ -83,7 +82,7 @@ npx @hey-api/openapi-ts -i http://localhost:8000/openapi.json -o src/client
///
-Вы получите ошибки прямо в редакторе для отправляемых данных:
+Вы получите ошибки прямо в редакторе кода для отправляемых данных:
@@ -186,7 +185,7 @@ FastAPI использует **уникальный ID** для каждой *о
npx @hey-api/openapi-ts -i ./openapi.json -o src/client
```
-После генерации нового клиента у вас будут **чистые имена методов**, со всем **автозавершением**, **ошибками прямо в редакторе** и т.д.:
+После генерации нового клиента у вас будут **чистые имена методов**, со всем **автозавершением**, **ошибками прямо в редакторе кода** и т.д.:
@@ -198,7 +197,7 @@ npx @hey-api/openapi-ts -i ./openapi.json -o src/client
* Данных запроса — в теле запроса, query‑параметрах и т.д.
* Данных ответа.
-У вас также будут **ошибки прямо в редакторе** для всего.
+У вас также будут **ошибки прямо в редакторе кода** для всего.
И каждый раз, когда вы обновляете код бэкенда и **перегенерируете** фронтенд, в нём появятся новые *операции пути* как методы, старые будут удалены, а любые другие изменения отразятся в сгенерированном коде. 🤓
diff --git a/docs/ru/docs/advanced/openapi-callbacks.md b/docs/ru/docs/advanced/openapi-callbacks.md
index 3d791de2c..c9cb73d18 100644
--- a/docs/ru/docs/advanced/openapi-callbacks.md
+++ b/docs/ru/docs/advanced/openapi-callbacks.md
@@ -167,13 +167,13 @@ https://www.external.org/events/invoices/2expen51ve
К этому моменту у вас есть необходимые *операции пути* обратного вызова (те, которые *внешний разработчик* должен реализовать во *внешнем API*) в созданном выше маршрутизаторе обратных вызовов.
-Теперь используйте параметр `callbacks` в *декораторе операции пути вашего API*, чтобы передать атрибут `.routes` (это, по сути, просто `list` маршрутов/*операций пути*) из этого маршрутизатора обратных вызовов:
+Теперь используйте параметр `callbacks` в *декораторе операции пути вашего API*, чтобы передать атрибут `.routes` из этого маршрутизатора обратных вызовов:
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[33] *}
/// tip | Совет
-Обратите внимание, что вы передаёте не сам маршрутизатор (`invoices_callback_router`) в `callback=`, а его атрибут `.routes`, то есть `invoices_callback_router.routes`.
+Обратите внимание, что вы передаёте не сам маршрутизатор (`invoices_callback_router`) в `callback=`, а его атрибут `.routes`, то есть `invoices_callback_router.routes`. FastAPI будет использовать эти маршруты для генерации документации OpenAPI для обратных вызовов.
///
diff --git a/docs/ru/docs/advanced/openapi-webhooks.md b/docs/ru/docs/advanced/openapi-webhooks.md
index 9b1988ff3..cd4d23e7e 100644
--- a/docs/ru/docs/advanced/openapi-webhooks.md
+++ b/docs/ru/docs/advanced/openapi-webhooks.md
@@ -22,7 +22,7 @@
Это значительно упростит вашим пользователям реализацию их API для приема ваших вебхук-запросов; возможно, они даже смогут автоматически сгенерировать часть кода своего API.
-/// info | Информация
+/// note | Примечание
Вебхуки доступны в OpenAPI 3.1.0 и выше, поддерживаются в FastAPI `0.99.0` и новее.
@@ -36,7 +36,7 @@
Определенные вами вебхуки попадут в схему **OpenAPI** и в автоматический **интерфейс документации**.
-/// info | Информация
+/// note | Примечание
Объект `app.webhooks` на самом деле — это обычный `APIRouter`, тот же тип, который вы используете при структурировании приложения по нескольким файлам.
diff --git a/docs/ru/docs/advanced/path-operation-advanced-configuration.md b/docs/ru/docs/advanced/path-operation-advanced-configuration.md
index fe2996362..e3bd78d50 100644
--- a/docs/ru/docs/advanced/path-operation-advanced-configuration.md
+++ b/docs/ru/docs/advanced/path-operation-advanced-configuration.md
@@ -16,17 +16,11 @@
### Использование имени *функции-обработчика пути* как operationId { #using-the-path-operation-function-name-as-the-operationid }
-Если вы хотите использовать имена функций ваших API в качестве `operationId`, вы можете пройти по всем из них и переопределить `operation_id` каждой *операции пути* с помощью их `APIRoute.name`.
+Если вы хотите использовать имена функций ваших API в качестве `operationId`, вы можете передать пользовательскую `generate_unique_id_function` в `FastAPI`.
-Делать это следует после добавления всех *операций пути*.
+Эта функция получает каждый `APIRoute` и возвращает `operationId`, который нужно использовать для этой операции пути.
-{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2, 12:21, 24] *}
-
-/// tip | Совет
-
-Если вы вызываете `app.openapi()` вручную, обновите `operationId` до этого.
-
-///
+{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2,5:6,9] *}
/// warning | Предупреждение
diff --git a/docs/ru/docs/advanced/response-directly.md b/docs/ru/docs/advanced/response-directly.md
index fcb8d533d..c9a229018 100644
--- a/docs/ru/docs/advanced/response-directly.md
+++ b/docs/ru/docs/advanced/response-directly.md
@@ -18,7 +18,7 @@
Вы можете возвращать `Response` или любой его подкласс.
-/// info | Информация
+/// note | Примечание
`JSONResponse` сам по себе является подклассом `Response`.
diff --git a/docs/ru/docs/advanced/security/oauth2-scopes.md b/docs/ru/docs/advanced/security/oauth2-scopes.md
index 944baeeeb..a0b7a185c 100644
--- a/docs/ru/docs/advanced/security/oauth2-scopes.md
+++ b/docs/ru/docs/advanced/security/oauth2-scopes.md
@@ -46,7 +46,7 @@ OAuth2 со scopes — это механизм, который использу
- `instagram_basic` используется Facebook / Instagram.
- `https://www.googleapis.com/auth/drive` используется Google.
-/// info | Информация
+/// note | Примечание
В OAuth2 «scope» — это просто строка, объявляющая требуемое конкретное разрешение.
@@ -126,7 +126,7 @@ OAuth2 со scopes — это механизм, который использу
{* ../../docs_src/security/tutorial005_an_py310.py hl[5,141,172] *}
-/// info | Технические детали
+/// note | Технические детали
`Security` на самом деле является подклассом `Depends` и имеет всего один дополнительный параметр, который мы рассмотрим позже.
diff --git a/docs/ru/docs/advanced/stream-data.md b/docs/ru/docs/advanced/stream-data.md
index 4c373db1a..9ae6890a5 100644
--- a/docs/ru/docs/advanced/stream-data.md
+++ b/docs/ru/docs/advanced/stream-data.md
@@ -4,7 +4,7 @@
Но если вы хотите передавать в потоке чистые бинарные данные или строки, ниже показано, как это сделать.
-/// info | Информация
+/// note | Примечание
Добавлено в FastAPI 0.134.0.
@@ -90,7 +90,7 @@ FastAPI будет передавать каждый чанк данных в `S
И во многих случаях чтение таких объектов будет блокирующей операцией (которая может заблокировать цикл событий), потому что данные читаются с диска или из сети.
-/// info | Информация
+/// note | Примечание
Приведённый выше пример — исключение, потому что объект `io.BytesIO` уже находится в памяти, поэтому чтение ничего не блокирует.
diff --git a/docs/ru/docs/advanced/strict-content-type.md b/docs/ru/docs/advanced/strict-content-type.md
index 1a0cbbc31..1d732421c 100644
--- a/docs/ru/docs/advanced/strict-content-type.md
+++ b/docs/ru/docs/advanced/strict-content-type.md
@@ -81,7 +81,7 @@ http://localhost:8000/v1/agents/multivac
С этой настройкой запросы без заголовка `Content-Type` будут иметь тело запроса, обработанное как JSON — это такое же поведение, как в более старых версиях FastAPI.
-/// info | Информация
+/// note | Примечание
Это поведение и настройка были добавлены в FastAPI 0.132.0.
diff --git a/docs/ru/docs/advanced/websockets.md b/docs/ru/docs/advanced/websockets.md
index abfd789a4..0f69f57b3 100644
--- a/docs/ru/docs/advanced/websockets.md
+++ b/docs/ru/docs/advanced/websockets.md
@@ -111,7 +111,7 @@ $ fastapi dev
{* ../../docs_src/websockets_/tutorial002_an_py310.py hl[68:69,82] *}
-/// info | Примечание
+/// note | Примечание
В веб-сокете вызывать `HTTPException` не имеет смысла. Вместо этого нужно использовать `WebSocketException`.
diff --git a/docs/ru/docs/advanced/wsgi.md b/docs/ru/docs/advanced/wsgi.md
index 3ed85d0e9..d62133c73 100644
--- a/docs/ru/docs/advanced/wsgi.md
+++ b/docs/ru/docs/advanced/wsgi.md
@@ -6,7 +6,7 @@
## Использование `WSGIMiddleware` { #using-wsgimiddleware }
-/// info | Информация
+/// note | Примечание
Для этого требуется установить `a2wsgi`, например с помощью `pip install a2wsgi`.
diff --git a/docs/ru/docs/deployment/docker.md b/docs/ru/docs/deployment/docker.md
index 3b16d7798..50147750e 100644
--- a/docs/ru/docs/deployment/docker.md
+++ b/docs/ru/docs/deployment/docker.md
@@ -132,7 +132,7 @@ Successfully installed fastapi pydantic
-/// info | Информация
+/// note | Заметка
Существуют и другие форматы и инструменты для описания и установки зависимостей.
@@ -556,7 +556,7 @@ CMD ["fastapi", "run", "app/main.py", "--port", "80", "--workers", "4"]
Если у вас **несколько контейнеров**, и, вероятно, каждый запускает **один процесс** (например, в кластере **Kubernetes**), то вы, скорее всего, захотите иметь **отдельный контейнер**, выполняющий **предварительные шаги** в одном контейнере и одном процессе **до** запуска реплицированных контейнеров-воркеров.
-/// info | Информация
+/// note | Заметка
Если вы используете Kubernetes, это, вероятно, будет [Init Container](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).
diff --git a/docs/ru/docs/deployment/fastapicloud.md b/docs/ru/docs/deployment/fastapicloud.md
index 95db3387f..fa3160519 100644
--- a/docs/ru/docs/deployment/fastapicloud.md
+++ b/docs/ru/docs/deployment/fastapicloud.md
@@ -1,26 +1,6 @@
# FastAPI Cloud { #fastapi-cloud }
-Вы можете развернуть своё приложение FastAPI в [FastAPI Cloud](https://fastapicloud.com) одной командой, присоединяйтесь к списку ожидания, если ещё не сделали этого. 🚀
-
-## Вход { #login }
-
-Убедитесь, что у вас уже есть аккаунт **FastAPI Cloud** (мы пригласили вас из списка ожидания 😉).
-
-Затем выполните вход:
-
-
-/// info | Дополнительная информация
+/// note | Заметка
Имейте в виду, что, поскольку **браузеры обрабатывают cookies** особым образом и под капотом, они **не** позволят **JavaScript** легко получить доступ к ним.
diff --git a/docs/ru/docs/tutorial/cookie-params.md b/docs/ru/docs/tutorial/cookie-params.md
index 8dad3873e..f801c4ac4 100644
--- a/docs/ru/docs/tutorial/cookie-params.md
+++ b/docs/ru/docs/tutorial/cookie-params.md
@@ -24,13 +24,13 @@
///
-/// info | Дополнительная информация
+/// note | Примечание
Для объявления cookies, вам нужно использовать `Cookie`, иначе параметры будут интерпретированы как параметры запроса.
///
-/// info | Дополнительная информация
+/// note | Примечание
Имейте в виду, что, поскольку **браузеры обрабатывают cookies** особым образом и «за кулисами», они **не** позволяют **JavaScript** просто так получать к ним доступ.
diff --git a/docs/ru/docs/tutorial/debugging.md b/docs/ru/docs/tutorial/debugging.md
index 330055be4..deb92f1b9 100644
--- a/docs/ru/docs/tutorial/debugging.md
+++ b/docs/ru/docs/tutorial/debugging.md
@@ -72,7 +72,7 @@ from myapp import app
не будет выполнена.
-/// info | Информация
+/// note | Примечание
Для получения дополнительной информации, ознакомьтесь с [официальной документацией Python](https://docs.python.org/3/library/__main__.html).
diff --git a/docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
index b4b7ce631..2193343e6 100644
--- a/docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
+++ b/docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
@@ -28,7 +28,7 @@
///
-/// info | Примечание
+/// note | Примечание
В этом примере мы используем выдуманные пользовательские HTTP-заголовки `X-Key` и `X-Token`.
diff --git a/docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md
index 04c2c2da4..61ab8f44d 100644
--- a/docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md
+++ b/docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md
@@ -170,7 +170,7 @@ participant tasks as Background tasks
end
```
-/// info | Дополнительная информация
+/// note | Примечание
Клиенту будет отправлен только **один ответ**. Это может быть один из ответов об ошибке или ответ от *операции пути*.
@@ -219,7 +219,7 @@ participant operation as Функция-обработчик пути
Note over dep_req: Выполнить код до yield
dep_req ->> dep_func: Передать значение
Note over dep_func: Выполнить код до yield
- dep_func ->> operation: Выполнить функцию-обработчик пути
+ dep_func ->> operation: Выполнить функцию-обработчика пути
operation ->> dep_func: Выход из функции-обработчика пути
Note over dep_func: Выполнить код после yield
Note over dep_func: ✅ Зависимость закрыта
diff --git a/docs/ru/docs/tutorial/dependencies/index.md b/docs/ru/docs/tutorial/dependencies/index.md
index 4aed03554..6efd023e2 100644
--- a/docs/ru/docs/tutorial/dependencies/index.md
+++ b/docs/ru/docs/tutorial/dependencies/index.md
@@ -51,7 +51,7 @@
А затем просто возвращает `dict`, содержащий эти значения.
-/// info | Информация
+/// note | Примечание
FastAPI добавил поддержку `Annotated` (и начал рекомендовать его использование) в версии 0.95.0.
@@ -106,7 +106,7 @@ common_parameters --> read_users
Таким образом, вы пишете общий код один раз, а **FastAPI** позаботится о его вызове для ваших *операций пути*.
-/// check | Проверка
+/// tip | Подсказка
Обратите внимание, что вам не нужно создавать специальный класс и передавать его куда-то в **FastAPI**, чтобы «зарегистрировать» его или что-то подобное.
diff --git a/docs/ru/docs/tutorial/dependencies/sub-dependencies.md b/docs/ru/docs/tutorial/dependencies/sub-dependencies.md
index 3c71defd8..b36adf486 100644
--- a/docs/ru/docs/tutorial/dependencies/sub-dependencies.md
+++ b/docs/ru/docs/tutorial/dependencies/sub-dependencies.md
@@ -6,9 +6,9 @@
**FastAPI** сам займётся их управлением.
-## Первая зависимость { #first-dependency-dependable }
+## Первая «зависимость» { #first-dependency-dependable }
-Можно создать первую зависимость следующим образом:
+Можно создать первую «зависимость» следующим образом:
{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[8:9] *}
@@ -35,7 +35,7 @@
{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[23] *}
-/// info | Дополнительная информация
+/// note | Примечание
Обратите внимание, что мы объявляем только одну зависимость в *функции операции пути* - `query_or_cookie_extractor`.
diff --git a/docs/ru/docs/tutorial/first-steps.md b/docs/ru/docs/tutorial/first-steps.md
index 7216d4cb7..ce743b369 100644
--- a/docs/ru/docs/tutorial/first-steps.md
+++ b/docs/ru/docs/tutorial/first-steps.md
@@ -180,7 +180,7 @@ entrypoint = "backend.main:app"
from backend.main import app
```
-### `fastapi dev` с путём { #fastapi-dev-with-path }
+### `fastapi dev` с путём или с опцией CLI `--entrypoint` { #fastapi-dev-with-path-or-with-entrypoint-cli-option }
Вы также можете передать путь к файлу в команду `fastapi dev`, и она попытается определить объект приложения FastAPI для использования:
@@ -188,29 +188,19 @@ from backend.main import app
$ fastapi dev main.py
```
-Но в этом случае вам придётся каждый раз помнить о передаче корректного пути при вызове команды `fastapi`.
+Или вы можете передать опцию `--entrypoint` команде `fastapi dev`:
+
+```console
+$ fastapi dev --entrypoint main:app
+```
+
+Но в этом случае вам придётся каждый раз помнить о передаче корректного пути/entrypoint при вызове команды `fastapi`.
Кроме того, другие инструменты могут его не найти, например [Расширение VS Code](../editor-support.md) или [FastAPI Cloud](https://fastapicloud.com), поэтому рекомендуется использовать `entrypoint` в `pyproject.toml`.
### Разверните приложение (необязательно) { #deploy-your-app-optional }
-При желании вы можете развернуть своё приложение FastAPI в [FastAPI Cloud](https://fastapicloud.com), перейдите и присоединитесь к списку ожидания, если ещё не сделали этого. 🚀
-
-Если у вас уже есть аккаунт **FastAPI Cloud** (мы пригласили вас из списка ожидания 😉), вы можете развернуть приложение одной командой.
-
-Перед развертыванием убедитесь, что вы вошли в систему:
-
-get операции
-/// info | Информация о `@decorator`
+/// note | Информация о `@decorator`
Синтаксис `@something` в Python называется «декоратор».
diff --git a/docs/ru/docs/tutorial/metadata.md b/docs/ru/docs/tutorial/metadata.md
index 261cc43f5..b1335f668 100644
--- a/docs/ru/docs/tutorial/metadata.md
+++ b/docs/ru/docs/tutorial/metadata.md
@@ -74,7 +74,7 @@
{* ../../docs_src/metadata/tutorial004_py310.py hl[21,26] *}
-/// info | Дополнительная информация
+/// note | Примечание
Узнайте больше о тегах в [Конфигурации операции пути](path-operation-configuration.md#tags).
diff --git a/docs/ru/docs/tutorial/path-operation-configuration.md b/docs/ru/docs/tutorial/path-operation-configuration.md
index 965f2a1ba..c1264d9dd 100644
--- a/docs/ru/docs/tutorial/path-operation-configuration.md
+++ b/docs/ru/docs/tutorial/path-operation-configuration.md
@@ -72,13 +72,13 @@
{* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}
-/// info | Дополнительная информация
+/// note | Примечание
Помните, что `response_description` относится конкретно к ответу, а `description` относится к *операции пути* в целом.
///
-/// check | Проверка
+/// tip | Совет
OpenAPI указывает, что каждой *операции пути* необходимо описание ответа.
diff --git a/docs/ru/docs/tutorial/path-params-numeric-validations.md b/docs/ru/docs/tutorial/path-params-numeric-validations.md
index 34eeb80cb..dbbc025f1 100644
--- a/docs/ru/docs/tutorial/path-params-numeric-validations.md
+++ b/docs/ru/docs/tutorial/path-params-numeric-validations.md
@@ -8,7 +8,7 @@
{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
-/// info | Информация
+/// note | Примечание
Поддержка `Annotated` была добавлена в FastAPI начиная с версии 0.95.0 (и с этой версии рекомендуется использовать этот подход).
@@ -131,7 +131,7 @@ Python не будет ничего делать с `*`, но он будет з
* `lt`: меньше (`l`ess `t`han)
* `le`: меньше или равно (`l`ess than or `e`qual)
-/// info | Информация
+/// note | Примечание
`Query`, `Path` и другие классы, которые вы разберёте позже, являются наследниками общего класса `Param`.
diff --git a/docs/ru/docs/tutorial/path-params.md b/docs/ru/docs/tutorial/path-params.md
index 79343a158..cfc96189c 100644
--- a/docs/ru/docs/tutorial/path-params.md
+++ b/docs/ru/docs/tutorial/path-params.md
@@ -20,7 +20,7 @@
Здесь, `item_id` объявлен типом `int`.
-/// check | Заметка
+/// tip | Подсказка
Это обеспечит поддержку редактора кода внутри функции (проверка ошибок, автозавершение и т.п.).
@@ -34,7 +34,7 @@
{"item_id":3}
```
-/// check | Заметка
+/// tip | Подсказка
Обратите внимание на значение `3`, которое получила (и вернула) функция. Это целочисленный Python `int`, а не строка `"3"`.
@@ -66,7 +66,7 @@
Та же ошибка возникнет, если вместо `int` передать `float`, например: [http://127.0.0.1:8000/items/4.2](http://127.0.0.1:8000/items/4.2)
-/// check | Заметка
+/// tip | Подсказка
**FastAPI** обеспечивает валидацию данных, используя всё те же определения типов.
@@ -82,7 +82,7 @@
-/// check | Заметка
+/// tip | Подсказка
Ещё раз, просто используя определения типов, **FastAPI** обеспечивает автоматическую интерактивную документацию (с интеграцией Swagger UI).
diff --git a/docs/ru/docs/tutorial/query-params-str-validations.md b/docs/ru/docs/tutorial/query-params-str-validations.md
index 08a5e11a5..7af7ccfa0 100644
--- a/docs/ru/docs/tutorial/query-params-str-validations.md
+++ b/docs/ru/docs/tutorial/query-params-str-validations.md
@@ -29,7 +29,7 @@ FastAPI поймёт, что значение `q` не обязательно,
{* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *}
-/// info | Дополнительная информация
+/// note | Примечание
Поддержка `Annotated` (и рекомендация использовать его) появилась в FastAPI версии 0.95.0.
@@ -381,7 +381,7 @@ http://127.0.0.1:8000/items/?item-query=foobaritems
{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
-/// info | Дополнительная информация
+/// note | Примечание
Это доступно в Pydantic версии 2 и выше. 😎
diff --git a/docs/ru/docs/tutorial/query-params.md b/docs/ru/docs/tutorial/query-params.md
index 99f2a98ae..524b53945 100644
--- a/docs/ru/docs/tutorial/query-params.md
+++ b/docs/ru/docs/tutorial/query-params.md
@@ -65,7 +65,7 @@ http://127.0.0.1:8000/items/?skip=20
В этом случае, параметр `q` будет не обязательным и будет иметь значение `None` по умолчанию.
-/// check | Важно
+/// tip | Подсказка
Также обратите внимание, что **FastAPI** достаточно умён чтобы заметить, что параметр `item_id` является path-параметром, а `q` нет, поэтому, это параметр запроса.
diff --git a/docs/ru/docs/tutorial/request-files.md b/docs/ru/docs/tutorial/request-files.md
index e8500adba..29a7f5ec1 100644
--- a/docs/ru/docs/tutorial/request-files.md
+++ b/docs/ru/docs/tutorial/request-files.md
@@ -2,7 +2,7 @@
Используя класс `File`, мы можем позволить клиентам загружать файлы.
-/// info | Дополнительная информация
+/// note | Примечание
Чтобы получать загруженные файлы, сначала установите [`python-multipart`](https://github.com/Kludex/python-multipart).
@@ -28,7 +28,7 @@ $ pip install python-multipart
{* ../../docs_src/request_files/tutorial001_an_py310.py hl[9] *}
-/// info | Дополнительная информация
+/// note | Примечание
`File` - это класс, который наследуется непосредственно от `Form`.
diff --git a/docs/ru/docs/tutorial/request-form-models.md b/docs/ru/docs/tutorial/request-form-models.md
index c7f37c2ba..3852e3a03 100644
--- a/docs/ru/docs/tutorial/request-form-models.md
+++ b/docs/ru/docs/tutorial/request-form-models.md
@@ -2,7 +2,7 @@
Вы можете использовать **Pydantic-модели** для объявления **полей формы** в FastAPI.
-/// info | Дополнительная информация
+/// note | Заметка
Чтобы использовать формы, сначала установите [`python-multipart`](https://github.com/Kludex/python-multipart).
diff --git a/docs/ru/docs/tutorial/request-forms-and-files.md b/docs/ru/docs/tutorial/request-forms-and-files.md
index f291d5347..347818ae3 100644
--- a/docs/ru/docs/tutorial/request-forms-and-files.md
+++ b/docs/ru/docs/tutorial/request-forms-and-files.md
@@ -2,7 +2,7 @@
Вы можете определять файлы и поля формы одновременно, используя `File` и `Form`.
-/// info | Информация
+/// note | Примечание
Чтобы получать загруженные файлы и/или данные форм, сначала установите [`python-multipart`](https://github.com/Kludex/python-multipart).
diff --git a/docs/ru/docs/tutorial/request-forms.md b/docs/ru/docs/tutorial/request-forms.md
index 3760a8a3b..3108c933e 100644
--- a/docs/ru/docs/tutorial/request-forms.md
+++ b/docs/ru/docs/tutorial/request-forms.md
@@ -2,7 +2,7 @@
Когда вам нужно получить поля формы вместо JSON, вы можете использовать `Form`.
-/// info | Дополнительная информация
+/// note | Примечание
Чтобы использовать формы, сначала установите [`python-multipart`](https://github.com/Kludex/python-multipart).
@@ -32,7 +32,7 @@ $ pip install python-multipart
С помощью `Form` вы можете объявить те же настройки, что и с `Body` (и `Query`, `Path`, `Cookie`), включая валидацию, примеры, псевдоним (например, `user-name` вместо `username`) и т.д.
-/// info | Дополнительная информация
+/// note | Примечание
`Form` — это класс, который наследуется непосредственно от `Body`.
diff --git a/docs/ru/docs/tutorial/response-model.md b/docs/ru/docs/tutorial/response-model.md
index 510143d7b..bf0a6fc0a 100644
--- a/docs/ru/docs/tutorial/response-model.md
+++ b/docs/ru/docs/tutorial/response-model.md
@@ -72,11 +72,11 @@ FastAPI будет использовать этот `response_model` для д
{* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *}
-/// info | Информация
+/// note | Примечание
Чтобы использовать `EmailStr`, сначала установите [`email-validator`](https://github.com/JoshData/python-email-validator).
-Убедитесь, что вы создали [виртуальное окружение](../virtual-environments.md), активировали его, а затем установите пакет, например:
+Убедитесь, что вы создали [виртуальное окружение](../virtual-environments.md), активировали его, а затем установили пакет, например:
```console
$ pip install email-validator
@@ -178,7 +178,7 @@ FastAPI делает несколько вещей внутри вместе с
## Другие аннотации возвращаемых типов { #other-return-type-annotations }
-Бывают случаи, когда вы возвращаете что-то, что не является валидным полем Pydantic, и аннотируете это в функции только ради поддержки инструментов (редактор кода, mypy и т.д.).
+Бывают случаи, когда вы возвращаете что-то, что не является валидным полем Pydantic, и аннотируете это в функции только ради поддержки инструментов (редактор коды, mypy и т.д.).
### Возврат Response напрямую { #return-a-response-directly }
@@ -251,7 +251,7 @@ FastAPI делает несколько вещей внутри вместе с
}
```
-/// info | Информация
+/// note | Примечание
Вы также можете использовать:
diff --git a/docs/ru/docs/tutorial/response-status-code.md b/docs/ru/docs/tutorial/response-status-code.md
index f3144a33a..ef190a341 100644
--- a/docs/ru/docs/tutorial/response-status-code.md
+++ b/docs/ru/docs/tutorial/response-status-code.md
@@ -18,7 +18,7 @@
Параметр `status_code` принимает число, обозначающее HTTP статус-код.
-/// info | Информация
+/// note | Примечание
В качестве значения параметра `status_code` также может использоваться `IntEnum`, например, из библиотеки [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus) в Python.
diff --git a/docs/ru/docs/tutorial/schema-extra-example.md b/docs/ru/docs/tutorial/schema-extra-example.md
index ee2f5b991..435b34460 100644
--- a/docs/ru/docs/tutorial/schema-extra-example.md
+++ b/docs/ru/docs/tutorial/schema-extra-example.md
@@ -24,7 +24,7 @@
///
-/// info | Информация
+/// note | Примечание
OpenAPI 3.1.0 (используется начиная с FastAPI 0.99.0) добавил поддержку `examples`, который является частью стандарта **JSON Schema**.
@@ -155,7 +155,7 @@ OpenAPI также добавила поля `example` и `examples` в друг
* `File()`
* `Form()`
-/// info | Информация
+/// note | Примечание
Этот старый специфичный для OpenAPI параметр `examples` теперь называется `openapi_examples`, начиная с FastAPI `0.103.0`.
@@ -171,7 +171,7 @@ OpenAPI также добавила поля `example` и `examples` в друг
Это новое поле `examples` в JSON Schema — это **просто `list`** примеров, а не dict с дополнительными метаданными, как в других местах OpenAPI (описанных выше).
-/// info | Информация
+/// note | Примечание
Даже после того как OpenAPI 3.1.0 была выпущена с этой новой, более простой интеграцией с JSON Schema, какое‑то время Swagger UI, инструмент, предоставляющий автоматическую документацию, не поддерживал OpenAPI 3.1.0 (поддержка появилась начиная с версии 5.0.0 🎉).
diff --git a/docs/ru/docs/tutorial/security/first-steps.md b/docs/ru/docs/tutorial/security/first-steps.md
index c55e832f4..e702dfadb 100644
--- a/docs/ru/docs/tutorial/security/first-steps.md
+++ b/docs/ru/docs/tutorial/security/first-steps.md
@@ -24,7 +24,7 @@
## Запуск { #run-it }
-/// info | Дополнительная информация
+/// note | Примечание
Пакет [`python-multipart`](https://github.com/Kludex/python-multipart) автоматически устанавливается вместе с **FastAPI**, если вы запускаете команду `pip install "fastapi[standard]"`.
@@ -60,7 +60,7 @@ $ fastapi dev
-/// check | Кнопка авторизации!
+/// tip | Кнопка авторизации!
У вас уже появилась новая кнопка «Authorize».
@@ -118,7 +118,7 @@ OAuth2 был спроектирован так, чтобы бэкенд или
В этом примере мы будем использовать **OAuth2**, с потоком **Password**, используя токен **Bearer**. Для этого мы используем класс `OAuth2PasswordBearer`.
-/// info | Дополнительная информация
+/// note | Примечание
Токен «bearer» — не единственный вариант.
@@ -148,7 +148,7 @@ OAuth2 был спроектирован так, чтобы бэкенд или
Скоро мы также создадим и саму операцию пути.
-/// info | Дополнительная информация
+/// note | Примечание
Если вы очень строгий «питонист», вам может не понравиться стиль имени параметра `tokenUrl` вместо `token_url`.
@@ -176,7 +176,7 @@ oauth2_scheme(some, parameters)
**FastAPI** будет знать, что может использовать эту зависимость для определения «схемы безопасности» в схеме OpenAPI (и в автоматической документации по API).
-/// info | Технические детали
+/// note | Технические детали
**FastAPI** будет знать, что может использовать класс `OAuth2PasswordBearer` (объявленный в зависимости) для определения схемы безопасности в OpenAPI, потому что он наследуется от `fastapi.security.oauth2.OAuth2`, который, в свою очередь, наследуется от `fastapi.security.base.SecurityBase`.
@@ -186,7 +186,7 @@ oauth2_scheme(some, parameters)
## Что он делает { #what-it-does }
-Он будет искать в запросе заголовок `Authorization`, проверять, что его значение — это `Bearer ` плюс некоторый токен, и вернет токен как `str`.
+Он будет искать в запросе HTTP-заголовок `Authorization`, проверять, что его значение — это `Bearer ` плюс некоторый токен, и вернет токен как `str`.
Если заголовок `Authorization` отсутствует или его значение не содержит токен `Bearer `, он сразу ответит ошибкой со статус-кодом 401 (`UNAUTHORIZED`).
diff --git a/docs/ru/docs/tutorial/security/get-current-user.md b/docs/ru/docs/tutorial/security/get-current-user.md
index 8388b672c..7bd48a9a0 100644
--- a/docs/ru/docs/tutorial/security/get-current-user.md
+++ b/docs/ru/docs/tutorial/security/get-current-user.md
@@ -30,7 +30,7 @@
## Получить пользователя { #get-the-user }
-`get_current_user` будет использовать созданную нами (ненастоящую) служебную функцию, которая принимает токен типа `str` и возвращает нашу Pydantic-модель `User`:
+`get_current_user` будет использовать созданную нами (ненастоящую) вспомогательную функцию, которая принимает токен типа `str` и возвращает нашу Pydantic-модель `User`:
{* ../../docs_src/security/tutorial002_an_py310.py hl[19:22,26:27] *}
@@ -52,7 +52,7 @@
///
-/// check | Заметка
+/// tip | Подсказка
То, как устроена эта система зависимостей, позволяет иметь разные зависимости, которые возвращают модель `User`.
@@ -78,7 +78,7 @@
## Размер кода { #code-size }
-Этот пример может показаться многословным. Имейте в виду, что в одном файле мы смешиваем безопасность, модели данных, служебные функции и *операции пути*.
+Этот пример может показаться многословным. Имейте в виду, что в одном файле мы смешиваем безопасность, модели данных, вспомогательные функции и *операции пути*.
Но вот ключевой момент.
diff --git a/docs/ru/docs/tutorial/security/oauth2-jwt.md b/docs/ru/docs/tutorial/security/oauth2-jwt.md
index e3729dfc8..0409cd0a9 100644
--- a/docs/ru/docs/tutorial/security/oauth2-jwt.md
+++ b/docs/ru/docs/tutorial/security/oauth2-jwt.md
@@ -42,7 +42,7 @@ $ pip install pyjwt
-/// info | Дополнительная информация
+/// note | Дополнительная информация
Если вы планируете использовать алгоритмы цифровой подписи, такие как RSA или ECDSA, вам следует установить зависимость библиотеки криптографии `pyjwt[crypto]`.
@@ -213,7 +213,7 @@ JWT может использоваться и для других целей,
Username: `johndoe`
Password: `secret`
-/// check | Проверка
+/// tip | Подсказка
Обратите внимание, что нигде в коде не используется открытый текст пароля "`secret`", мы используем только его хэшированную версию.
diff --git a/docs/ru/docs/tutorial/security/simple-oauth2.md b/docs/ru/docs/tutorial/security/simple-oauth2.md
index 4ef5109e4..415ef017b 100644
--- a/docs/ru/docs/tutorial/security/simple-oauth2.md
+++ b/docs/ru/docs/tutorial/security/simple-oauth2.md
@@ -32,7 +32,7 @@ OAuth2 определяет, что при использовании "password
* `instagram_basic` используется Facebook / Instagram.
* `https://www.googleapis.com/auth/drive` используется Google.
-/// info | Дополнительная информация
+/// note | Примечание
В OAuth2 "scope" — это просто строка, которая указывает требуемое конкретное разрешение.
Не имеет значения, содержит ли она другие символы, например `:`, или является ли это URL.
@@ -68,7 +68,7 @@ OAuth2 определяет, что при использовании "password
* Необязательное поле `client_id` (в нашем примере оно не нужно).
* Необязательное поле `client_secret` (в нашем примере оно не нужно).
-/// info | Дополнительная информация
+/// note | Примечание
`OAuth2PasswordRequestForm` — это не специальный класс для **FastAPI**, как `OAuth2PasswordBearer`.
`OAuth2PasswordBearer` сообщает **FastAPI**, что это схема безопасности. Поэтому она добавляется в OpenAPI соответствующим образом.
@@ -136,7 +136,7 @@ UserInDB(
)
```
-/// info | Дополнительная информация
+/// note | Примечание
Более полное объяснение `**user_dict` можно найти в [документации к **Дополнительным моделям**](../extra-models.md#about-user-in-dict).
///
@@ -182,7 +182,7 @@ UserInDB(
{* ../../docs_src/security/tutorial003_an_py310.py hl[58:66,69:74,94] *}
-/// info | Дополнительная информация
+/// note | Примечание
Дополнительный HTTP-заголовок `WWW-Authenticate` со значением `Bearer`, который мы здесь возвращаем, также является частью спецификации.
Любой HTTP статус-код 401 "UNAUTHORIZED" должен также возвращать заголовок `WWW-Authenticate`.
diff --git a/docs/ru/docs/tutorial/server-sent-events.md b/docs/ru/docs/tutorial/server-sent-events.md
index be6bd2366..ea49f85c8 100644
--- a/docs/ru/docs/tutorial/server-sent-events.md
+++ b/docs/ru/docs/tutorial/server-sent-events.md
@@ -4,7 +4,7 @@
Это похоже на [Стриминг JSON Lines](stream-json-lines.md), но использует формат `text/event-stream`, который нативно поддерживается браузерами через [`EventSource` API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
-/// info | Информация
+/// note | Примечание
Добавлено в FastAPI 0.135.0.
@@ -29,7 +29,7 @@ SSE часто используют для стриминга ответов И
/// tip | Совет
-Если вам нужно стримить бинарные данные, например видео или аудио, посмотрите расширенное руководство: [Stream Data](../advanced/stream-data.md).
+Если вам нужно стримить бинарные данные, например видео или аудио, посмотрите расширенное руководство: [Потоковая передача данных](../advanced/stream-data.md).
///
@@ -113,7 +113,7 @@ SSE работает с любым HTTP-методом, не только с `GE
FastAPI из коробки реализует некоторые лучшие практики для SSE.
-- Отправлять комментарий «ping» для поддержания соединения («keep alive») каждые 15 секунд, когда нет сообщений, чтобы предотвратить закрытие соединения некоторыми прокси, как рекомендовано в [HTML specification: Server-Sent Events](https://html.spec.whatwg.org/multipage/server-sent-events.html#authoring-notes).
+- Отправлять комментарий «ping» для поддержания соединения («keep alive») каждые 15 секунд, когда нет сообщений, чтобы предотвратить закрытие соединения некоторыми прокси, как рекомендовано в [Спецификация HTML: Server-Sent Events](https://html.spec.whatwg.org/multipage/server-sent-events.html#authoring-notes).
- Устанавливать заголовок `Cache-Control: no-cache`, чтобы предотвратить кэширование потока.
- Устанавливать специальный заголовок `X-Accel-Buffering: no`, чтобы предотвратить буферизацию в некоторых прокси, например Nginx.
diff --git a/docs/ru/docs/tutorial/stream-json-lines.md b/docs/ru/docs/tutorial/stream-json-lines.md
index d8bb9132b..a9390685e 100644
--- a/docs/ru/docs/tutorial/stream-json-lines.md
+++ b/docs/ru/docs/tutorial/stream-json-lines.md
@@ -2,7 +2,7 @@
У вас может быть последовательность данных, которую вы хотите отправлять в «**потоке**». Это можно сделать с помощью **JSON Lines**.
-/// info | Информация
+/// note | Примечание
Добавлено в FastAPI 0.134.0.
@@ -48,7 +48,7 @@ sequenceDiagram
Это очень похоже на JSON-массив (эквивалент списка Python), но вместо того чтобы быть обернутым в `[]` и иметь `,` между элементами, здесь **один JSON-объект на строку**, они разделены символом новой строки.
-/// info | Информация
+/// note | Примечание
Важный момент в том, что ваше приложение сможет по очереди производить каждую строку, пока клиент потребляет предыдущие строки.
diff --git a/docs/ru/docs/tutorial/testing.md b/docs/ru/docs/tutorial/testing.md
index aef7b86de..f7367bcba 100644
--- a/docs/ru/docs/tutorial/testing.md
+++ b/docs/ru/docs/tutorial/testing.md
@@ -8,7 +8,7 @@
## Использование класса `TestClient` { #using-testclient }
-/// info | Информация
+/// note | Примечание
Для использования класса `TestClient` сначала установите [`httpx`](https://www.python-httpx.org).
@@ -144,7 +144,7 @@ $ pip install httpx
Для получения дополнительной информации о передаче данных на бэкенд с помощью `httpx` или `TestClient` ознакомьтесь с [документацией HTTPX](https://www.python-httpx.org).
-/// info | Информация
+/// note | Примечание
Обратите внимание, что `TestClient` принимает данные, которые можно конвертировать в JSON, но не модели Pydantic.