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 😛