I'm digging here around trying to find a solution, how to merge several OpenApi v3 component definitions in one file.
Let's imagine a situation:
blueprint.v1.yaml
).
Usually, I use swagger-cli
to merge all $ref
dependencies, but now it's not a case, because I can not refer to the whole components/schemas object list
swagger-cli bundle
tool.So, the question is - how to reuse already defined component blocks (files called components.v1.yaml) in my blueprint.v1.yaml
file?
P.S. Every components.v1.yaml
looks like this:
And a, for ex, location-create-single.v1.yaml
path definition is shown on picture below. Mention, that all $ref
referes to components.v1.yaml
files.
OpenAPI 3.0 is the latest version of the specification. The Swagger tools, which are supported by SmartBear Software, are among the most popular tools for implementing the OpenAPI Specification, and will continue to maintain the Swagger name (Swagger Editor, Swagger UI, SwaggerHub, etc.)
With OpenAPI 3.0, you can reference a definition hosted on any location. It can be the same server, or another one – for example, GitHub, SwaggerHub, and so on. To reference a definition, use the $ref keyword: $ref: 'reference to definition'
Document SyntaxAn OpenAPI document is a text file, commonly called openapi. json or openapi. yaml , representing a JSON object, in either JSON or YAML format. This file is called the root document and it can be split into multiple JSON or YAML files, for clarity.
The operationId section of the Paths and Operators page in the OpenAPI Guide describes this property as: operationId is an optional unique string used to identify an operation. If provided, these IDs must be unique among all operations described in your API.
I don't think there is a "native" OpenAPI solution to your problem. People are discussing for a while about OpenAPI overlays/extends/merges. There is currently (2020-04-24) not any consensus about this topic.
Although you could implement your own tool or use an existing one to preprocess your blueprint.v1.yaml
and generate a "merged OAS".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With