Open MatanYadaev opened 1 year ago
Thanks for reporting! Would you like to send a Pull Request to address this issue? Remember to add unit tests.
Hi @mcollina, I tried implementing it and found it a bit challenging. I didn't have enough time to learn and research the project. Could you perhaps suggest a workaround to manually insert callbacks inside the generated OpenAPI Spec? Thanks for your time.
Have you tried using the transform
option?
@mcollina No, but it will work for me.
I am still wondering if there is a better workaround, that is not centralized, for example, make the transform
per route, and not in the plugin registration. Something like that:
app.route({
url: '/users',
method: 'POST',
schema: {...},
transform: (schema) => {
// Transform here
},
});
That would be awesome to implement. You should store that function somewhere in:
app.route({
url: '/users',
method: 'POST',
schema: {...},
config: {
swaggerTransform: (schema) => {
// Transform here
}
}
});
@mcollina I just tried the transform
method and it seems to not use the callbacks
property I added to the route schema.
I currently have no bandwidth to investigate.
Prerequisites
🚀 Feature Proposal
OpenAPI 3 has a concept of callbacks, which means, async responses for an endpoint.
Currently, Fastify Swagger doesn't support this feature.
Motivation
It's part of the OpenAPI 3 specification. Many APIs use this feature.
Example
Defining the route and the schema:
Should generate this OpenAPI spec: