Add dedicated OData API support (extract & publish)

Aperta
#124 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
azure, typescript
Ambito
api, cli

Direzione di ricerca

Inizia da api-extractor.ts, api-publisher.ts e apim-client.ts, seguendo la gestione esistente di apiType e i percorsi di getExportFormat()/getImportFormat(). Controlla la documentazione dei formati API di APIM o il comportamento esistente del client per confermare i formati di esportazione e importazione OData/CSDL. Il lavoro è completato quando i set di entità e le funzioni OData vengono mantenuti durante l’estrazione e la pubblicazione, con test unitari o di integrazione che coprano entrambi i flussi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Enhancement P2

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

Lingua principale
TypeScript
Stelle
29
Fork
10
Merge medio
1g 14h
PR unite (30g)
22

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Azure/apiops-cli

Tutte le issue di Azure/apiops-cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.