Передача состояния представления (REST) содержит правила, процессы и инструменты, которые обеспечивают взаимодействие между микросервисами. Это службы методов, которые идентифицируются и выполняются через URL-адреса конечных точек. В настоящее время сосредоточение внимания на методах API перед созданием всего приложения является одной из самых популярных и эффективных стратегий проектирования микросервисов. Этот подход, называемый разработкой микросервисов с упором на API, сначала фокусируется на потребностях клиента, а затем определяет, какие методы обслуживания API нам необходимо реализовать для удовлетворения этих требований клиента.
Мы начнем с самого простого приложения, в котором мы сможем получать, публиковать, изменять и удалять записи через API. Пока мы рассмотрим инициализацию нашего приложения, а именно код:
from fastapi import FastAPI
app = FastAPI()
В этой лекции хотелось бы разобрать этот момент подробнее и разобрать все атрибуты, которые принимает класс:
FastAPI(
*,
debug=False,
routes=None,
title="FastAPI",
summary=None,
description="",
version="0.1.0",
openapi_url="/openapi.json",
openapi_tags=None,
servers=None,
dependencies=None,
default_response_class=Default(JSONResponse),
redirect_slashes=True,
docs_url="/docs",
redoc_url="/redoc",
swagger_ui_oauth2_redirect_url="/docs/oauth2-redirect",
swagger_ui_init_oauth=None,
middleware=None,
exception_handlers=None,
on_startup=None,
on_shutdown=None,
lifespan=None,
terms_of_service=None,
contact=None,
license_info=None,
openapi_prefix="",
root_path="",
root_path_in_servers=True,
responses=None,
callbacks=None,
webhooks=None,
deprecated=None,
include_in_schema=True,
swagger_ui_parameters=None,
generate_unique_id_function=Default(generate_unique_id),
separate_input_output_schemas=True,
**extra
)
Разберем подробнее большинство из них:
|
Параметр |
Описание | ||||||
|---|---|---|---|---|---|---|---|
debug |
Логическое значение, указывающее, следует ли возвращать отладочные трассировки при ошибках сервера. Посмотреть документацию Starlette для приложений. Тип: |
||||||
routes |
Обычно вы не используете этот параметр с FastAPI, он унаследован от Starlette и поддерживается для совместимости. Этот параметр принимает список маршрутов для обслуживания входящих запросов HTTP и WebSocket. Тип: |
||||||
title |
Название вашего API. Оно будет добавлено в OpenAPI (например, в документации Пример:
Тип: |
||||||
summary |
Краткое описание API. Оно будет добавлено в OpenAPI (например, в документации Пример
Тип: |
||||||
description |
Описание API. Поддерживает Markdown (с использованием синтаксиса CommonMark). Оно будет добавлено в OpenAPI (например, в документации Пример
Тип: |
||||||
version |
Версия API. Она будет добавлена в OpenAPI (например, в документации Обратите внимание, что это версия вашего приложения, а не версия спецификации OpenAPI и не используемая версия FastAPI. Пример
Тип: |
||||||
openapi_url |
URL-адрес, на котором будет доступна схема OpenAPI. Пример
Тип: |
||||||
openapi_tags |
Список тегов, используемых OpenAPI, это те же теги, которые вы можете установить в операциях пути, например:
Теги можно использовать для указания порядка, показанного в таких документациях, как пользовательский интерфейс Swagger, используемых в Узнайте больше в документации FastAPI для URL-адресов метаданных. Тип: |
||||||
servers |
Список словарей с информацией о подключении к целевому серверу. Вы можете использовать это, например, если ваше приложение обслуживается из разных доменов, и вы хотите использовать один и тот же пользовательский интерфейс Swagger для взаимодействия с каждым из них (вместо того, чтобы открывать несколько вкладок браузера). Узнайте больше в документации FastAPI. Пример
Тип: |
||||||
default_response_class |
Используемый класс ответа. Узнайте больше в документации FastAPI для пользовательского ответа - HTML, Stream, File и другие. Пример
Тип: |
||||||
redirect_slashes |
Следует ли обнаруживать и перенаправлять косые черты в URL-адресах, когда клиент не использует тот же формат. Пример
С помощью этого параметра, если клиент переходит в Тип: |
||||||
docs_url |
Путь к автоматической интерактивной документации API. URL-адрес по умолчанию - Тип: |
||||||
redoc_url |
Путь к альтернативной автоматической интерактивной документации API, предоставленной ReDoc. URL-адрес по умолчанию - Тип: |
||||||
swagger_ui_oauth2_redirect_url |
Конечная точка перенаправления OAuth2 для пользовательского интерфейса Swagger. По умолчанию это Это используется только в том случае, если вы используете OAuth2 (с кнопкой "Авторизовать") с пользовательским интерфейсом Swagger. Тип: |
||||||
swagger_ui_init_oauth |
Конфигурация OAuth2 для пользовательского интерфейса Swagger, по умолчанию отображается в Тип: |
||||||
middleware |
Список промежуточного программного обеспечения, которое будет добавлено при создании приложения. В FastAPI вы обычно делаете это с помощью Тип: |
||||||
exception_handlers |
Словарь с обработчиками исключений. В FastAPI вы обычно используете декоратор Тип: |
||||||
contact |
Контактная информация для открытого API. Может содержать несколько полей:
Тип: |
||||||
license_info |
Информация о лицензии открытого API. Может содержать несколько полей:
Тип: |
||||||
terms_of_service |
Ссылка к условиям пользования API. Тип: |
||||||
root_path |
Префикс пути, обрабатываемый прокси, который не виден приложению, но виден внешними клиентами, что влияет на такие вещи, как пользовательский интерфейс Swagger. Пример
Тип: |
На этом мы закончим рассмотрение класса FastAPI, в следующем шаге мы приступим к созданию скелета из маршрутов и создания методов обработки запросов.