loom.rest.fastapi.openapi

OpenAPI schema helpers for FastAPI route binding.

Builds request/response schema fragments from Loom UseCase contracts while keeping runtime execution transport-agnostic.

Functions

_build_public_command_struct(command_type)

_command_request_schema(command_type[, ...])

_get_execution_plan(compiled_route)

_has_profile_parameter(type_hints)

_has_query_spec_parameter(type_hints)

_query_spec_openapi_parameters(default_mode)

_rewrite_to_component_refs(node)

Rewrite #/$defs/X references to #/components/schemas/X recursively.

_safe_msgspec_schema(annotation)

_safe_pydantic_schema(annotation)

_safe_schema(annotation[, component_registry])

_use_case_response_schema(use_case_type[, ...])

_with_optional_none(annotation)

_without_unset_type(annotation)

build_query_parameters_schema(compiled_route)

Return OpenAPI query parameters inferred from the use-case contract.

build_request_body_schema(compiled_route[, ...])

Return OpenAPI requestBody schema for the route, if it has Input().

build_success_response_schema(compiled_route)

Return OpenAPI response entry for the route success status, if resolvable.

loom.rest.fastapi.openapi.build_request_body_schema(compiled_route, component_registry=None)[source]

Return OpenAPI requestBody schema for the route, if it has Input().

Parameters:
  • compiled_route (CompiledRoute) – Fully resolved route from RestInterfaceCompiler.

  • component_registry (dict[str, dict[str, Any]] | None) – Optional mutable dict that accumulates shared component schemas. When provided, nested $defs are extracted as #/components/schemas/ entries.

Returns:

OpenAPI requestBody fragment, or None when the route has no Input() binding.

Return type:

dict[str, Any] | None

loom.rest.fastapi.openapi.build_success_response_schema(compiled_route, component_registry=None)[source]

Return OpenAPI response entry for the route success status, if resolvable.

Parameters:
  • compiled_route (CompiledRoute) – Fully resolved route from RestInterfaceCompiler.

  • component_registry (dict[str, dict[str, Any]] | None) – Optional mutable dict that accumulates shared component schemas. When provided, nested $defs are extracted as #/components/schemas/ entries.

Returns:

OpenAPI response schema fragment, or None when the return type cannot be resolved to a JSON Schema.

Return type:

dict[str, Any] | None

loom.rest.fastapi.openapi.build_query_parameters_schema(compiled_route)[source]

Return OpenAPI query parameters inferred from the use-case contract.

Parameters:

compiled_route (CompiledRoute)

Return type:

list[dict[str, Any]]