OpenAPI#
CLI#
eazy-sdk-openapi [-h] --package-name PACKAGE_NAME
[--projection REQUIREMENT=MODULE:ATTRIBUTE] spec output
Аргумент |
Значение |
|---|---|
|
OpenAPI document в JSON или YAML |
|
Каталог для generated package |
|
Имя Python package |
|
Repeatable static import для named projection requirement |
Python#
from eazy_sdk_openapi import GenerationConfig, ProjectionImport
parse_openapi(document) -> OpenAPIIR
generate_package(
document,
*,
spec_path,
output_directory,
package_name,
config=GenerationConfig(
projections=(
ProjectionImport("register-user", "application.projections:register_to_wire"),
),
),
) -> Path
Generator принимает OpenAPI 3.0.x, 3.1.x и 3.2.x. Результат содержит Pydantic models, отдельные
Async*Api/Sync*Api, root SDK factories и openapi-compatibility.json.
Каждая operation генерируется как декорированный метод с явными parameters. Обычный вызов
возвращает success value; method.with_response(...) возвращает ResponseEnvelope.
Canonical x-eazy-sdk поддерживает root protectionFlows, operation protections и typed output
mappings. Operation projection содержит source, target, named application, encoding и
optional stable name; target обязан совпадать с выбранной request-body wire schema. IR хранит
это как BodyProjectionIR, а GenerationConfig разрешает application requirement в статический
module:attribute import. Unknown fields, missing imports, remote $ref и obsolete extension
aliases отклоняются до emission с operation ID и JSON Pointer.