Skip to content

Add dedicated OData API support (extract & publish) #124

@petehauge

Description

@petehauge

Summary

apiops-cli currently handles OData APIs via the generic OpenAPI fallback path, which does not capture OData-specific artifacts. This issue tracks adding first-class OData support to both the extractor and publisher.

Background

Azure API Management added OData API support, but tooling across the ecosystem has lagged behind (see Azure/apiops#419). Users report that entity sets and functions are lost when extracting/publishing OData APIs.

Current behavior

  • Extractor (api-extractor.ts): No special-case handling for odata API type — it falls through to the generic openapi-link export, which misses OData-specific resources.
  • Publisher (api-publisher.ts): Recognizes odata as a valid apiType string but has no OData-specific import format or schema handling.
  • APIM Client (apim-client.ts): getExportFormat() returns 'openapi-link' for OData via the default case — no dedicated export format.

What needs to change

  1. Extract: Add OData-specific handling in api-extractor.ts to export CSDL schemas, entity sets, and functions via the appropriate APIM export format.
  2. APIM Client: Add an 'odata' case to getExportFormat() returning the correct APIM export format for OData APIs (investigate whether APIM supports a dedicated OData/CSDL export link).
  3. Publish: Add OData-specific import format handling in getImportFormat() so that CSDL schemas and entity sets are correctly imported on publish.
  4. Tests: Add unit/integration tests covering OData extract and publish flows.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions