-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Specification Document Splitting Clarification #463
Comments
I wouldn't say that the MP OpenAPI specification doesn't support splitting, but it depends on exactly what use-case you're looking for. For example, if you want a way for the MP OpenAPI compatible platform to produce split output, perhaps with all of the schemas in one file and the paths/operations in another file, then you are correct that is not supported. However, I don't see why you couldn't use existing annotations and also the static file support to insert I can imagine wanting to package applications by bundling domain java beans into a re-usable JAR library that also includes an In any case, can you expand on what you're specifically trying to do? The linked issue seems to describe a use-case where you want to include multiple static openapi YAML files in the deployment and be able to have references to them. Is that it? |
To add to @EricWittmann's comment, splitting should be supported by the spec using |
@EricWittmann: Your imagination is actually just this what I need, to have a re-usable JAR library with the openapi.yaml and the java beans defined as JSON Schemas. Yes I would like to include some openapi YAML files into a main openapi YAML file by some reference. Actually with OL this does not work. I also tried the hint from @MikeEdgar and using the following structure: with the following code in the openapi.yaml
but this still gives me the following OL message: [INFO] - Message: The "problem/problem.yaml#/components/schemas/InternalProblem" value is an invalid reference, Location: #/paths/ |
@igbluz - it looks as though OL requires relative |
@MikeEdgar This is just validation code within OL that outputs informational data to the logs... it does not affect the model that is generated. So, if the SmallRye implementation correctly handles references, then the model generated by the |
@scottcurtis2605 If I undestand correctly there will be no support for splitting the OpenAPI document across multiple yaml files on the MP Open API 2.0 level and therefore also no support for OL, correct? So I will have to use one |
If the message from OL is only a warning, I still think should work fine. The key is putting the separate file in an accessible location and using an absolute path in the ref. |
@igbluz Yes you are correct. As of the initial release for OL |
@MikeEdgar I am not convinced that we can claim that document splitting is supported as long as the user follows the caveats that you have outlined, i.e., the referenced files are put in an accessible location and absolute references are used. My understanding of what @igbluz is trying to achieve is that the referenced files should be packaged along with the implementation classes, i.e., resource class files and the YAML document contained in the same JAR file. This JAR is then packaged in the relevant WAR and the I believe that it is worth putting more thought into this scenario in a future version of the MP OpenAPI specification and providing a clearer definition of what is and is not supported by MP OpenAPI. |
@msmiths - I absolutely agree with you. I think this comes down to defining support for split OpenAPI files and support for generating split files. My earlier comments were intended to help get it working in the current state environment. |
Make sure graphviz is available on build
Currently, the Location and formats section of the MP OpenAPI specification reads as follows:
Here, the specification states that vendors are only required to retrieve a single document, which contrasts with the OpenAPI specification, which states the following:
From local tests, it would seem that splitting the OpenAPI document across multiple files, as permitted by the OpenAPI specification, is not supported within MP OpenAPI implementations. If this is the case, the MP OpenAPI specification is a little vague on whether splitting is permitted, as the MP specification states that vendors are only required to fetch a single document:
This stems from an issue raised against Open Liberty #OpenLiberty/open-liberty#15428. This was further tested with Open Liberty implementation of
2.0
which consumes SmallRye, which displayed the same behaviour as described in the issue.If splitting is not supported by MP OpenAPI, I believe we should update the specification to clarify and reflect this.
The text was updated successfully, but these errors were encountered: