I am developing a Rest-API service using Quarkus
and for this, I have added OpenAPI
(org.eclipse.microprofile.openapi) annotations to generate Swagger-UI
. My response can consist of large amounts of data, so I have used the Multi
(from SmallRye Mutiny) so as to return the response asynchronously during execution.
Everything works perfectly when a small set of data is returned to Swagger-UI
, The problem arises when a large set of data is returned to Swagger-UI then I believe the Swagger-UI waits for the complete response and the browser stops responding and crashes.
However, when I make a request to the same API endpoint using the cURL
command, I see that Mutiny Multi
is working perfectly and returning the response asynchronously and displaying it on the command line, so nothing breaks in cURL
command and everything works perfectly here, even for very large sets of returned data.
Is there something that I can do so as to avoid the crashing of Swagger-UI, like some additional open-api
annotation or some custom classes, so as to avoid the Swagger-UI waiting and displaying the results as and when they are received?
Updated things I have tried the following based on other answers:
- I found that some answers have mentioned disabling the
syntaxHighlight
so I tried the same by adding the following lines in myapplication.yml
but it is still not working and swagger-ui hangs:
quarkus:
swagger-ui:
always-include: true
syntaxHighlight:
activated: false
http:
cors: true
port: 8080
syntaxHighlight
has nothing to do with your problem. I'm not sure if Swagger-UI supports async calls. Might as well look at the OpenAPI Callbacks to see if that helps. – EveryOpenAPI Annotations
in theQuarkus
application because I am not creating any yml file, it will be created automatically based on the annotations provided on the Rest API service. – HeadlightOpenAPI
then. All our applications are onOpenAPI
so switching toAsyncAPI
would be bit difficult at this time :) – HeadlightOpenAPI
and ensure that we are using it for documentation/reference purposes, however, users can continue to use thecURL
command to generate extensive data using theAPI endpoints
. – Headlight