From 22e115d09963afb3b114ef17fe7eb333e5063543 Mon Sep 17 00:00:00 2001 From: impocode Date: Sat, 20 Aug 2022 01:32:06 +0500 Subject: [PATCH 1/3] docs: translate index.md docs for Russian --- README.md | 1 - docs/en/docs/index.md | 1 - docs/ru/docs/index.md | 309 +++++++++++++++++++++--------------------- 3 files changed, 153 insertions(+), 158 deletions(-) diff --git a/README.md b/README.md index 326ad22795343..390fc3033e9a2 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,6 @@ FastAPI is a modern, fast (high-performance), web framework for building APIs wi The key features are: * **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). - * **Fast to code**: Increase the speed to develop features by about 200% to 300%. * * **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * * **Intuitive**: Great editor support. Completion everywhere. Less time debugging. diff --git a/docs/en/docs/index.md b/docs/en/docs/index.md index 17163ba014673..24ce14e235e98 100644 --- a/docs/en/docs/index.md +++ b/docs/en/docs/index.md @@ -32,7 +32,6 @@ FastAPI is a modern, fast (high-performance), web framework for building APIs wi The key features are: * **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). - * **Fast to code**: Increase the speed to develop features by about 200% to 300%. * * **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * * **Intuitive**: Great editor support. Completion everywhere. Less time debugging. diff --git a/docs/ru/docs/index.md b/docs/ru/docs/index.md index 932bb21390ac6..65158e704826a 100644 --- a/docs/ru/docs/index.md +++ b/docs/ru/docs/index.md @@ -1,50 +1,48 @@ - -{!../../../docs/missing-translation.md!} - -

FastAPI

- FastAPI framework, high performance, easy to learn, fast to code, ready for production + Фреймворк FastAPI, высокая производительность, простота в изучении, быстрота написания кода, готовность к производству

- - Build Status + + Test - Coverage + Coverage + + + Package version - Package version + Supported Python versions

