Movatterモバイル変換


[0]ホーム

URL:


Перейти к содержанию
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Возможности

🌐 Перевод выполнен с помощью ИИ и людей

Этот перевод был сделан ИИ под руководством людей. 🤝

В нем могут быть ошибки из-за неправильного понимания оригинального смысла или неестественности и т. д. 🤖

Вы можете улучшить этот перевод,помогая нам лучше направлять ИИ LLM.

Английская версия

Возможности FastAPI

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

Основано на открытых стандартах

  • OpenAPI для создания API, включая объявленияоперацийпути, параметров, тел запросов, безопасности и т.д.
  • Автоматическая документация моделей данных с помощьюJSON Schema (так как сама спецификация OpenAPI основана на JSON Schema).
  • Разработан вокруг этих стандартов, после тщательного их изучения. Это не дополнительная надстройка поверх.
  • Это также позволяет использовать автоматическуюгенерацию клиентского кода на многих языках.

Автоматическая документация

Интерактивная документация для API и исследовательские веб-интерфейсы. Поскольку фреймворк основан на OpenAPI, существует несколько вариантов документирования, 2 из них включены по умолчанию.

  • Swagger UI, с интерактивным исследованием, вызовом и тестированием вашего API прямо из браузера.

Swagger UI interaction

  • Альтернативная документация API вReDoc.

ReDoc

Только современный Python

Все основано на стандартныханнотациях типов Python (благодаря Pydantic). Не нужно изучать новый синтаксис. Только стандартный современный Python.

Если вам нужно освежить знания о типах в Python (даже если вы не используете FastAPI), выделите 2 минуты и просмотрите краткое руководство:Типы Python.

Вы пишете стандартный Python с типами:

fromdatetimeimportdatefrompydanticimportBaseModel# Объявляем параметр как `str`# и получаем поддержку редактора кода внутри функцииdefmain(user_id:str):returnuser_id# Модель PydanticclassUser(BaseModel):id:intname:strjoined:date

Это можно использовать так:

my_user:User=User(id=3,name="John Doe",joined="2018-07-19")second_user_data={"id":4,"name":"Mary","joined":"2018-11-30",}my_second_user:User=User(**second_user_data)

Информация

**second_user_data означает:

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

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

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

В опросах Python‑разработчиков видно,что одной из самых часто используемых функций является «автозавершение».

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

Вам редко нужно будет возвращаться к документации.

Вот как ваш редактор может вам помочь:

editor support

editor support

Вы будете получать автозавершение кода даже там, где вы считали это невозможным раньше. Как пример, ключprice внутри тела JSON (который может быть вложенным), приходящего в запросе.

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

Краткость

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

Но по умолчанию всё«просто работает».

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

  • Проверка значений для большинства (или всех?)типов данных Python, включая:

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

    • URL.
    • Email.
    • UUID.
    • ...и другие.

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

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

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

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

  • HTTP Basic.
  • OAuth2 (также стокенами JWT). Ознакомьтесь с руководствомOAuth2 с JWT.
  • Ключи API в:
    • HTTP-заголовках.
    • Параметрах запросов.
    • Cookies и т.п.

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

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

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

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

  • Даже зависимости могут иметь зависимости, создавая иерархию или«граф» зависимостей.
  • Всёавтоматически обрабатывается фреймворком.
  • Все зависимости могут запрашивать данные из запросов идополнять операции пути ограничениями и автоматической документацией.
  • Автоматическая проверка даже для параметровопераций пути, определённых в зависимостях.
  • Поддержка сложных систем аутентификации пользователей,соединений с базами данных и т.д.
  • Никаких компромиссов с базами данных, интерфейсами и т.д. Но при этом — лёгкая интеграция со всеми ними.

Нет ограничений на "Плагины"

Или, другими словами, нет необходимости в них — просто импортируйте и используйте нужный вам код.

Любая интеграция разработана настолько простой в использовании (с зависимостями), что вы можете создать «плагин» для своего приложения в пару строк кода, используя ту же структуру и синтаксис, что и для вашихопераций пути.

Проверен

  • 100%покрытие тестами.
  • 100%аннотирование типов в кодовой базе.
  • Используется в продакшн‑приложениях.

Возможности Starlette

FastAPI основан наStarlette и полностью совместим с ним. Так что любой дополнительный код Starlette, который у вас есть, также будет работать.

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

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

  • Серьёзно впечатляющая производительность. Этоодин из самых быстрых фреймворков на Python, наравне сNodeJS иGo.
  • ПоддержкаWebSocket.
  • Фоновые задачи в том же процессе.
  • События запуска и выключения.
  • Тестовый клиент построен на HTTPX.
  • CORS, GZip, статические файлы, потоковые ответы.
  • Поддержкасессий и cookie.
  • 100% покрытие тестами.
  • 100% аннотирование типов в кодовой базе.

Возможности Pydantic

FastAPI полностью совместим с (и основан на)Pydantic. Поэтому любой дополнительный код Pydantic, который у вас есть, также будет работать.

Включая внешние библиотеки, также основанные на Pydantic, такие какORM’ы,ODM’ы для баз данных.

Это также означает, что во многих случаях вы можете передавать тот же объект, который получили из запроса,непосредственно в базу данных, так как всё проверяется автоматически.

И наоборот, во многих случаях вы можете просто передать объект, полученный из базы данных,непосредственно клиенту.

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


[8]ページ先頭

©2009-2026 Movatter.jp