3.3 KiB
Alt Uygulamalar - Mount İşlemi
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:
{* ../../docs_src/sub_applications/tutorial001_py39.py hl[3, 6:8] *}
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:
{* ../../docs_src/sub_applications/tutorial001_py39.py hl[11, 14:16] *}
Alt uygulamayı mount edin
Üst seviye uygulamanızda (app), alt uygulama subapi’yi mount edin.
Bu örnekte /subapi path’ine mount edilecektir:
{* ../../docs_src/sub_applications/tutorial001_py39.py hl[11, 19] *}
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{.internal-link target=_blank} bölümünde öğreneceksiniz.