Create payload for entity type indirectly related to itself#334
Draft
HeikoTheissen wants to merge 3 commits intomainfrom
Draft
Create payload for entity type indirectly related to itself#334HeikoTheissen wants to merge 3 commits intomainfrom
HeikoTheissen wants to merge 3 commits intomainfrom
Conversation
Contributor
Author
This is true for this Swagger UI generated from the OpenAPI description. But in this Swagger UI generated from the Swagger description, you can only expand "A (for create)" > "B (for create)" > "https://raw.githubusercontent.com/oasis-tcs/odata-openapi/refs/heads/infinite-recursion/tools/tests/A-B-A.swagger.json#/definitions/ABA.A-create". The petstore-internal conversion OpenAPI-to-Swagger differs from the conversion performed by the tool in this repo. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This Swagger UI displays a create payload for entity type A, which has a navigation property to entity type B, which has a navigation property to entity type A.
In the "Schema" view, you can expand "A (for create)" > "B (for create)" > "A (for create)" > ... ad infinitum, but in the "Example Value", the inner A is misleadingly represented as a "string".
Is this the way Swagger constructs example values for such potentially infinite nestings?
(See also https://stackoverflow.com/questions/79655654.)
Addendum: The answer given on StackOverflow confirms that this cannot be solved without giving up the reuse of schemas in the OpenAPI definition: Different kinds of schemas for B must be used for
In a schema of the first kind, all related entities are represented with an
examplevalue of{}. In a schema of the second kind, related entities are represented by a$refto a schema of the first kind.