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
- Extract: Add OData-specific handling in
api-extractor.ts to export CSDL schemas, entity sets, and functions via the appropriate APIM export format.
- 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).
- Publish: Add OData-specific import format handling in
getImportFormat() so that CSDL schemas and entity sets are correctly imported on publish.
- Tests: Add unit/integration tests covering OData extract and publish flows.
Related
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
api-extractor.ts): No special-case handling forodataAPI type — it falls through to the genericopenapi-linkexport, which misses OData-specific resources.api-publisher.ts): Recognizesodataas a validapiTypestring but has no OData-specific import format or schema handling.apim-client.ts):getExportFormat()returns'openapi-link'for OData via thedefaultcase — no dedicated export format.What needs to change
api-extractor.tsto export CSDL schemas, entity sets, and functions via the appropriate APIM export format.'odata'case togetExportFormat()returning the correct APIM export format for OData APIs (investigate whether APIM supports a dedicated OData/CSDL export link).getImportFormat()so that CSDL schemas and entity sets are correctly imported on publish.Related