- Term
Validation.AllowedValues
can be applied to all (primitive) types
- Nullable function parameters no longer get a funny format and a wrong type
- Support SAP OData V2 annotations
label
andquickinfo
on properties, andlabel
on entity types and parameters
- Action or function returning a primitive type returns a
value
wrapper
- OpenAPI 3.1.x: use
examples
in Schema Objects instead of the deprecatedexample
- OData V2 type
Edm.Binary
is base64-encoded, not base64url
- OData V2 type
Edm.Time
now supported
- Command-line option
--keep
(short-k
) to specify which root resources (entity sets, singletons, action imports, function imports) to keep.- Paths for the root resources are kept, as are paths to contained entities and bound actions and functions.
- Types referenced by the (return) type of root resources via structural properties or containment navigation properties are also kept.
- Non-containment navigation properties to entity types not kept are changed to use a generic stub object type without properties.
- Deep paths to stubbed entity types are omitted.
- The
/$batch
resource is omitted.
- Action/function imports referencing unknown actions/functions are ignored
- Complex types were sometimes wrongly colored in diagrams
- Core.ComputedDefaultValue means property is not required on create
- OData V2 EntitySet elements may have Documentation child elements
- Add cli support for maximum level of containment navigation properties using
--levels
- Reduced default maximum level of containment navigation properties from 5 to 4
- Inheritance across schemas is now correctly processed
- Annotations for model elements on other schemas are now correctly processed
- Edm.Decimal with floating scale and precision 34 uses the newly registered OpenAPI format
decimal128
- Edm.Binary and Edm.Stream in OpenAPI 3.1 use
contentEncoding
with a value ofbase64url
.
- Refactored code without functional changes, added
exports
inpackage.json
to prevent unintended use of package-internal modules
- Add cli support for a default title if none is annotated using
--title
- Add cli support for a default description if none is annotated using
--description
, works with diagram
- Path templates for decimal key properties in parentheses now correctly do not have the single quotes
- Support to skip the
$batch
path using the CLI parameter--skipBatchPath
, it will skip the generation always
- Support for
FilterSegmentSupported
property ofUpdateRestrictions
andDeleteRestrictions
- Support for OData V2
- Use stringifyStream for generating JSON
- Dynamic capabilities using
Path=
(XML) or$Path
(JSON) are now treated astrue
- Define operation-specific HTTP error response status codes with descriptions via
ErrorResponses
property of certain annotations
- Option
-o
/--openapi-version
to set the OpenAPI version - version will be used foropenapi
output property without checks. - Support for OpenAPI version 3.1.0.
- Recognize namespace-qualified annotations without vocabulary reference
- Schema for custom headers and custom query options with annotation
JSON.Schema
. - Schema for action/function parameters with annotation
JSON.Schema
.
Capabilities.UpdateMethod
to use for examplePUT
instead ofPATCH
.
- Custom headers and custom query options, see example
custom-parameters.xml
and its outputcustom-parameters.openapi3.json
.
- Path templates for function parameters in parentheses within the path part now exclude the single quotes that are required for e.g.
Edm.String
values. Instead the quotes have to be provided in the parameter value. This "breaking" change is necessary to allow null values and empty string values as function parameters.
- Non-trivial action and function import parameters are now depicted in the diagram.
- External annotations targeting a function overload with collection-valued parameters are now correctly recognized.
- Schemas for create allow linking to existing entities for single-valued non-nullable non-containment navigation properties.
- Paths for bound actions and functions only on entity sets, singletons, and containment navigation properties.
-
Schema Objects for
-create
and-update
only advertise "deep" insert/update for containment navigation properties. Non-containment navigation properties are no longer mentioned.Note: all Schema Objects for structured types implicitly allow additional properties, so arbitrary "deep" requests are still allowed.