--- -**Documentation**: https://fastapi.tiangolo.com +**Документация**: https://fastapi.tiangolo.com -**Source Code**: https://github.com/tiangolo/fastapi +**Исходный код**: https://github.com/tiangolo/fastapi --- -FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. - -The key features are: +FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API-интерфейсов с Python 3.6+ на основе стандартных подсказок типов Python. -* **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). +Ключевые особенности: -* **Fast to code**: Increase the speed to develop features by about 200% to 300%. * -* **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * -* **Intuitive**: Great editor support. Completion everywhere. Less time debugging. -* **Easy**: Designed to be easy to use and learn. Less time reading docs. -* **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. -* **Robust**: Get production-ready code. With automatic interactive documentation. -* **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. +* **Скорость**: Очень высокая производительность, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). [Один из самых быстрых фреймворков Python](#_10). +* **Быстрота разработки**: Увеличьте скорость разработки примерно на 200–300%. * +* **Меньше ошибок**: Сократите примерно на 40 % ошибок, вызванных человеком (разработчиком). * +* **Интуитивно понятный**: Отличная поддержка редактора. Автозавершение везде. Меньше времени на отладку. +* **Легкий**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документов. +* **Короткий**: Сведите к минимуму дублирование кода. Несколько функций из каждого объявления параметра. Меньше ошибок. +* **Надежный**: Получите готовый к работе код. С автоматической интерактивной документацией. +* **На основе стандартов**: На основе (и полностью совместимых) открытых стандартов для API: OpenAPI (ранее известном как Swagger) и JSON Schema. -* estimation based on tests on an internal development team, building production applications. +* оценка на основе тестов внутренней команды разработчиков, создающих производственные приложения. -## Sponsors +## Спонсоры @@ -59,43 +57,43 @@ The key features are: -Other sponsors +Другие спонсоры -## Opinions +## Отзывы -"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._" +"_В последнее время я много где использую **FastAPI**. [...] На самом деле я планирую использовать его для всех **служб машинного обучения моей команды в Microsoft**. Некоторые из них интегрируются в основной продукт **Windows**, а некоторые — в продукты **Office**._"
Kabir Khan - Microsoft (ref)
--- -"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" +"_Мы использовали библиотеку **FastAPI** для создания сервера **REST**, к которому можно делать запросы для получения **прогнозов**. [для Ludwig]_"
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
--- -"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_" +"_**Netflix** рада объявить о выпуске с открытым исходным кодом нашей системы оркестровки **антикризисного управления**: **Dispatch**! [создана с помощью **FastAPI**]_"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
--- -"_I’m over the moon excited about **FastAPI**. It’s so fun!_" +"_Я в полном восторге от **FastAPI**. Это так весело!_"
Brian Okken - Python Bytes podcast host (ref)
--- -"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._" +"_Честно говоря, то, что вы создали, выглядит очень солидно и отполировано. Во многих смыслах я хотел, чтобы **Hug** был именно таким — это действительно вдохновляет, когда кто-то создаёт такое._"
Timothy Crosley - Hug creator (ref)
--- -"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" +"_Если вы хотите изучить один **современный фреймворк** для создания REST API, ознакомьтесь с **FastAPI** [...] Это быстро, просто в использовании и легко в освоении [...]_" -"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_" +"_Мы перешли на **FastAPI** для наших **API** [...] Я думаю, вам тоже понравится [...]_"
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
@@ -105,20 +103,20 @@ The key features are: -If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. +Если вы создаете приложение CLI для использования в терминале вместо веб-API, ознакомьтесь с **Typer**. -**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 +**Typer** — младший брат FastAPI. И он предназначен для использования в качестве **FastAPI of CLIs**. ⌨️ 🚀 -## Requirements +## Зависимости Python 3.6+ -FastAPI stands on the shoulders of giants: +FastAPI стоит на плечах гигантов: -* Starlette for the web parts. -* Pydantic for the data parts. +* Starlette для части связанной с вебом. +* Pydantic для части связанной с данными. -## Installation +## Установка
@@ -130,7 +128,7 @@ $ pip install fastapi
-You will also need an ASGI server, for production such as Uvicorn or Hypercorn. +Вам также понадобится сервер ASGI для производства, такой как Uvicorn или Hypercorn.
@@ -142,11 +140,11 @@ $ pip install "uvicorn[standard]"
-## Example +## Пример -### Create it +### Создание -* Create a file `main.py` with: +* Создайте файл `main.py` с: ```Python from typing import Union @@ -167,9 +165,9 @@ def read_item(item_id: int, q: Union[str, None] = None): ```
-Or use async def... +Или используйте async def... -If your code uses `async` / `await`, use `async def`: +Если ваш код использует `async` / `await`, используйте `async def`: ```Python hl_lines="9 14" from typing import Union @@ -189,15 +187,15 @@ async def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q} ``` -**Note**: +**Примечание**: -If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. +Если вы не знаете, проверьте раздел _"Торопитесь?"_ в документации об `async` и `await`.
-### Run it +### Запуск -Run the server with: +Запустите сервер с помощью:
@@ -214,32 +212,32 @@ INFO: Application startup complete.
-About the command uvicorn main:app --reload... +О команде uvicorn main:app --reload... -The command `uvicorn main:app` refers to: +Команда `uvicorn main:app` относится к: -* `main`: the file `main.py` (the Python "module"). -* `app`: the object created inside of `main.py` with the line `app = FastAPI()`. -* `--reload`: make the server restart after code changes. Only do this for development. +* `main`: файл `main.py` (модуль Python). +* `app`: объект, созданный внутри `main.py` с помощью строки `app = FastAPI()`. +* `--reload`: перезапуск сервера после изменения кода. Делайте это только во время разработки.
-### Check it +### Проверка -Open your browser at http://127.0.0.1:8000/items/5?q=somequery. +Откройте браузер на http://127.0.0.1:8000/items/5?q=somequery. -You will see the JSON response as: +Вы увидите ответ JSON как: ```JSON {"item_id": 5, "q": "somequery"} ``` -You already created an API that: +Вы уже создали API, который: -* Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. -* Both _paths_ take `GET` operations (also known as HTTP _methods_). -* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. -* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. +* Получает HTTP-запросы по _путям_ `/` и `/items/{item_id}`. +* И первый и второй _путь_ используют `GET` операции (также известные как HTTP _методы_). +* _путь_ `/items/{item_id}` имеет _параметр пути_ `item_id`, который должен быть `int`. +* _путь_ `/items/{item_id}` имеет необязательный `str` _параметр запроса_ `q`. ### Interactive API docs @@ -295,172 +293,171 @@ def update_item(item_id: int, item: Item): The server should reload automatically (because you added `--reload` to the `uvicorn` command above). -### Interactive API docs upgrade +### Интерактивное обновление документов API -Now go to http://127.0.0.1:8000/docs. +Теперь перейдите к http://127.0.0.1:8000/docs. -* The interactive API documentation will be automatically updated, including the new body: +* Интерактивная документация API будет автоматически обновляться, включая новое тело: ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) -* Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: +* Нажмите на кнопку "Try it out", это позволит вам заполнить параметры и напрямую взаимодействовать с API: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) -* Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen: +* Затем нажмите кнопку "Execute", пользовательский интерфейс свяжется с вашим API, отправит параметры, получит результаты и отобразит их на экране: ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) -### Alternative API docs upgrade +### Альтернативное обновление документов API -And now, go to http://127.0.0.1:8000/redoc. +А теперь перейдём в http://127.0.0.1:8000/redoc. -* The alternative documentation will also reflect the new query parameter and body: +* Альтернативная документация также будет отражать новый параметр и тело запроса: ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) -### Recap +### Резюме -In summary, you declare **once** the types of parameters, body, etc. as function parameters. +Таким образом, вы объявляете **один раз** типы параметров, тело и т. д. в качестве параметров функции. -You do that with standard modern Python types. +Вы делаете это со стандартными современными типами Python. -You don't have to learn a new syntax, the methods or classes of a specific library, etc. +Вам не нужно изучать новый синтаксис, методы или классы конкретной библиотеки и т. д. -Just standard **Python 3.6+**. +Просто стандартный **Python 3.6+**. -For example, for an `int`: +Например, для `int`: ```Python item_id: int ``` -or for a more complex `Item` model: +или для более сложной модели `Item`: ```Python item: Item ``` -...and with that single declaration you get: +... и с этим единственным объявлением вы получаете: -* Editor support, including: - * Completion. - * Type checks. -* Validation of data: - * Automatic and clear errors when the data is invalid. - * Validation even for deeply nested JSON objects. -* Conversion of input data: coming from the network to Python data and types. Reading from: +* Поддержка редактора, в том числе: + * Автозавершение. + * Проверка типов. +* Валидация данных: + * Автоматические и четкие ошибки, когда данные недействительны. + * Проверка даже для глубоко вложенных объектов JSON. +* Преобразование входных данных: поступающие из сети в данные и типы Python. Чтение из: * JSON. - * Path parameters. - * Query parameters. - * Cookies. - * Headers. - * Forms. - * Files. -* Conversion of output data: converting from Python data and types to network data (as JSON): - * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). - * `datetime` objects. - * `UUID` objects. - * Database models. - * ...and many more. -* Automatic interactive API documentation, including 2 alternative user interfaces: + * Параметров пути. + * Параметров запроса. + * Кук. + * Заголовков. + * Форм. + * Файлов. +* Преобразование выходных данных: преобразование данных и типов Python в сетевые данные (как JSON): + * Преобразование типов Python (`str`, `int`, `float`, `bool`, `list`, etc). + * Объекты `datetime`. + * Объекты `UUID`. + * Модели баз данных. + * ...и многое другое. +* Автоматическая интерактивная документация по API, включая 2 альтернативных пользовательских интерфейса: * Swagger UI. * ReDoc. --- -Coming back to the previous code example, **FastAPI** will: - -* Validate that there is an `item_id` in the path for `GET` and `PUT` requests. -* Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. - * If it is not, the client will see a useful, clear error. -* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. - * As the `q` parameter is declared with `= None`, it is optional. - * Without the `None` it would be required (as is the body in the case with `PUT`). -* For `PUT` requests to `/items/{item_id}`, Read the body as JSON: - * Check that it has a required attribute `name` that should be a `str`. - * Check that it has a required attribute `price` that has to be a `float`. - * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. - * All this would also work for deeply nested JSON objects. -* Convert from and to JSON automatically. -* Document everything with OpenAPI, that can be used by: - * Interactive documentation systems. - * Automatic client code generation systems, for many languages. -* Provide 2 interactive documentation web interfaces directly. +Возвращаясь к предыдущему примеру кода, **FastAPI** будет: + +* Проверять наличие `item_id` в пути для запросов `GET` и `PUT`. +* Проверять, что `item_id` имеет тип `int` для запросов `GET` и `PUT`. + * Если это не так, клиент увидит полезную чёткую ошибку. +* Проверять, есть ли необязательный параметр запроса с именем `q` (например, `http://127.0.0.1:8000/items/foo?q=somequery`) для `GET` запросов. + * Поскольку параметр `q` объявлен с `= None`, он является необязательным. + * Без `None` это было бы необходимо (как тело в случае с `PUT`). +* Для `PUT` запросов к `/items/{item_id}` читать тело как JSON: + * Проверять, что у него есть обязательный атрибут `name`, который должен быть `str`. + * Проверять, что у него есть обязательный атрибут `price`, который должен быть `float`. + * Проверять, что у него есть необязательный атрибут `is_offer`, который должен быть `bool`, если он присутствует. + * Все это также будет работать для глубоко вложенных объектов JSON. +* Преобразовывать из и в JSON автоматически. +* Документировать с помощью OpenAPI все, что может быть использовано: + * Системы интерактивной документации. + * Системы автоматической генерации клиентского кода для многих языков. +* Обеспечит 2 интерактивных веб-интерфейса документации напрямую. --- -We just scratched the surface, but you already get the idea of how it all works. +Мы только поцарапали поверхность, но вы уже поняли, как все это работает. -Try changing the line with: +Попробуйте изменить строку с помощью: ```Python return {"item_name": item.name, "item_id": item_id} ``` -...from: +...из: ```Python ... "item_name": item.name ... ``` -...to: +...в: ```Python ... "item_price": item.price ... ``` -...and see how your editor will auto-complete the attributes and know their types: +... и посмотрите, как ваш редактор будет автоматически заполнять атрибуты и узнавать их типы: ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) -For a more complete example including more features, see the Tutorial - User Guide. +Более полный пример с дополнительными функциями см. в Учебном руководстве - Руководство пользователя. -**Spoiler alert**: the tutorial - user guide includes: +**Осторожно, спойлер**: руководство пользователя включает в себя: -* Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**. -* How to set **validation constraints** as `maximum_length` or `regex`. -* A very powerful and easy to use **Dependency Injection** system. -* Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. -* More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). -* Many extra features (thanks to Starlette) as: - * **WebSockets** - * **GraphQL** - * extremely easy tests based on `requests` and `pytest` +* Объявление **параметров** из других мест, таких как: **заголовки**, **куки**, **поля формы** и **файлы**. +* Как установить **ограничения проверки** как `maximum_length` или `regex`. +* Очень мощная и простая в использовании система **внедрения зависимостей**. +* Безопасность и аутентификация, включая поддержку **OAuth2** с **токенами JWT** и **HTTP Basic** аутентификацию. +* Более продвинутые (но столь же простые) методы объявления **глубоко вложенных моделей JSON** (спасибо Pydantic). +* **GraphQL** интеграция с Strawberry и другими библиотеками. +* Множество дополнительных функций (благодаря Starlette), таких как: + * **Веб-сокеты** + * очень простые тесты на основе `requests` и `pytest` * **CORS** - * **Cookie Sessions** - * ...and more. + * **Сеансы файлов Cookie** + * ...и многое другое. -## Performance +## Производительность -Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) +Независимые тесты TechEmpower показывают приложения **FastAPI**, работающие под управлением Uvicorn, как один из самых быстрых доступных фреймворков Python, уступающий только самим Starlette и Uvicorn (используемых внутри FastAPI). (*) -To understand more about it, see the section Benchmarks. +Чтобы узнать больше об этом, см. раздел Тесты. -## Optional Dependencies +## Необязательные зависимости -Used by Pydantic: +Используется Pydantic: -* ujson - for faster JSON "parsing". -* email_validator - for email validation. +* ujson - для более быстрого JSON "парсинга". +* email_validator - для проверки электронной почты. -Used by Starlette: +Используется Starlette: -* requests - Required if you want to use the `TestClient`. -* jinja2 - Required if you want to use the default template configuration. -* python-multipart - Required if you want to support form "parsing", with `request.form()`. -* itsdangerous - Required for `SessionMiddleware` support. -* pyyaml - Required for Starlette's `SchemaGenerator` support (you probably don't need it with FastAPI). -* graphene - Required for `GraphQLApp` support. -* ujson - Required if you want to use `UJSONResponse`. +* requests - Обязательно, если вы хотите использовать `TestClient`. +* jinja2 - Обязательно, если вы хотите использовать конфигурацию шаблона по умолчанию. +* python-multipart - Обязательно, если вы хотите поддерживать форму "парсинга" с помощью `request.form()`. +* itsdangerous - Обязательно, для поддержки `SessionMiddleware`. +* pyyaml - Обязательно, для поддержки `SchemaGenerator` Starlette (возможно, вам это не нужно с FastAPI). +* ujson - Обязательно, если вы хотите использовать `UJSONResponse`. -Used by FastAPI / Starlette: +Используется FastAPI / Starlette: -* uvicorn - for the server that loads and serves your application. -* orjson - Required if you want to use `ORJSONResponse`. +* uvicorn - сервер, который загружает и обслуживает ваше приложение. +* orjson - Обязательно, если вы хотите использовать `ORJSONResponse`. -You can install all of these with `pip install fastapi[all]`. +Вы можете установить все это с помощью `pip install "fastapi[all]"`. -## License +## Лицензия -This project is licensed under the terms of the MIT license. +Этот проект распространяется на условиях лицензии MIT. From 20428cf2be8c89e5bb027066d4b24096ae210716 Mon Sep 17 00:00:00 2001 From: impocode Date: Thu, 25 Aug 2022 11:34:45 +0500 Subject: [PATCH 2/3] fix: correct the translation --- docs/ru/docs/index.md | 84 +++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) 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). (*) -Чтобы узнать больше об этом, см. раздел Тесты. +Чтобы узнать больше об этом, см. раздел Тесты производительности. ## Необязательные зависимости From f13dac960c7c4a11ebec32b06b6b3a178667a2e6 Mon Sep 17 00:00:00 2001 From: impocode Date: Thu, 25 Aug 2022 19:19:13 +0500 Subject: [PATCH 3/3] fix: correct the translation --- docs/ru/docs/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ru/docs/index.md b/docs/ru/docs/index.md index db3c4174f2947..448e2c70793d4 100644 --- a/docs/ru/docs/index.md +++ b/docs/ru/docs/index.md @@ -27,13 +27,13 @@ --- -FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API используя Python 3.6+ на основе стандартных подсказок типов Python. +FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API используя Python 3.6+, в основе которого лежит стандартная аннотация типов Python. Ключевые особенности: * **Скорость**: Очень высокая производительность, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). [Один из самых быстрых фреймворков Python](#_10). * **Быстрота разработки**: Увеличьте скорость разработки примерно на 200–300%. * -* **Меньше ошибок**: Сократите примерно на 40% ошибок, вызванных человеком (разработчиком). * +* **Меньше ошибок**: Сократите примерно на 40% количество ошибок, вызванных человеком (разработчиком). * * **Интуитивно понятный**: Отличная поддержка редактора. Автозавершение везде. Меньше времени на отладку. * **Лёгкость**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документации. * **Краткость**: Сведите к минимуму дублирование кода. Каждый объявленный параметр - определяет несколько функций. Меньше ошибок. @@ -257,7 +257,7 @@ INFO: Application startup complete. ## Пример обновления -Теперь измените файл `main.py`, чтобы получить тело из `PUT` запроса. +Теперь измените файл `main.py`, чтобы получить тело ответа из `PUT` запроса. Объявите тело, используя стандартную типизацию Python, спасибо Pydantic.