Open nioncode opened 3 months ago
@nioncode If you want to change the endpoint order of the swagger, you can change the default behavior by setting the SWAGGER_CONFIG
.
from flask_openapi3 import OpenAPI
app = OpenAPI(__name__)
app.config["SWAGGER_CONFIG"] = {
"operationsSorter":"method"
}
operationsSorter | Unavailable | Function=(a => a). Apply a sort to the operation list of each API. It can be 'alpha' (sort by paths alphanumerically), 'method' (sort by HTTP method) or a function (see Array.prototype.sort() to know how sort function works). Default is the order returned by the server unchanged.
Sorry for my late response. Is there a similar flag to control the redoc API?
I found out that the order of the endpoints is actually how they are in our python code in the generated api.json
when generating it via flask openapi -o api.json
, so I guess it is not the responsibility of flask-openapi3 to sort the endpoints, but of the tool that generates the redoc API afterwards.
Is there a way to modify the order of the endpoints? Currently it seems they are grouped by tags and then sorted alphabetically by their path, which results in non-intuitive ordering (at least in our use case).
Assume we have the endpoints:
Naturally, we'd like to see
/start
before/finish
in the documentation, but currently these are reversed.It would be great if we could provide a custom name used for sorting, e.g. something like:
It would also be possible by using a simple integer for the sort order, but I think having a string and then keep using the alphabetical sorting order allows more customization and is less brittle when adding a new function, since we could also create some kind of subgroups between requests to order some requests relative to each other without impacting global order, e.g.:
Does something like this maybe already exist?