Skip to content

oigonzalezp2024/petstore3-server-python-swagger

Repository files navigation

Crear un server con Swagger

Crea una carpeta en tu escritorio que se llame swagger.
En ella vamos a guardar todo lo que tenga que ver con este ejercicio.

Entrar a:

https://editor.swagger.io/

alt text

Si tienes un proyecto en mente, debes modificar la configuración Swagger, pero para que tengas una idea general, vamos a dejar el código del servidor sin modificar para generar un server. Una vez ya lo hayas hecho se te facilitará hacerlo para tus propias APPs.

En el menu superior están las siguientes opciones:

  • File
  • Edit
  • Generate Server
  • Generate Client
  • About

En este caso vas a generar un servidor en python, asi que dale click a Generate Server y elige python-fast.

alt text

Automaticamente se descargará un proyecto comprimido, que debes guardar en la carpeta swagger que creamos en el escritorio.

alt text

Descomprime esta carpeta; entra en python-flask-server.
Se mostrará como sigue:

alt text

Sube el proyecto a tu github, desde ahora, para que puedas hacer pruebas controladas de tu experiencia de aprendizaje. Una vez hayas cargado el proyecto en github, descargarlo con git clone. Y pasa a describir la experiencia de manera puntual, como de costumbre. Luego, sigue los pasos del README.md que fue generado. (En este proyecto README.md ha sido cambiado de nombre a README_SWAGGER.md).

Sigue los pasos:

python -m venv env
./env/Scripts/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m swagger_server

Se presentan errores:

alt text

Gestión de errores

Solución encontrada en foros de github:

alt text

swagger-api/swagger-codegen#12278

De acuerdo a la solución de @rlinke:

Hay que Modificar el requirements.txt.
Yo prefiero crear un requirements nuevo con otro nombre: requirementsIssues12278.txt

Ejecuta lo siguiente:

deactivate
rm -R env
python -m venv env
./env/Scripts/activate
python -m pip install --upgrade pip
pip install -r requirementsIssues12278.txt
python -m swagger_server

Abre tu navegador hasta aquí:

http://localhost:8080/v2/ui/

Si todo va bien te debe aparecer como sigue:

alt text

Si revisas la barra de menú superior, de color verde, ves un menu que dice Authorize. Dale click. Te aparecerá esto:

alt text

Revisando detenidamente, te darás cuenta que no estará consultando tu servidor local (localhost:8080)

alt text

Debería verse así:

alt text

Para solucionar esto debes hacer lo siguiente:

Salir de la prueba:

CTRL+C >>> en la consola donde tengamos corriendo el servidor.

Ir al siguiente archivo: ./swagger_server/swagger/swagger.yaml

alt text

Estando el archivo swagger.yaml remplaza todo

petstore.swagger.io

con

localhost:8080

Vuelve a correr el proyecto.

python -m swagger_server

Cuando ensayes un endpoint debe aparecer la respuesta:

"do some magic!"

alt text

Con ello, el sistema te dice que ya es hora de empezar a desarrollar los endpoint de la API.