OpenAPI#

CLI#

eazy-sdk-openapi [-h] --package-name PACKAGE_NAME
                 [--projection REQUIREMENT=MODULE:ATTRIBUTE] spec output

Аргумент

Значение

spec

OpenAPI document в JSON или YAML

output

Каталог для generated package

--package-name

Имя Python package

--projection

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.