{"ref":"capability:openapi","page":"/capabilities/openapi","json":"/capabilities/openapi.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"openapi","name":"OpenAPI","domain":"protocols-and-apis","ecosystems":["cap","abap","btp"],"universal":false,"description":"Handing a description of the service to clients and tools — an API portal, a code generator, a partner who wants a contract before they write anything.","short":"Handing a service description to clients and tools","core_coverage":{"state":"core-and-community","assessed_at":"2026-09-08","what_core_does":"cds compile --to openapi converts a CDS model into an OpenAPI document, and an official plugin does the same at runtime. The description is derived from the model, so it cannot drift from the service.","where_it_stops":"At the document. Serving it as an explorable page for a human is not part of it, which is what the independent Swagger UI entry here adds.","sources":[{"url":"https://cap.cloud.sap/docs/guides/protocols/openapi","title":"OpenAPI — capire","checked":"2026-09-08","quote":"You can convert CDS models to the OpenAPI Specification, a widely adopted API description standard."}],"relationship":"narrow-by-design"},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"left-open-on-purpose","to":"core-and-community","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-13","field":"name","from":"OpenAPI and Swagger","to":"OpenAPI","reason":"The map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans."},{"date":"2026-09-14","field":"ecosystems","from":"cap","to":"cap, abap, btp, integration","reason":"abap-openapi, abap-openapi-ui and ABAP-Swagger generate code from OpenAPI documents and serve Swagger UI in an ABAP system. SAP-samples/manage-apis-codejam imports APIs by their OpenAPI specification into SAP API Management, which runs on BTP as part of Integration Suite."},{"date":"2026-10-17","field":"description","from":"Handing a description of the service to something that is not a Fiori client — an API portal, a code generator, a partner who wants a contract before they write anything.","to":"Handing a description of the service to clients and tools — an API portal, a code generator, a partner who wants a contract before they write anything.","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit."}],"coverage_by_ecosystem":{"abap":{"state":"community-only","assessed_at":"2026-09-14","note":"what_core_does is left empty: no SAP page has been checked that states what the ABAP platform ships for OpenAPI, so community-only is a assessment of the corpus rather than a quote from the core."},"btp":{"state":"core-only","assessed_at":"2026-09-14","what_core_does":"SAP API Management creates an API from an OpenAPI specification, or copies one from the SAP Business Accelerator Hub, then deploys it, puts policies on it and publishes it to developers.","where_it_stops":"At the specification it is handed. API Management manages a description that already exists; producing one from a service is the service's own tooling, which on CAP is `cds compile --to openapi`.","sources":[{"url":"https://github.com/SAP-samples/manage-apis-codejam/blob/main/exercises/07-import-api-openapi-spec/README.md","title":"Exercise 07 — Import an API using an OpenAPI specification, SAP-samples/manage-apis-codejam","checked":"2026-09-14","quote":"It is also possible to create APIs in SAP API Management, based on OpenAPI specifications."},{"url":"https://github.com/SAP-samples/manage-apis-codejam","title":"Managing APIs in your landscape with SAP API Management — SAP-samples/manage-apis-codejam","checked":"2026-09-14","quote":"Exercise 10 - API policies"}],"note":"The repository answering this here is an SAP-samples CodeJam, which demonstrates and does not provide, so core-only is a assessment of the corpus."}},"framing_by_ecosystem":{"abap":{"description":"In ABAP OpenAPI runs in both directions: a document generates the client class or the ICF handler for a REST service, and Swagger UI is served over the Gateway services and REST handlers a system already has."},"btp":{"description":"On BTP OpenAPI is what [SAP Integration Suite](artifact:btp-integration-suite) reads rather than writes: API Management imports a service by its specification, puts policies on it and publishes it to developers."},"cap":{"description":"Handing a description of the service to something that is not a Fiori client — an API portal, a code generator, a partner who wants a contract before they write anything."}},"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-openapi","name":"@cap-js/openapi","json":"/artifacts/cap-js-openapi.json"}]},"by_flavor":{"node":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-openapi","name":"@cap-js/openapi","json":"/artifacts/cap-js-openapi.json"}]},"java":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:cap-js-openapi","name":"@cap-js/openapi","json":"/artifacts/cap-js-openapi.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:geert-janklaps-abap-openapi-ui","name":"ABAP OpenAPI UI","json":"/artifacts/geert-janklaps-abap-openapi-ui.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:abap-openapi-abap-openapi","name":"abap-openapi","json":"/artifacts/abap-openapi-abap-openapi.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:larshp-abap-swagger","name":"ABAP-Swagger","json":"/artifacts/larshp-abap-swagger.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:chgeo-cds-swagger-ui-express","name":"cds-swagger-ui-express","json":"/artifacts/chgeo-cds-swagger-ui-express.json","ecosystem":"cap","origin_ring":"independent"}],"samples":[{"ref":"artifact:miyasuta-cap-openapi","name":"cap-openapi","json":"/artifacts/miyasuta-cap-openapi.json"},{"ref":"artifact:sap-samples-manage-apis-codejam","name":"SAP-samples/manage-apis-codejam","json":"/artifacts/sap-samples-manage-apis-codejam.json"}],"explained_by":[{"ref":"content:from-seo-to-meo-designing-joule-ready-api-layers-for-sap-commerce-cloud","name":"From SEO to MEO: Designing Joule-Ready API Layers for SAP Commerce Cloud","json":"/content/from-seo-to-meo-designing-joule-ready-api-layers-for-sap-commerce-cloud.json"},{"ref":"content:no-code-mcp-servers-with-sap-integration-suite-from-rest-api-to-ai-agent","name":"No-Code MCP Servers with SAP Integration Suite: From REST API to AI Agent","json":"/content/no-code-mcp-servers-with-sap-integration-suite-from-rest-api-to-ai-agent.json"},{"ref":"content:building-and-consuming-an-mcp-server-in-sap-integration-suite-connecting-it-to-c","name":"Building and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and Joule","json":"/content/building-and-consuming-an-mcp-server-in-sap-integration-suite-connecting-it-to-c.json"},{"ref":"content:integration-suite-building-an-mcp-server-for-a-sap-ci-monitoring-assistant","name":"Integration Suite: Building an MCP Server for a SAP CI Monitoring Assistant","json":"/content/integration-suite-building-an-mcp-server-for-a-sap-ci-monitoring-assistant.json"},{"ref":"content:sap-job-scheduling-service-generate-your-own-client-library-from-openapi-spec","name":"SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Spec","json":"/content/sap-job-scheduling-service-generate-your-own-client-library-from-openapi-spec.json"},{"ref":"content:use-rest-services-in-graph","name":"Use REST services in Graph","json":"/content/use-rest-services-in-graph.json"},{"ref":"content:making-the-case-for-enhanced-rest-adapter-in-sap-integration-suite","name":"Making the Case for Enhanced REST Adapter in SAP Integration Suite","json":"/content/making-the-case-for-enhanced-rest-adapter-in-sap-integration-suite.json"},{"ref":"content:edge-integration-cell-design-deploy-and-manage-apis","name":"Edge Integration Cell : Design, deploy and manage APIs","json":"/content/edge-integration-cell-design-deploy-and-manage-apis.json"},{"ref":"content:part-2-empowering-sap-btp-cap-services-through-open-api-spec-and-annotations-for","name":"Part 2 – Empowering SAP BTP CAP Services through Open API Spec and Annotations for Effective Communication, Collaboration and Governance","json":"/content/part-2-empowering-sap-btp-cap-services-through-open-api-spec-and-annotations-for.json"},{"ref":"content:part-3-empowering-sap-btp-cap-services-through-open-api-spec-and-annotations-for","name":"Part 3 – Empowering SAP BTP CAP Services through Open API Spec and Annotations for Effective Communication, Collaboration and Governance","json":"/content/part-3-empowering-sap-btp-cap-services-through-open-api-spec-and-annotations-for.json"},{"ref":"content:openapis-in-the-sap-ecosystem","name":"OpenAPIs in the SAP ecosystem","json":"/content/openapis-in-the-sap-ecosystem.json"},{"ref":"content:invoke-openapi-documented-apis-remotely-with-cap","name":"Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming Model","json":"/content/invoke-openapi-documented-apis-remotely-with-cap.json"},{"ref":"content:swagger-ui-for-cds-sap-btp-extension-generators","name":"Swagger UI | SAP BTP Extension Generators | Hands-on Video Tutorials","json":"/content/swagger-ui-for-cds-sap-btp-extension-generators.json"},{"ref":"content:sap-tech-bytes-adding-service-implementation-to-an-sap-hana-project","name":"SAP Tech Bytes: Adding Service Implementation to an SAP HANA Project","json":"/content/sap-tech-bytes-adding-service-implementation-to-an-sap-hana-project.json"},{"ref":"content:new-sap-cloud-application-programming-model-sample-for-many-to-many-relationship","name":"New SAP Cloud Application Programming Model Sample for Many-to-Many Relationships and Fiori Annotations","json":"/content/new-sap-cloud-application-programming-model-sample-for-many-to-many-relationship.json"},{"ref":"content:adding-a-swagger-ui-to-your-cap-nodejs-service","name":"Adding a Swagger UI to Your SAP Cloud Application Programming Model / Node.js Service","json":"/content/adding-a-swagger-ui-to-your-cap-nodejs-service.json"}],"normative_context":[]}}