Ana içeriğe geç

Alt Uygulamalar - Mount İşlemi

🌐 Translation by AI and humans

This translation was made by AI guided by humans. 🤝

It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖

You can improve this translation by helping us guide the AI LLM better.

English version

Kendi bağımsız OpenAPI şemaları ve kendi dokümantasyon arayüzleri olan iki bağımsız FastAPI uygulamasına ihtiyacınız varsa, bir ana uygulama oluşturup bir (veya daha fazla) alt uygulamayı "mount" edebilirsiniz.

Bir FastAPI uygulamasını mount etmek

"Mount" etmek, belirli bir path altında tamamen "bağımsız" bir uygulamayı eklemek anlamına gelir. Ardından o path’in altındaki her şeyi, alt uygulamada tanımlanan path operation’lar ile o alt uygulama yönetir.

Üst seviye uygulama

Önce ana, üst seviye FastAPI uygulamasını ve onun path operation’larını oluşturun:

from fastapi import FastAPI

app = FastAPI()


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


subapi = FastAPI()


@subapi.get("/sub")
def read_sub():
    return {"message": "Hello World from sub API"}


app.mount("/subapi", subapi)

Alt uygulama

Sonra alt uygulamanızı ve onun path operation’larını oluşturun.

Bu alt uygulama da standart bir FastAPI uygulamasıdır; ancak "mount" edilecek olan budur:

from fastapi import FastAPI

app = FastAPI()


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


subapi = FastAPI()


@subapi.get("/sub")
def read_sub():
    return {"message": "Hello World from sub API"}


app.mount("/subapi", subapi)

Alt uygulamayı mount edin

Üst seviye uygulamanızda (app), alt uygulama subapi’yi mount edin.

Bu örnekte /subapi path’ine mount edilecektir:

from fastapi import FastAPI

app = FastAPI()


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


subapi = FastAPI()


@subapi.get("/sub")
def read_sub():
    return {"message": "Hello World from sub API"}


app.mount("/subapi", subapi)

Otomatik API dokümanlarını kontrol edin

Şimdi dosyanızla birlikte fastapi komutunu çalıştırın:

$ fastapi dev main.py

<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Ardından http://127.0.0.1:8000/docs adresinden dokümanları açın.

Ana uygulama için otomatik API dokümanlarını göreceksiniz; yalnızca onun kendi path operation’larını içerir:

Sonra alt uygulamanın dokümanlarını http://127.0.0.1:8000/subapi/docs adresinden açın.

Alt uygulama için otomatik API dokümanlarını göreceksiniz; yalnızca onun kendi path operation’larını içerir ve hepsi doğru alt-path öneki /subapi altında yer alır:

İki arayüzden herhangi biriyle etkileşime girmeyi denerseniz doğru şekilde çalıştıklarını görürsünüz; çünkü tarayıcı her bir uygulama ya da alt uygulama ile ayrı ayrı iletişim kurabilir.

Teknik Detaylar: root_path

Yukarıda anlatıldığı gibi bir alt uygulamayı mount ettiğinizde FastAPI, ASGI spesifikasyonundaki root_path adlı bir mekanizmayı kullanarak alt uygulamaya mount path’ini iletmeyi otomatik olarak yönetir.

Bu sayede alt uygulama, dokümantasyon arayüzü için o path önekini kullanması gerektiğini bilir.

Ayrıca alt uygulamanın kendi mount edilmiş alt uygulamaları da olabilir; FastAPI tüm bu root_path’leri otomatik olarak yönettiği için her şey doğru şekilde çalışır.

root_path hakkında daha fazlasını ve bunu açıkça nasıl kullanacağınızı Behind a Proxy bölümünde öğreneceksiniz.