This script converts an OData Version 2.0, 3.0, 4.0, or 4.01 CSDL XML or CSDL JSON ($metadata
) document into an OpenAPI 3.0.x or OpenAPI 3.1.0 JSON document.
It's a pure JavaScript implementation, depending only on odata-csdl
, which in turn depends on sax js
.
To install globally type
npm install -g odata-openapi
Assuming you installed the script globally, and your XML metadata file is MyMetadata.xml
, then
odata-openapi3 MyMetadata.xml
will create MyMetadata.openapi3.json
next to it.
Just type
odata-openapi3 -h
to get usage hints
Usage: odata-openapi3 <options> <source files>
Options:
--basePath base path (default: /service-root)
--description default description if none is annotated
-d, --diagram include YUML diagram
-h, --help show this info
--host host (default: localhost)
-k, --keep root resource to keep (can be specified multiple times with one name each)
--levels maximum number of path segments
-o, --openapi-version 3.0.0 to 3.0.3 or 3.1.0 (default: 3.0.2)
-p, --pretty pretty-print JSON result
--scheme scheme (default: http)
--skipBatchPath skips the generation of the $batch path, (default: false)
-t, --target target file (default: source file basename + .openapi3.json)
--title default title if none is annotated
The mapping can be fine-tuned via annotations in the CSDL ($metadata
) XML documents.