Response component: Set key derived from specPath on ModelExample #10399
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.
Add a unique key for
<ModelExample>
in Responses to fix interactivity in certain casesDescription
Fixes a problem with the Model/Schema tree not responding to clicks If
defaultModelRendering
is set to"model"
and if there are multiple responses (even across paths) with the same schema structure.Motivation and Context
The OpenAPI description of an API I work with has the same response structure for some endpoints and I want the Schema tab to show by default instead of the Example Value tab. However, changing the defaultModelRendering revealed a bug: The content of the Schema tab doesn't react to clicks (cannot expand/collapse items) unless it has a globally unique schema structure it seems.
As a workaround, one can switch back and forth the tabs. Providing a unique key seems to fix the interactivity.
If you expand items for one operation and then expand another operation that has the same response structure, the same items are expanded and I couldn't find a fix for that, unfortuntely.
How Has This Been Tested?
To serve the OpenAPI description locally, I used
npm i -g http-server
andhttp-server --cors
in the directory of the JSON file.SwaggerUI-Bug-api-docs.json
dev-helpers/dev-helper-initializer.js
Then
npm run dev
and open http://localhost:3200 in a browserScreenshots (if appropriate):
Checklist
My PR contains...
src/
is unmodified: changes to documentation, CI, metadata, etc.)package.json
)My changes...
Documentation
Automated tests