Comments (7)
Ah ok, thanks - I'll leave it as-is then. Hopefully Swashbuckle will get the swagger-ui fix soon and then it'll all work correctly.
from swashbuckle.aspnetcore.filters.
@Stefan-Z-Camilleri could you post your hack here or a link to a fork so others can benefit from it while we wait for swashbuckle to catch up? Thanks
from swashbuckle.aspnetcore.filters.
Ok... so some debugging later, I realize the error is apparently in Swagger-UI or I believe SwashBuckle itself (//TODO: I'll have to check the swagger spec to see who is actually wrong here
)
The examples for responses are generated as an examples
property on the response (in line with the actual Response
model that SwashBuckle uses.
If we move this example to the actual schema definition (and rename it from examples
to example
, then everyone is happy:
Giving (pardon the styling... will clean that up later)
I'm working on a fix on the same lines as you use the ISchemaRegistry
in the Request
part of the filter.
from swashbuckle.aspnetcore.filters.
This is a swagger-ui bug:
swagger-api/swagger-ui#1213
swagger-api/swagger-ui#1248
swagger-api/swagger-ui#1213
This was fixed in 3.x ... alas SwashBuckle has not upgraded to 3.x yet, bar one fork on myget by another developer.
The temporary workaround for this is to add an example schema on the fly, using an IOperationFilter
which is just for the example and modifying the schema ref on the response.
from swashbuckle.aspnetcore.filters.
Hi Stefan,
Yes I noticed the bug you're describing a few months ago, and also found the same related swagger-ui bugs as you have found. However, I didn't find a workaround as you have done - nice work.
If you want to submit a PR for your workaround then I will accept it - but for me, personally, it's not a big issue and I'm happy to wait for the swagger-ui fix to be imported into Swashbuckle.
from swashbuckle.aspnetcore.filters.
I'm not sure if I should submit a PR here @mattfrear as it is more of a hack than a fix. What I am doing is the following:
1- I fetch the schema for the type
2- I clone the schema and rename the ref to a guid
3- I inject the examples into the new schema and add it to the collection using the new guid as key
4- I set the response schema ref to the ref the new schema
I also added a little hack for Swagger's limitation in rendering arrays, I create an ExpandoObject
on the fly and add that as a schema... this is handy for example validation responses.
If you want this PR, I'll create it.. it's your call sir.
from swashbuckle.aspnetcore.filters.
I think this is fixed as of Swashbuckle 2.0 which shipped with the new swagger-ui.
from swashbuckle.aspnetcore.filters.
Related Issues (20)
- Provide string[] via param different than on a property (improve documentation) HOT 3
- Bump version of dependency Swashbuckle.AspNetCore.SwaggerGen to be compatible with recent Swashbuckle versions HOT 4
- Multiple responses not showing in Swagger UI
- SwaggerRequestExample does not generate examples HOT 1
- Add support for OpenAPI SpecificationExtensions to the SwaggerExample.Create method HOT 5
- FormatterNotFoundException for text/csv upgrading to 7.0.6 HOT 10
- SecurityRequirementsOperationFilter<T> looks for attributes in the method DeclaringType instead of ReflectedType HOT 1
- SecurityRequirementsOperationFilter doesnt work with MinimalAPIs HOT 6
- Swashbuckle.AspNetCore.Filters.Abstractions (>= 7.0.7) not published HOT 3
- Using Registered Services in HttpContext that is Used During Example Generation HOT 6
- Unoptimized assembly detected: 'Swashbuckle.AspNetCore.Filters.dll' HOT 2
- IAsyncEnumerable serializer HOT 3
- Is Swashbuckle.AspNetCore.Examples still required to be used together with Filters package? HOT 2
- Generating examples for abstract request type HOT 4
- Minimal Api returns examples in Pascal case with no option to change HOT 3
- swagger started to throw exception that there is no xml output formatter, which I don't need, but after adding it all responses become in xml HOT 4
- How to properly wire up generic versions of AppendAuthorizeToSummaryOperationFilter<T> and SecurityRequirementsOperationFilter<T>? HOT 1
- SwaggerResponseExample override example xml comments irrelevant to status code HOT 8
- example tag for swagger will not be display in my project if the request class is located in another project or class library HOT 4
- swashbuckle.aspnetcore.filters is missing NuGet package README file HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swashbuckle.aspnetcore.filters.