WSGI - Flask, Django ve Daha Fazlasını ReadyAPI ile Kullanma¶
WSGI uygulamalarını Sub Applications - Mounts, Behind a Proxy bölümlerinde gördüğünüz gibi bağlayabilirsiniz.
Bunun için WSGIMiddleware ile Flask, Django vb. WSGI uygulamanızı sarmalayabilir ve ReadyAPI'ya bağlayabilirsiniz.
WSGIMiddleware Kullanımı¶
WSGIMiddleware'ı projenize dahil edin.
Ardından WSGI (örneğin Flask) uygulamanızı middleware ile sarmalayın.
Son olarak da bir yol altında bağlama işlemini gerçekleştirin.
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))
Kontrol Edelim¶
Artık /v1/ yolunun altındaki her istek Flask uygulaması tarafından işlenecektir.
Geri kalanı ise ReadyAPI tarafından işlenecektir.
Eğer uygulamanızı çalıştırıp http://localhost:8000/v1/ adresine giderseniz, Flask'tan gelen yanıtı göreceksiniz:
Hello, World from Flask!
Eğer http://localhost:8000/v2/ adresine giderseniz, ReadyAPI'dan gelen yanıtı göreceksiniz:
{
"message": "Hello World"
}