Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌐 Add Russian translation for docs/ru/docs/features.md #5315

Merged
merged 5 commits into from
Sep 4, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
47 changes: 22 additions & 25 deletions docs/ru/docs/features.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Особенности
# Основные свойства

## Особенности и возможности FastAPI
## Основные свойства FastAPI

**FastAPI** предлагает вам следующее:

### Основан на открытых стандартах
### Базирование на открытых стандартах
Xewus marked this conversation as resolved.
Show resolved Hide resolved

* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> для создания API, включая объявления <abbr title="также известных, как HTTP-методы, такие, как: POST, GET, PUT, DELETE">операций</abbr> <abbr title="известные как: эндпоинты, маршруты, 'ручки' и т.п.">пути</abbr>, параметров, тела запроса, безопасности и т.д.


* Автоматическое документирование моделей данных в соответствии с <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (так как, спецификацмя OpenAPI сама основана на JSON Schema).
* Автоматическое документирование моделей данных в соответствии с <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (так как спецификацмя OpenAPI сама основана на JSON Schema).
Xewus marked this conversation as resolved.
Show resolved Hide resolved
* Разработан, придерживаясь этих стандартов, после тщательного их изучения. Эти стандарты изначально включены во фреймфорк, а не являются дополнительной надстройкой.
* Это также позволяет использовать автоматическую **генерацию клиентского кода** на многих языках.

Expand Down Expand Up @@ -69,15 +69,13 @@ my_second_user: User = User(**second_user_data)
!!! Информация
`**second_user_data` означает:

Передать ключи и значения словаря `second_user_data`, в качестве аргументов типа "ключ-значение", это эквивалентно: `User(id=4, name="Mary", joined="2018-11-30")`.

(*прим. перев. Для этой операции также используется термин "распаковка".)
Передать ключи и значения словаря `second_user_data`, в качестве аргументов типа "ключ-значение", это эквивалентно: `User(id=4, name="Mary", joined="2018-11-30")` .

### Поддержка редакторов (IDE)

Весь фреймворк был продуман так, чтобы быть простым и интуитивно понятным в использовании, все решения были проверены на множестве редакторов еще до начала разработки, чтобы обеспечить наилучшие условия при написании кода.

В последнем опросе Python-разработчиков было выяснено, <a href="https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features" class="external-link" target="_blank">что наиболее часто используемой функцией редакторов, является "автодополнение"</a>.
В опросе Python-разработчиков было выяснено, <a href="https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features" class="external-link" target="_blank">что наиболее часто используемой функцией редакторов, является "автодополнение"</a>.

Вся структура **FastAPI** основана на удовлетворении этой возможности. Автодополнение работает везде.

Expand All @@ -96,19 +94,19 @@ my_second_user: User = User(**second_user_data)
Вы будете получать автодополнение кода даже там, где вы считали это невозможным раньше.
Как пример, ключ `price` внутри тела JSON (который может быть вложенным), приходящего в запросе.

Больше не нужно писать неправильные имена ключей, метаться по документации или прокручивать окно редакторва вверх и вниз, в попытках узнать - использовали вы ранее `username` или `user_name`.
Больше никаких неправильных имён ключей, метания по документации или прокручивания кода вверх и вниз, в попытках узнать - использовали вы ранее `username` или `user_name`.

### Краткость
FastAPI имеет продуманные значения **по умолчанию** для всего, с произвольными настройками везде. Все параметры могут быть тонко подстроены так, чтобы делать то, что вам нужно и определять необходимый вам API.

Но, по умолчанию, всё это **"и так работает"**.

### Проверяет значения
### Проверка значений

* Проверка значений для большинства (или всех?) **типов данных** Python, включая:
* Объекты JSON (`dict`).
* Массивы JSON (`list`) с установленными типами элементов.
* Строковые (`str`) поля, с установленными минимальной и максимальной длинами.
* Строковые (`str`) поля с ограничением минимальной и максимальной длины.
* Числа (`int`, `float`) с минимальными и максимальными значениями и т.п.

* Проверка для более экзотических типов, таких как:
Expand All @@ -117,11 +115,11 @@ FastAPI имеет продуманные значения **по умолчан
* UUID.
* ...и другие.

Все проверки обрабатывается хорошо зарекомендовавшим себя и надежным **Pydantic**.
Все проверки обрабатываются хорошо зарекомендовавшим себя и надежным **Pydantic**.

### Безопасность и аутентификация

Встроены функции безопасности и аутентификации. Без каких-либо компромиссов с базами данных или моделями данных.
Встроеные функции безопасности и аутентификации. Без каких-либо компромиссов с базами данных или моделями данных.

Все схемы безопасности, определённые в OpenAPI, включая:

Expand All @@ -134,7 +132,7 @@ FastAPI имеет продуманные значения **по умолчан

Вдобавок все функции безопасности от Starlette (включая **сессионные cookies**).

