Browse Source

🌐 Update translations for tr (update-outdated)

pull/15172/head
github-actions[bot] 4 months ago
parent
commit
05a97844f6
  1. 8
      docs/tr/docs/advanced/async-tests.md
  2. 6
      docs/tr/docs/advanced/events.md
  3. 10
      docs/tr/docs/advanced/middleware.md
  4. 2
      docs/tr/docs/advanced/openapi-webhooks.md
  5. 6
      docs/tr/docs/advanced/path-operation-advanced-configuration.md
  6. 16
      docs/tr/docs/advanced/settings.md
  7. 8
      docs/tr/docs/advanced/templates.md
  8. 2
      docs/tr/docs/advanced/testing-websockets.md
  9. 30
      docs/tr/docs/advanced/websockets.md
  10. 10
      docs/tr/docs/advanced/wsgi.md

8
docs/tr/docs/advanced/async-tests.md

@ -16,11 +16,11 @@ Testlerimizde asenkron fonksiyonlar çağırmak istiyorsak, test fonksiyonlarım
`TestClient`, standart pytest kullanarak normal `def` test fonksiyonlarınızın içinden asenkron FastAPI uygulamasını çağırmak için içeride bazı “sihirli” işlemler yapar. Ancak bu sihir, onu asenkron fonksiyonların içinde kullandığımızda artık çalışmaz. Testlerimizi asenkron çalıştırdığımızda, test fonksiyonlarımızın içinde `TestClient` kullanamayız. `TestClient`, standart pytest kullanarak normal `def` test fonksiyonlarınızın içinden asenkron FastAPI uygulamasını çağırmak için içeride bazı “sihirli” işlemler yapar. Ancak bu sihir, onu asenkron fonksiyonların içinde kullandığımızda artık çalışmaz. Testlerimizi asenkron çalıştırdığımızda, test fonksiyonlarımızın içinde `TestClient` kullanamayız.
`TestClient`, <a href="https://www.python-httpx.org" class="external-link" target="_blank">HTTPX</a> tabanlıdır ve neyse ki API'yi test etmek için HTTPX'i doğrudan kullanabiliriz. `TestClient`, [HTTPX](https://www.python-httpx.org) tabanlıdır ve neyse ki API'yi test etmek için HTTPX'i doğrudan kullanabiliriz.
## Örnek { #example } ## Örnek { #example }
Basit bir örnek için, [Bigger Applications](../tutorial/bigger-applications.md){.internal-link target=_blank} ve [Testing](../tutorial/testing.md){.internal-link target=_blank} bölümlerinde anlatılana benzer bir dosya yapısı düşünelim: Basit bir örnek için, [Daha Büyük Uygulamalar](../tutorial/bigger-applications.md) ve [Test Etme](../tutorial/testing.md) bölümlerinde anlatılana benzer bir dosya yapısı düşünelim:
``` ```
. .
@ -84,7 +84,7 @@ Yeni `AsyncClient` ile async/await kullandığımızı unutmayın; request asenk
/// warning | Uyarı /// warning | Uyarı
Uygulamanız lifespan event'lerine dayanıyorsa, `AsyncClient` bu event'leri tetiklemez. Tetiklendiklerinden emin olmak için <a href="https://github.com/florimondmanca/asgi-lifespan#usage" class="external-link" target="_blank">florimondmanca/asgi-lifespan</a> paketindeki `LifespanManager`'ı kullanın. Uygulamanız lifespan event'lerine dayanıyorsa, `AsyncClient` bu event'leri tetiklemez. Tetiklendiklerinden emin olmak için [florimondmanca/asgi-lifespan](https://github.com/florimondmanca/asgi-lifespan#usage) paketindeki `LifespanManager`'ı kullanın.
/// ///
@ -94,6 +94,6 @@ Test fonksiyonu artık asenkron olduğundan, testlerinizde FastAPI uygulamanıza
/// tip | İpucu /// tip | İpucu
Testlerinize asenkron fonksiyon çağrıları entegre ederken `RuntimeError: Task attached to a different loop` hatasıyla karşılaşırsanız (ör. <a href="https://stackoverflow.com/questions/41584243/runtimeerror-task-attached-to-a-different-loop" class="external-link" target="_blank">MongoDB'nin MotorClient</a> kullanımı), event loop gerektiren nesneleri yalnızca async fonksiyonların içinde oluşturmanız gerektiğini unutmayın; örneğin bir `@app.on_event("startup")` callback'i içinde. Testlerinize asenkron fonksiyon çağrıları entegre ederken `RuntimeError: Task attached to a different loop` hatasıyla karşılaşırsanız (ör. [MongoDB'nin MotorClient](https://stackoverflow.com/questions/41584243/runtimeerror-task-attached-to-a-different-loop) kullanımı), event loop gerektiren nesneleri yalnızca async fonksiyonların içinde oluşturmanız gerektiğini unutmayın; örneğin bir `@app.on_event("startup")` callback'i içinde.
/// ///

6
docs/tr/docs/advanced/events.md

@ -150,11 +150,11 @@ Bu nedenle artık bunun yerine, yukarıda açıklandığı gibi `lifespan` kulla
Meraklı nerd’ler için küçük bir teknik detay. 🤓 Meraklı nerd’ler için küçük bir teknik detay. 🤓
Altta, ASGI teknik spesifikasyonunda bu, <a href="https://asgi.readthedocs.io/en/latest/specs/lifespan.html" class="external-link" target="_blank">Lifespan Protokolü</a>’nün bir parçasıdır ve `startup` ile `shutdown` adında event’ler tanımlar. Altta, ASGI teknik spesifikasyonunda bu, [Lifespan Protokolü](https://asgi.readthedocs.io/en/latest/specs/lifespan.html)’nün bir parçasıdır ve `startup` ile `shutdown` adında event’ler tanımlar.
/// info | Bilgi /// info | Bilgi
Starlette `lifespan` handler’ları hakkında daha fazlasını <a href="https://www.starlette.dev/lifespan/" class="external-link" target="_blank">Starlette Lifespan dokümanları</a> içinde okuyabilirsiniz. Starlette `lifespan` handler’ları hakkında daha fazlasını [Starlette Lifespan dokümanları](https://www.starlette.dev/lifespan/) içinde okuyabilirsiniz.
Ayrıca kodunuzun başka bölgelerinde de kullanılabilecek lifespan state’i nasıl yöneteceğinizi de kapsar. Ayrıca kodunuzun başka bölgelerinde de kullanılabilecek lifespan state’i nasıl yöneteceğinizi de kapsar.
@ -162,4 +162,4 @@ Ayrıca kodunuzun başka bölgelerinde de kullanılabilecek lifespan state’i n
## Alt Uygulamalar { #sub-applications } ## Alt Uygulamalar { #sub-applications }
🚨 Unutmayın: Bu lifespan event’leri (`startup` ve `shutdown`) yalnızca ana uygulama için çalıştırılır; [Alt Uygulamalar - Mounts](sub-applications.md){.internal-link target=_blank} için çalıştırılmaz. 🚨 Unutmayın: Bu lifespan event’leri (`startup` ve `shutdown`) yalnızca ana uygulama için çalıştırılır; [Alt Uygulamalar - Mounts](sub-applications.md) için çalıştırılmaz.

10
docs/tr/docs/advanced/middleware.md

@ -1,8 +1,8 @@
# İleri Seviye Middleware { #advanced-middleware } # İleri Seviye Middleware { #advanced-middleware }
Ana tutorial'da uygulamanıza [Özel Middleware](../tutorial/middleware.md){.internal-link target=_blank} eklemeyi gördünüz. Ana tutorial'da uygulamanıza [Özel Middleware](../tutorial/middleware.md) eklemeyi gördünüz.
Ardından [`CORSMiddleware` ile CORS'u yönetmeyi](../tutorial/cors.md){.internal-link target=_blank} de okudunuz. Ardından [`CORSMiddleware` ile CORS'u yönetmeyi](../tutorial/cors.md) de okudunuz.
Bu bölümde diğer middleware'leri nasıl kullanacağımıza bakacağız. Bu bölümde diğer middleware'leri nasıl kullanacağımıza bakacağız.
@ -91,7 +91,7 @@ Başka birçok ASGI middleware'i vardır.
Örneğin: Örneğin:
* <a href="https://github.com/encode/uvicorn/blob/master/uvicorn/middleware/proxy_headers.py" class="external-link" target="_blank">Uvicorn'un `ProxyHeadersMiddleware`'i</a> * [Uvicorn'un `ProxyHeadersMiddleware`'i](https://github.com/encode/uvicorn/blob/master/uvicorn/middleware/proxy_headers.py)
* <a href="https://github.com/florimondmanca/msgpack-asgi" class="external-link" target="_blank">MessagePack</a> * [MessagePack](https://github.com/florimondmanca/msgpack-asgi)
Diğer mevcut middleware'leri görmek için <a href="https://www.starlette.dev/middleware/" class="external-link" target="_blank">Starlette'in Middleware dokümanlarına</a> ve <a href="https://github.com/florimondmanca/awesome-asgi" class="external-link" target="_blank">ASGI Awesome List</a> listesine bakın. Diğer mevcut middleware'leri görmek için [Starlette'in Middleware dokümanlarına](https://www.starlette.dev/middleware/) ve [ASGI Awesome List](https://github.com/florimondmanca/awesome-asgi) listesine bakın.

2
docs/tr/docs/advanced/openapi-webhooks.md

@ -48,7 +48,7 @@ Bunun nedeni, webhook request'ini almak istedikleri gerçek **URL path**'i **kul
### Dokümanları kontrol edin { #check-the-docs } ### Dokümanları kontrol edin { #check-the-docs }
Şimdi uygulamanızı başlatıp <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a> adresine gidin. Şimdi uygulamanızı başlatıp [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) adresine gidin.
Dokümanlarınızda normal *path operation*'ları ve artık bazı **webhook**'ları da göreceksiniz: Dokümanlarınızda normal *path operation*'ları ve artık bazı **webhook**'ları da göreceksiniz:

6
docs/tr/docs/advanced/path-operation-advanced-configuration.md

@ -60,7 +60,7 @@ Bu, bir *path operation*’ın ana response’u ile ilgili metadata’yı tanım
Ek response’ları; modelleri, status code’ları vb. ile birlikte ayrıca da tanımlayabilirsiniz. Ek response’ları; modelleri, status code’ları vb. ile birlikte ayrıca da tanımlayabilirsiniz.
Dokümantasyonda bununla ilgili ayrı bir bölüm var; [OpenAPI’de Ek Responses](additional-responses.md){.internal-link target=_blank} sayfasından okuyabilirsiniz. Dokümantasyonda bununla ilgili ayrı bir bölüm var; [OpenAPI’de Ek Responses](additional-responses.md) sayfasından okuyabilirsiniz.
## OpenAPI Extra { #openapi-extra } ## OpenAPI Extra { #openapi-extra }
@ -68,7 +68,7 @@ Uygulamanızda bir *path operation* tanımladığınızda, **FastAPI** OpenAPI
/// note | Teknik Detaylar /// note | Teknik Detaylar
OpenAPI spesifikasyonunda buna <a href="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object" class="external-link" target="_blank">Operation Nesnesi</a> denir. OpenAPI spesifikasyonunda buna [Operation Nesnesi](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object) denir.
/// ///
@ -82,7 +82,7 @@ Bu *path operation*’a özel OpenAPI şeması normalde **FastAPI** tarafından
Bu, düşük seviyeli bir genişletme noktasıdır. Bu, düşük seviyeli bir genişletme noktasıdır.
Yalnızca ek response’lar tanımlamanız gerekiyorsa, bunu yapmanın daha pratik yolu [OpenAPI’de Ek Responses](additional-responses.md){.internal-link target=_blank} kullanmaktır. Yalnızca ek response’lar tanımlamanız gerekiyorsa, bunu yapmanın daha pratik yolu [OpenAPI’de Ek Responses](additional-responses.md) kullanmaktır.
/// ///

16
docs/tr/docs/advanced/settings.md

@ -8,7 +8,7 @@ Bu nedenle bunları, uygulama tarafından okunan environment variable'lar ile sa
/// tip | İpucu /// tip | İpucu
Environment variable'ları anlamak için [Environment Variables](../environment-variables.md){.internal-link target=_blank} dokümanını okuyabilirsiniz. Environment variable'ları anlamak için [Ortam Değişkenleri](../environment-variables.md) dokümanını okuyabilirsiniz.
/// ///
@ -20,11 +20,11 @@ Bu da, Python içinde bir environment variable'dan okunan herhangi bir değerin
## Pydantic `Settings` { #pydantic-settings } ## Pydantic `Settings` { #pydantic-settings }
Neyse ki Pydantic, environment variable'lardan gelen bu ayarları yönetmek için <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/" class="external-link" target="_blank">Pydantic: Settings management</a> ile çok iyi bir yardımcı araç sunar. Neyse ki Pydantic, environment variable'lardan gelen bu ayarları yönetmek için [Pydantic: Settings yönetimi](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) ile çok iyi bir yardımcı araç sunar.
### `pydantic-settings`'i kurun { #install-pydantic-settings } ### `pydantic-settings`'i kurun { #install-pydantic-settings }
Önce, [virtual environment](../virtual-environments.md){.internal-link target=_blank} oluşturduğunuzdan, aktive ettiğinizden emin olun ve ardından `pydantic-settings` paketini kurun: Önce, [Sanal ortam](../virtual-environments.md) oluşturduğunuzdan, aktive ettiğinizden emin olun ve ardından `pydantic-settings` paketini kurun:
<div class="termy"> <div class="termy">
@ -100,7 +100,7 @@ Böylece `admin_email` ayarı `"[email protected]"` olur.
## Ayarları başka bir module'de tutma { #settings-in-another-module } ## Ayarları başka bir module'de tutma { #settings-in-another-module }
[Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank} bölümünde gördüğünüz gibi, bu ayarları başka bir module dosyasına koyabilirsiniz. [Daha Büyük Uygulamalar - Birden Fazla Dosya](../tutorial/bigger-applications.md) bölümünde gördüğünüz gibi, bu ayarları başka bir module dosyasına koyabilirsiniz.
Örneğin `config.py` adında bir dosyanız şu şekilde olabilir: Örneğin `config.py` adında bir dosyanız şu şekilde olabilir:
@ -112,7 +112,7 @@ Ve ardından bunu `main.py` dosyasında kullanabilirsiniz:
/// tip | İpucu /// tip | İpucu
[Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank} bölümünde gördüğünüz gibi, ayrıca bir `__init__.py` dosyasına da ihtiyacınız olacak. [Daha Büyük Uygulamalar - Birden Fazla Dosya](../tutorial/bigger-applications.md) bölümünde gördüğünüz gibi, ayrıca bir `__init__.py` dosyasına da ihtiyacınız olacak.
/// ///
@ -172,7 +172,7 @@ Ancak dotenv dosyasının mutlaka bu dosya adına sahip olması gerekmez.
/// ///
Pydantic, harici bir kütüphane kullanarak bu tür dosyalardan okuma desteğine sahiptir. Daha fazlası için: <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support" class="external-link" target="_blank">Pydantic Settings: Dotenv (.env) support</a>. Pydantic, harici bir kütüphane kullanarak bu tür dosyalardan okuma desteğine sahiptir. Daha fazlası için: [Pydantic Settings: Dotenv (.env) desteği](https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support).
/// tip | İpucu /// tip | İpucu
@ -197,7 +197,7 @@ Ardından `config.py` dosyanızı şöyle güncelleyin:
/// tip | İpucu /// tip | İpucu
`model_config` attribute'u yalnızca Pydantic konfigürasyonu içindir. Daha fazlası için <a href="https://docs.pydantic.dev/latest/concepts/config/" class="external-link" target="_blank">Pydantic: Concepts: Configuration</a>. `model_config` attribute'u yalnızca Pydantic konfigürasyonu içindir. Daha fazlası için [Pydantic: Kavramlar: Konfigürasyon](https://docs.pydantic.dev/latest/concepts/config/).
/// ///
@ -291,7 +291,7 @@ Bizim `get_settings()` dependency'miz özelinde ise fonksiyon hiç argüman alma
Bu şekilde, neredeyse global bir değişken gibi davranır. Ancak bir dependency fonksiyonu kullandığı için testte kolayca override edebiliriz. Bu şekilde, neredeyse global bir değişken gibi davranır. Ancak bir dependency fonksiyonu kullandığı için testte kolayca override edebiliriz.
`@lru_cache`, Python standart kütüphanesinin bir parçası olan `functools` içindedir. Daha fazla bilgi için: <a href="https://docs.python.org/3/library/functools.html#functools.lru_cache" class="external-link" target="_blank">Python docs for `@lru_cache`</a>. `@lru_cache`, Python standart kütüphanesinin bir parçası olan `functools` içindedir. Daha fazla bilgi için: [Python dokümanları: `@lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache).
## Özet { #recap } ## Özet { #recap }

8
docs/tr/docs/advanced/templates.md

@ -8,7 +8,7 @@ Bunu kolayca yapılandırmak için, doğrudan **FastAPI** uygulamanızda kullana
## Bağımlılıkları Yükleme { #install-dependencies } ## Bağımlılıkları Yükleme { #install-dependencies }
Bir [virtual environment](../virtual-environments.md){.internal-link target=_blank} oluşturduğunuzdan, etkinleştirdiğinizden ve `jinja2`'yi yüklediğinizden emin olun: Bir [sanal ortam](../virtual-environments.md) oluşturduğunuzdan, etkinleştirdiğinizden ve `jinja2`'yi yüklediğinizden emin olun:
<div class="termy"> <div class="termy">
@ -29,7 +29,7 @@ $ pip install jinja2
{* ../../docs_src/templates/tutorial001_py310.py hl[4,11,15:18] *} {* ../../docs_src/templates/tutorial001_py310.py hl[4,11,15:18] *}
/// note /// note | Not
FastAPI 0.108.0 ve Starlette 0.29.0 öncesinde, ilk parametre `name` idi. FastAPI 0.108.0 ve Starlette 0.29.0 öncesinde, ilk parametre `name` idi.
@ -37,7 +37,7 @@ Ayrıca, daha önceki sürümlerde `request` nesnesi, Jinja2 için context için
/// ///
/// tip /// tip | İpucu
`response_class=HTMLResponse` olarak tanımlarsanız doküman arayüzü (docs UI) response'un HTML olacağını anlayabilir. `response_class=HTMLResponse` olarak tanımlarsanız doküman arayüzü (docs UI) response'un HTML olacağını anlayabilir.
@ -123,4 +123,4 @@ Ve `StaticFiles` kullandığınız için, bu CSS dosyası **FastAPI** uygulaman
## Daha fazla detay { #more-details } ## Daha fazla detay { #more-details }
Template'leri nasıl test edeceğiniz dahil daha fazla detay için <a href="https://www.starlette.dev/templates/" class="external-link" target="_blank">Starlette'in template dokümantasyonuna</a> bakın. Template'leri nasıl test edeceğiniz dahil daha fazla detay için [Starlette'in template dokümantasyonuna](https://www.starlette.dev/templates/) bakın.

2
docs/tr/docs/advanced/testing-websockets.md

@ -8,6 +8,6 @@ Bunun için `TestClient`'ı bir `with` ifadesinde kullanarak WebSocket'e bağlan
/// note | Not /// note | Not
Daha fazla detay için Starlette'in <a href="https://www.starlette.dev/testclient/#testing-websocket-sessions" class="external-link" target="_blank">WebSockets'i test etme</a> dokümantasyonuna bakın. Daha fazla detay için Starlette'in [WebSockets'i test etme](https://www.starlette.dev/testclient/#testing-websocket-sessions) dokümantasyonuna bakın.
/// ///

30
docs/tr/docs/advanced/websockets.md

@ -1,10 +1,10 @@
# WebSockets { #websockets } # WebSockets { #websockets }
**FastAPI** ile <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API" class="external-link" target="_blank">WebSockets</a> kullanabilirsiniz. **FastAPI** ile [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) kullanabilirsiniz.
## `websockets` Kurulumu { #install-websockets } ## `websockets` Kurulumu { #install-websockets }
Bir [virtual environment](../virtual-environments.md){.internal-link target=_blank} oluşturduğunuzdan, onu aktive ettiğinizden ve `websockets`'i ("WebSocket" protokolünü kullanmayı kolaylaştıran bir Python kütüphanesi) kurduğunuzdan emin olun: Bir [sanal ortam](../virtual-environments.md) oluşturduğunuzdan, onu aktive ettiğinizden ve `websockets`'i ("WebSocket" protokolünü kullanmayı kolaylaştıran bir Python kütüphanesi) kurduğunuzdan emin olun:
<div class="termy"> <div class="termy">
@ -64,19 +64,19 @@ Binary, text ve JSON verisi alıp gönderebilirsiniz.
## Deneyin { #try-it } ## Deneyin { #try-it }
Dosyanızın adı `main.py` ise uygulamanızı şu şekilde çalıştırın: Kodunuzu `main.py` dosyasına koyun ve ardından uygulamanızı çalıştırın:
<div class="termy"> <div class="termy">
```console ```console
$ fastapi dev main.py $ fastapi dev
<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) <span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
``` ```
</div> </div>
Tarayıcınızda <a href="http://127.0.0.1:8000" class="external-link" target="_blank">http://127.0.0.1:8000</a> adresini açın. Tarayıcınızda [http://127.0.0.1:8000](http://127.0.0.1:8000) adresini açın.
Şuna benzer basit bir sayfa göreceksiniz: Şuna benzer basit bir sayfa göreceksiniz:
@ -111,36 +111,36 @@ Diğer FastAPI endpoint'leri/*path operations* ile aynı şekilde çalışırlar
{* ../../docs_src/websockets_/tutorial002_an_py310.py hl[68:69,82] *} {* ../../docs_src/websockets_/tutorial002_an_py310.py hl[68:69,82] *}
/// info | Bilgi /// info
Bu bir WebSocket olduğu için `HTTPException` raise etmek pek anlamlı değildir; bunun yerine `WebSocketException` raise ederiz. Bu bir WebSocket olduğu için `HTTPException` raise etmek pek anlamlı değildir; bunun yerine `WebSocketException` raise ederiz.
<a href="https://tools.ietf.org/html/rfc6455#section-7.4.1" class="external-link" target="_blank">Spesifikasyonda tanımlanan geçerli kodlar</a> arasından bir kapatma kodu kullanabilirsiniz. [Spesifikasyonda tanımlanan geçerli kodlar](https://tools.ietf.org/html/rfc6455#section-7.4.1) arasından bir kapatma kodu kullanabilirsiniz.
/// ///
### Dependency'lerle WebSockets'i Deneyin { #try-the-websockets-with-dependencies } ### Dependency'lerle WebSockets'i Deneyin { #try-the-websockets-with-dependencies }
Dosyanızın adı `main.py` ise uygulamanızı şu şekilde çalıştırın: Uygulamanızı çalıştırın:
<div class="termy"> <div class="termy">
```console ```console
$ fastapi dev main.py $ fastapi dev
<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) <span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
``` ```
</div> </div>
Tarayıcınızda <a href="http://127.0.0.1:8000" class="external-link" target="_blank">http://127.0.0.1:8000</a> adresini açın. Tarayıcınızda [http://127.0.0.1:8000](http://127.0.0.1:8000) adresini açın.
Burada şunları ayarlayabilirsiniz: Burada şunları ayarlayabilirsiniz:
* path'te kullanılan "Item ID". * path'te kullanılan "Item ID".
* query parametresi olarak kullanılan "Token". * query parametresi olarak kullanılan "Token".
/// tip | İpucu /// tip
query'deki `token` değerinin bir dependency tarafından ele alınacağına dikkat edin. query'deki `token` değerinin bir dependency tarafından ele alınacağına dikkat edin.
@ -168,13 +168,13 @@ Bu, `WebSocketDisconnect` exception'ını raise eder ve diğer tüm client'lar
Client #1596980209979 left the chat Client #1596980209979 left the chat
``` ```
/// tip | İpucu /// tip
Yukarıdaki uygulama, birden fazla WebSocket bağlantısına mesajları nasıl yönetip broadcast edeceğinizi göstermek için minimal ve basit bir örnektir. Yukarıdaki uygulama, birden fazla WebSocket bağlantısına mesajları nasıl yönetip broadcast edeceğinizi göstermek için minimal ve basit bir örnektir.
Ancak her şey memory'de, tek bir list içinde yönetildiği için yalnızca process çalıştığı sürece ve yalnızca tek bir process ile çalışacaktır. Ancak her şey memory'de, tek bir list içinde yönetildiği için yalnızca process çalıştığı sürece ve yalnızca tek bir process ile çalışacaktır.
FastAPI ile kolay entegre olan ama Redis, PostgreSQL vb. tarafından desteklenen daha sağlam bir şeye ihtiyacınız varsa <a href="https://github.com/encode/broadcaster" class="external-link" target="_blank">encode/broadcaster</a>'a göz atın. FastAPI ile kolay entegre olan ama Redis, PostgreSQL vb. tarafından desteklenen daha sağlam bir şeye ihtiyacınız varsa [encode/broadcaster](https://github.com/encode/broadcaster)'a göz atın.
/// ///
@ -182,5 +182,5 @@ FastAPI ile kolay entegre olan ama Redis, PostgreSQL vb. tarafından desteklenen
Seçenekler hakkında daha fazlasını öğrenmek için Starlette dokümantasyonunda şunlara bakın: Seçenekler hakkında daha fazlasını öğrenmek için Starlette dokümantasyonunda şunlara bakın:
* <a href="https://www.starlette.dev/websockets/" class="external-link" target="_blank">`WebSocket` class'ı</a>. * [`WebSocket` class'ı](https://www.starlette.dev/websockets/).
* <a href="https://www.starlette.dev/endpoints/#websocketendpoint" class="external-link" target="_blank">Class tabanlı WebSocket yönetimi</a>. * [Class tabanlı WebSocket yönetimi](https://www.starlette.dev/endpoints/#websocketendpoint).

10
docs/tr/docs/advanced/wsgi.md

@ -1,12 +1,12 @@
# WSGI'yi Dahil Etme - Flask, Django ve Diğerleri { #including-wsgi-flask-django-others } # WSGI'yi Dahil Etme - Flask, Django ve Diğerleri { #including-wsgi-flask-django-others }
WSGI uygulamalarını [Alt Uygulamalar - Mount Etme](sub-applications.md){.internal-link target=_blank}, [Bir Proxy Arkasında](behind-a-proxy.md){.internal-link target=_blank} bölümlerinde gördüğünüz gibi mount edebilirsiniz. WSGI uygulamalarını [Alt Uygulamalar - Mount Etme](sub-applications.md), [Bir Proxy Arkasında](behind-a-proxy.md) bölümlerinde gördüğünüz gibi mount edebilirsiniz.
Bunun için `WSGIMiddleware`'ı kullanabilir ve bunu WSGI uygulamanızı (örneğin Flask, Django vb.) sarmalamak için kullanabilirsiniz. Bunun için `WSGIMiddleware`'ı kullanabilir ve bunu WSGI uygulamanızı (örneğin Flask, Django vb.) sarmalamak için kullanabilirsiniz.
## `WSGIMiddleware` Kullanımı { #using-wsgimiddleware } ## `WSGIMiddleware` Kullanımı { #using-wsgimiddleware }
/// info | Bilgi /// info
Bunun için `a2wsgi` kurulmalıdır; örneğin `pip install a2wsgi` ile. Bunun için `a2wsgi` kurulmalıdır; örneğin `pip install a2wsgi` ile.
@ -20,7 +20,7 @@ Ve sonra bunu bir path'in altına mount edin.
{* ../../docs_src/wsgi/tutorial001_py310.py hl[1,3,23] *} {* ../../docs_src/wsgi/tutorial001_py310.py hl[1,3,23] *}
/// note | Not /// note
Önceden, `fastapi.middleware.wsgi` içindeki `WSGIMiddleware`'ın kullanılması öneriliyordu, ancak artık kullanımdan kaldırıldı. Önceden, `fastapi.middleware.wsgi` içindeki `WSGIMiddleware`'ın kullanılması öneriliyordu, ancak artık kullanımdan kaldırıldı.
@ -36,13 +36,13 @@ Artık `/v1/` path'i altındaki her request Flask uygulaması tarafından işlen
Geri kalanı ise **FastAPI** tarafından işlenecektir. Geri kalanı ise **FastAPI** tarafından işlenecektir.
Eğer uygulamanızı çalıştırıp <a href="http://localhost:8000/v1/" class="external-link" target="_blank">http://localhost:8000/v1/</a> adresine giderseniz, Flask'tan gelen response'u göreceksiniz: Eğer uygulamanızı çalıştırıp [http://localhost:8000/v1/](http://localhost:8000/v1/) adresine giderseniz, Flask'tan gelen response'u göreceksiniz:
```txt ```txt
Hello, World from Flask! Hello, World from Flask!
``` ```
Ve eğer <a href="http://localhost:8000/v2" class="external-link" target="_blank">http://localhost:8000/v2</a> adresine giderseniz, FastAPI'dan gelen response'u göreceksiniz: Ve eğer [http://localhost:8000/v2](http://localhost:8000/v2) adresine giderseniz, FastAPI'den gelen response'u göreceksiniz:
```JSON ```JSON
{ {

Loading…
Cancel
Save