Saltar a contenido

Incluyendo WSGI - Flask, Django, otros

Puedes montar aplicaciones WSGI como viste con Sub Aplicaciones - Mounts, Detrás de un Proxy.

Para eso, puedes usar WSGIMiddleware y usarlo para envolver tu aplicación WSGI, por ejemplo, Flask, Django, etc.

Usando WSGIMiddleware

Necesitas importar WSGIMiddleware.

Luego envuelve la aplicación WSGI (p. ej., Flask) con el middleware.

Y luego móntala bajo un path.

from flask import Flask, request
from markupsafe import escape
from readyapi import ReadyAPI
from readyapi.middleware.wsgi import WSGIMiddleware

flask_app = Flask(__name__)


@flask_app.route("/")
def flask_main():
    name = request.args.get("name", "World")
    return f"Hello, {escape(name)} from Flask!"


app = ReadyAPI()


@app.get("/v2")
def read_main():
    return {"message": "Hello World"}


app.mount("/v1", WSGIMiddleware(flask_app))

Revisa

Ahora, cada request bajo el path /v1/ será manejado por la aplicación Flask.

Y el resto será manejado por ReadyAPI.

Si lo ejecutas y vas a http://localhost:8000/v1/ verás el response de Flask:

Hello, World from Flask!

Y si vas a http://localhost:8000/v2 verás el response de ReadyAPI:

{
    "message": "Hello World"
}