diff --git a/docs/ru/docs/index.md b/docs/ru/docs/index.md index 65158e704826a..db3c4174f2947 100644 --- a/docs/ru/docs/index.md +++ b/docs/ru/docs/index.md @@ -2,7 +2,7 @@ FastAPI

- Фреймворк FastAPI, высокая производительность, простота в изучении, быстрота написания кода, готовность к производству + Готовый к внедрению высокопроизводительный фреймворк, простой в изучении и разработке.

@@ -27,18 +27,18 @@ --- -FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API-интерфейсов с Python 3.6+ на основе стандартных подсказок типов Python. +FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API используя Python 3.6+ на основе стандартных подсказок типов Python. Ключевые особенности: * **Скорость**: Очень высокая производительность, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). [Один из самых быстрых фреймворков Python](#_10). * **Быстрота разработки**: Увеличьте скорость разработки примерно на 200–300%. * -* **Меньше ошибок**: Сократите примерно на 40 % ошибок, вызванных человеком (разработчиком). * +* **Меньше ошибок**: Сократите примерно на 40% ошибок, вызванных человеком (разработчиком). * * **Интуитивно понятный**: Отличная поддержка редактора. Автозавершение везде. Меньше времени на отладку. -* **Легкий**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документов. -* **Короткий**: Сведите к минимуму дублирование кода. Несколько функций из каждого объявления параметра. Меньше ошибок. -* **Надежный**: Получите готовый к работе код. С автоматической интерактивной документацией. -* **На основе стандартов**: На основе (и полностью совместимых) открытых стандартов для API: OpenAPI (ранее известном как Swagger) и JSON Schema. +* **Лёгкость**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документации. +* **Краткость**: Сведите к минимуму дублирование кода. Каждый объявленный параметр - определяет несколько функций. Меньше ошибок. +* **Надежность**: Получите готовый к работе код. С автоматической интерактивной документацией. +* **На основе стандартов**: Основан на открытых стандартах API и полностью совместим с ними: OpenAPI (ранее известном как Swagger) и JSON Schema. * оценка на основе тестов внутренней команды разработчиков, создающих производственные приложения. @@ -61,7 +61,7 @@ FastAPI — это современный, быстрый (высокопрои ## Отзывы -"_В последнее время я много где использую **FastAPI**. [...] На самом деле я планирую использовать его для всех **служб машинного обучения моей команды в Microsoft**. Некоторые из них интегрируются в основной продукт **Windows**, а некоторые — в продукты **Office**._" +"_В последнее время я много где использую **FastAPI**. [...] На самом деле я планирую использовать его для всех **сервисов машинного обучения моей команды в Microsoft**. Некоторые из них интегрируются в основной продукт **Windows**, а некоторые — в продукты **Office**._"

Kabir Khan - Microsoft (ref)
@@ -73,7 +73,7 @@ FastAPI — это современный, быстрый (высокопрои --- -"_**Netflix** рада объявить о выпуске с открытым исходным кодом нашей системы оркестровки **антикризисного управления**: **Dispatch**! [создана с помощью **FastAPI**]_" +"_**Netflix** рада объявить о выпуске опенсорсного фреймворка для оркестровки **антикризисного управления**: **Dispatch**! [создана с помощью **FastAPI**]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
@@ -91,7 +91,7 @@ FastAPI — это современный, быстрый (высокопрои --- -"_Если вы хотите изучить один **современный фреймворк** для создания REST API, ознакомьтесь с **FastAPI** [...] Это быстро, просто в использовании и легко в освоении [...]_" +"_Если вы хотите изучить какой-нибудь **современный фреймворк** для создания REST API, ознакомьтесь с **FastAPI** [...] Он быстрый, лёгкий и простой в изучении [...]_" "_Мы перешли на **FastAPI** для наших **API** [...] Я думаю, вам тоже понравится [...]_" @@ -99,13 +99,13 @@ FastAPI — это современный, быстрый (высокопрои --- -## **Typer**, the FastAPI of CLIs +## **Typer**, интерфейс командной строки для FastAPI Если вы создаете приложение CLI для использования в терминале вместо веб-API, ознакомьтесь с **Typer**. -**Typer** — младший брат FastAPI. И он предназначен для использования в качестве **FastAPI of CLIs**. ⌨️ 🚀 +**Typer** — младший брат FastAPI. И он предназначен для использования в качестве **интерфейса командной строки для FastAPI**. ⌨️ 🚀 ## Зависимости @@ -144,7 +144,7 @@ $ pip install "uvicorn[standard]" ### Создание -* Создайте файл `main.py` с: +* Создайте файл `main.py` со следующим содержимым: ```Python from typing import Union @@ -226,7 +226,7 @@ INFO: Application startup complete. Откройте браузер на http://127.0.0.1:8000/items/5?q=somequery. -Вы увидите ответ JSON как: +Вы увидите следующий JSON ответ: ```JSON {"item_id": 5, "q": "somequery"} @@ -239,27 +239,27 @@ INFO: Application startup complete. * _путь_ `/items/{item_id}` имеет _параметр пути_ `item_id`, который должен быть `int`. * _путь_ `/items/{item_id}` имеет необязательный `str` _параметр запроса_ `q`. -### Interactive API docs +### Интерактивная документация по API -Now go to http://127.0.0.1:8000/docs. +Перейдите на http://127.0.0.1:8000/docs. -You will see the automatic interactive API documentation (provided by Swagger UI): +Вы увидите автоматическую интерактивную документацию API (предоставленную Swagger UI): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) -### Alternative API docs +### Альтернативная документация по API -And now, go to http://127.0.0.1:8000/redoc. +А теперь перейдите на http://127.0.0.1:8000/redoc. -You will see the alternative automatic documentation (provided by ReDoc): +Вы увидите альтернативную автоматическую документацию (предоставленную ReDoc): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) -## Example upgrade +## Пример обновления -Now modify the file `main.py` to receive a body from a `PUT` request. +Теперь измените файл `main.py`, чтобы получить тело из `PUT` запроса. -Declare the body using standard Python types, thanks to Pydantic. +Объявите тело, используя стандартную типизацию Python, спасибо Pydantic. ```Python hl_lines="4 9-12 25-27" from typing import Union @@ -291,11 +291,11 @@ def update_item(item_id: int, item: Item): return {"item_name": item.name, "item_id": item_id} ``` -The server should reload automatically (because you added `--reload` to the `uvicorn` command above). +Сервер должен перезагрузиться автоматически (потому что вы добавили `--reload` к команде `uvicorn` выше). -### Интерактивное обновление документов API +### Интерактивное обновление документации API -Теперь перейдите к http://127.0.0.1:8000/docs. +Перейдите на http://127.0.0.1:8000/docs. * Интерактивная документация API будет автоматически обновляться, включая новое тело: @@ -309,23 +309,23 @@ The server should reload automatically (because you added `--reload` to the `uvi ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) -### Альтернативное обновление документов API +### Альтернативное обновление документации API -А теперь перейдём в http://127.0.0.1:8000/redoc. +А теперь перейдите на http://127.0.0.1:8000/redoc. * Альтернативная документация также будет отражать новый параметр и тело запроса: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) -### Резюме +### Подведём итоги Таким образом, вы объявляете **один раз** типы параметров, тело и т. д. в качестве параметров функции. -Вы делаете это со стандартными современными типами Python. +Вы делаете это испльзуя стандартную современную типизацию Python. Вам не нужно изучать новый синтаксис, методы или классы конкретной библиотеки и т. д. -Просто стандартный **Python 3.6+**. +Только стандартный **Python 3.6+**. Например, для `int`: @@ -347,16 +347,16 @@ item: Item * Валидация данных: * Автоматические и четкие ошибки, когда данные недействительны. * Проверка даже для глубоко вложенных объектов JSON. -* Преобразование входных данных: поступающие из сети в данные и типы Python. Чтение из: +* Преобразование входных данных: поступающие из сети в объекты Python с соблюдением типов. Чтение из: * JSON. * Параметров пути. * Параметров запроса. - * Кук. + * Cookies. * Заголовков. * Форм. * Файлов. -* Преобразование выходных данных: преобразование данных и типов Python в сетевые данные (как JSON): - * Преобразование типов Python (`str`, `int`, `float`, `bool`, `list`, etc). +* Преобразование выходных данных: преобразование объектов Python в данные передаваемые по сети интернет (такие как JSON): + * Преобразование типов Python (`str`, `int`, `float`, `bool`, `list`, и т.д.). * Объекты `datetime`. * Объекты `UUID`. * Модели баз данных. @@ -374,7 +374,7 @@ item: Item * Если это не так, клиент увидит полезную чёткую ошибку. * Проверять, есть ли необязательный параметр запроса с именем `q` (например, `http://127.0.0.1:8000/items/foo?q=somequery`) для `GET` запросов. * Поскольку параметр `q` объявлен с `= None`, он является необязательным. - * Без `None` это было бы необходимо (как тело в случае с `PUT`). + * Без `None` он был бы необходим (как тело в случае с `PUT`). * Для `PUT` запросов к `/items/{item_id}` читать тело как JSON: * Проверять, что у него есть обязательный атрибут `name`, который должен быть `str`. * Проверять, что у него есть обязательный атрибут `price`, который должен быть `float`. @@ -388,7 +388,7 @@ item: Item --- -Мы только поцарапали поверхность, но вы уже поняли, как все это работает. +Мы только немного копнули поверхность, но вы уже поняли, как все это работает. Попробуйте изменить строку с помощью: @@ -412,12 +412,12 @@ item: Item ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) -Более полный пример с дополнительными функциями см. в Учебном руководстве - Руководство пользователя. +Более полный пример с дополнительными функциями см. в Учебное руководство - Руководство пользователя. **Осторожно, спойлер**: руководство пользователя включает в себя: -* Объявление **параметров** из других мест, таких как: **заголовки**, **куки**, **поля формы** и **файлы**. -* Как установить **ограничения проверки** как `maximum_length` или `regex`. +* Объявление **параметров** из других мест, таких как: **заголовки**, **cookies**, **поля формы** и **файлы**. +* Как установить **ограничительные проверки** такие как `maximum_length` или `regex`. * Очень мощная и простая в использовании система **внедрения зависимостей**. * Безопасность и аутентификация, включая поддержку **OAuth2** с **токенами JWT** и **HTTP Basic** аутентификацию. * Более продвинутые (но столь же простые) методы объявления **глубоко вложенных моделей JSON** (спасибо Pydantic). @@ -426,14 +426,14 @@ item: Item * **Веб-сокеты** * очень простые тесты на основе `requests` и `pytest` * **CORS** - * **Сеансы файлов Cookie** + * **Cookie сеансы(сессии)** * ...и многое другое. ## Производительность Независимые тесты TechEmpower показывают приложения **FastAPI**, работающие под управлением Uvicorn, как один из самых быстрых доступных фреймворков Python, уступающий только самим Starlette и Uvicorn (используемых внутри FastAPI). (*) -Чтобы узнать больше об этом, см. раздел Тесты. +Чтобы узнать больше об этом, см. раздел Тесты производительности. ## Необязательные зависимости