Все инструменты и компоненты построены как многоразовые и легко интегрируются с вашими системами, хранилищами данных, реляционными и NoSQL базами данных и т. д.
Все инструменты и компоненты спроектированы для многократного использования и легко интегрируются с вашими системами, хранилищами данных, реляционными и NoSQL базами данных и т. д.

### Внедрение зависимостей

Expand All @@ -155,23 +153,23 @@ FastAPI включает в себя чрезвычайно простую в и

### Проверен

* 100% <abbr title="The amount of code that is automatically tested">покрытие тестами</abbr>.
* 100% <abbr title="Python type annotations, with this your editor and external tools can give you better support">аннотирование типов</abbr> в кодовой базе.
* 100% <abbr title="Количество автоматически проверямого кода">покрытие тестами</abbr>.
* 100% <abbr title="Аннотации типов Python, благодаря которым ваш редактор и другие инструменты могут обеспечить вам лучшую поддержку">аннотирование типов</abbr> в кодовой базе.
* Используется в реально работающих приложениях.

## Особенности и возможности Starlette
## Основные свойства Starlette

**FastAPI** основан на <a href="https://www.starlette.io/" class="external-link" target="_blank"><strong>Starlette</strong></a> и полностью совместим с НИМ. Так что, любой дополнительный код Starlette, который у вас есть, будет также работать.
**FastAPI** основан на <a href="https://www.starlette.io/" class="external-link" target="_blank"><strong>Starlette</strong></a> и полностью совместим с ним. Так что, любой дополнительный код Starlette, который у вас есть, будет также работать.

На самом деле, `FastAPI` - это класс, унаследованный от `Starlette`. Таким образом, если вы уже знаете или используете Starlette, большая часть функционала будет работать так же.

С **FastAPI** вы получаете все возможности **Starlette** (так как FastAPI это всего лишь Starlette на стероидах):

* Серьёзно впечатляющая производительность. Это <a href="https://github.com/encode/starlette#performance" class="external-link" target="_blank">один из самых быстрых и доступных Python-фреймворков, наравне с **NodeJS** и **Go**</a>.
* Серьёзно впечатляющая производительность. Это <a href="https://github.com/encode/starlette#performance" class="external-link" target="_blank">один из самых быстрых Python-фреймворков, наравне с **NodeJS** и **Go**</a>.
Xewus marked this conversation as resolved.
Show resolved Hide resolved
* Поддержка **WebSocket**.
* Фоновые задачи для процессов.
* События запуска и выключения.
* Тестовый клиент построен на `requests`.
* Тестовый клиент построен на библиотеке `requests`.
* **CORS**, GZip, статические файлы, потоковые ответы.
* Поддержка **сессий и cookie**.
* 100% покрытие тестами.
Expand All @@ -189,18 +187,17 @@ FastAPI включает в себя чрезвычайно простую в и

С **FastAPI** вы получаете все возможности **Pydantic** (так как, FastAPI основан на Pydantic, для обработки данных):

* **Никакого мозгоёбства** :
(*прим. перев: именно так в оригинале)
* **Никакой нервотрёпки** :
* Не нужно изучать новых схем в микроязыках.
* Если вы знаете аннотации типов в Python, вы знаете, как использовать Pydantic.
* Развлекайтесь с вашими **<abbr title="Интегрированное окружение для разработки, похожее на текстовый редактор">IDE</abbr>/<abbr title="программа проверяющая ошибки в коде">linter</abbr>/мозгом**:
* Структуры данных pydantic - это всего лишь экземпляры классов, определённые вами. Автодополнение, проверка кода, mypy и ваша интуиция - всё будет работать с вашими проверенными данными.
* Прекрасно сочетается с вашими **<abbr title="Интегрированное окружение для разработки, похожее на текстовый редактор">IDE</abbr>/<abbr title="программа проверяющая ошибки в коде">linter</abbr>/мозгом**:
* Потому что структуры данных pydantic - это всего лишь экземпляры классов, определённых вами. Автодополнение, проверка кода, mypy и ваша интуиция - всё будет работать с вашими проверенными данными.
* **Быстродействие**:
* В <a href="https://pydantic-docs.helpmanual.io/benchmarks/" class="external-link" target="_blank">тестовых замерах</a> Pydantic быстрее, чем все другие проверенные библиотеки.
* Проверка **сложных структур**:
* Использование иерархических моделей Pydantic; `List`, `Dict` и т.п. из модуля `typing` (входит в стандартную библиотеку Python).
* Валидаторы позволяют четко и легко определять, проверять и документировать сложные схемы данных в виде JSON Schema.
* Вы можете иметь глубоко **вложенные объекты JSON** и все они будут проверены и аннотированы.
* У вас могут быть глубоко **вложенные объекты JSON** и все они будут проверены и аннотированы.
* **Расширяемость**:
* Pydantic позволяет определять пользовательские типы данных или расширять проверку методами модели, с помощью проверочных декораторов.
* 100% покрытие тестами.