Cómo arreglar archivos estáticos de Swagger-UI en Flask-Apispec

Otro error con el que me he encontrado recientemente, mientras experimento con Flask, ha sido este pequeño bug con flask-apispec. Encontré un tutorial para añadir Swagger a Flask y de esa manera documentar automáticamente toda la API. Más abajo pongo el tutorial en un link.

Si accedía a la url localhost:5000/swagger todo funcionaba según lo esperado.

El problema venía cuando queríamos ver la interfaz de usuario, localhost:5000/swagger-ui/

La terminal indicaba 404 en los assets estáticos que intentaba devolver la API.

172.17.0.1 - - [14/May/2022 07:22:28] "GET /swagger/ HTTP/1.1" 200 -
172.17.0.1 - - [14/May/2022 07:23:29] "GET /swagger-ui/ HTTP/1.1" 200 -
172.17.0.1 - - [14/May/2022 07:23:29] "GET /flask-apispec/static/swagger-ui-bundle.js HTTP/1.1" 404 -
172.17.0.1 - - [14/May/2022 07:23:29] "GET /flask-apispec/static/swagger-ui-standalone-preset.js HTTP/1.1" 404 -
172.17.0.1 - - [14/May/2022 07:23:29] "GET /flask-apispec/static/swagger-ui.css HTTP/1.1" 404 -
172.17.0.1 - - [14/May/2022 07:23:29] "GET /flask-apispec/static/swagger-ui-standalone-preset.js HTTP/1.1" 404 -

Mediante una búsqueda vemos que hay más personsas quejándose de esto. Al parecer es la última versión de flask-apispec, la 1.11.1 la que da problemas. Mirando con pip observo que justamente tengo la versión que da problemas

flask-apispec==0.11.1

Vale, pues en este punto, hacemos un downgrade a la 0.11.0 y actualizamos el requirements.txt

Reinicio la API de Flask, y ahora ya por fin, puedo ver la UI de Swaggeer

Y ya podemos seguir 😛

Links

Leave a Reply

Your email address will not be published. Required fields are marked *