]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Update translations for tr (update-outdated) (#15754)
authorSebastián Ramírez <tiangolo@gmail.com>
Mon, 15 Jun 2026 20:11:49 +0000 (22:11 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Jun 2026 20:11:49 +0000 (20:11 +0000)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
53 files changed:
docs/tr/docs/advanced/additional-responses.md
docs/tr/docs/advanced/advanced-dependencies.md
docs/tr/docs/advanced/custom-response.md
docs/tr/docs/advanced/dataclasses.md
docs/tr/docs/advanced/events.md
docs/tr/docs/advanced/generate-clients.md
docs/tr/docs/advanced/openapi-callbacks.md
docs/tr/docs/advanced/openapi-webhooks.md
docs/tr/docs/advanced/path-operation-advanced-configuration.md
docs/tr/docs/advanced/response-directly.md
docs/tr/docs/advanced/security/oauth2-scopes.md
docs/tr/docs/advanced/stream-data.md
docs/tr/docs/advanced/strict-content-type.md
docs/tr/docs/advanced/websockets.md
docs/tr/docs/advanced/wsgi.md
docs/tr/docs/deployment/docker.md
docs/tr/docs/deployment/fastapicloud.md
docs/tr/docs/deployment/manually.md
docs/tr/docs/deployment/server-workers.md
docs/tr/docs/how-to/extending-openapi.md
docs/tr/docs/how-to/separate-openapi-schemas.md
docs/tr/docs/index.md
docs/tr/docs/tutorial/bigger-applications.md
docs/tr/docs/tutorial/body-multiple-params.md
docs/tr/docs/tutorial/body-nested-models.md
docs/tr/docs/tutorial/body.md
docs/tr/docs/tutorial/cookie-param-models.md
docs/tr/docs/tutorial/cookie-params.md
docs/tr/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md
docs/tr/docs/tutorial/dependencies/index.md
docs/tr/docs/tutorial/dependencies/sub-dependencies.md
docs/tr/docs/tutorial/first-steps.md
docs/tr/docs/tutorial/metadata.md
docs/tr/docs/tutorial/path-operation-configuration.md
docs/tr/docs/tutorial/path-params-numeric-validations.md
docs/tr/docs/tutorial/path-params.md
docs/tr/docs/tutorial/query-params-str-validations.md
docs/tr/docs/tutorial/query-params.md
docs/tr/docs/tutorial/request-files.md
docs/tr/docs/tutorial/request-form-models.md
docs/tr/docs/tutorial/request-forms-and-files.md
docs/tr/docs/tutorial/request-forms.md
docs/tr/docs/tutorial/response-model.md
docs/tr/docs/tutorial/response-status-code.md
docs/tr/docs/tutorial/schema-extra-example.md
docs/tr/docs/tutorial/security/first-steps.md
docs/tr/docs/tutorial/security/get-current-user.md
docs/tr/docs/tutorial/security/oauth2-jwt.md
docs/tr/docs/tutorial/security/simple-oauth2.md
docs/tr/docs/tutorial/server-sent-events.md
docs/tr/docs/tutorial/stream-json-lines.md
docs/tr/docs/tutorial/testing.md

index 92999b2871ae5d8f799dbd82db537fe63e74e609..8bf1ea7cd856d4e818333c26db832b2b7d4f0865 100644 (file)
@@ -34,7 +34,7 @@ Bu response `dict`'lerinin her birinde, `response_model`'e benzer şekilde bir P
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 `model` anahtarı OpenAPI'nin bir parçası değildir.
 
@@ -183,7 +183,7 @@ Görseli `FileResponse` kullanarak doğrudan döndürmeniz gerektiğine dikkat e
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 `responses` parametrenizde açıkça farklı bir media type belirtmediğiniz sürece FastAPI, response'un ana response class'ı ile aynı media type'a sahip olduğunu varsayar (varsayılan `application/json`).
 
index 24453f68954efb50053c96a59530ba573de94ddd..5a75042e64db7babb64bd1aaa85d0452dc066228 100644 (file)
@@ -98,7 +98,7 @@ Bu değişiklik aynı zamanda şunu da ifade ediyordu: `StreamingResponse` dönd
 
 Bu davranış 0.118.0'da geri alındı ve `yield` sonrasındaki çıkış kodunun, response gönderildikten sonra çalıştırılması sağlandı.
 
-/// info | Bilgi
+/// note | Not
 
 Aşağıda göreceğiniz gibi, bu davranış 0.106.0 sürümünden önceki davranışa oldukça benzer; ancak köşe durumlar için çeşitli iyileştirmeler ve bug fix'ler içerir.
 
index 73ac29b1617e089dd87f40879f428e45eb11876b..537290eb52522f02ef85919f3de9f35cc70098cc 100644 (file)
@@ -41,7 +41,7 @@ Kısaca, en yüksek performansı istiyorsanız bir [Response Model](../tutorial/
 
 {* ../../docs_src/custom_response/tutorial002_py310.py hl[2,7] *}
 
-/// info | Bilgi
+/// note | Not
 
 `response_class` parametresi, response’un "media type"’ını tanımlamak için de kullanılır.
 
@@ -65,7 +65,7 @@ Yukarıdaki örneğin aynısı, bu sefer bir `HTMLResponse` döndürerek, şöyl
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 Elbette gerçek `Content-Type` header’ı, status code vb. değerler, döndürdüğünüz `Response` objesinden gelir.
 
index 998ccea8a2e28035dc4106d120955d7516675716..150d0080aefe823fd5920b18e8cded94bba37efd 100644 (file)
@@ -18,7 +18,7 @@ Ve elbette aynı özellikleri destekler:
 
 Bu, Pydantic model'lerinde olduğu gibi çalışır. Aslında arka planda da aynı şekilde, Pydantic kullanılarak yapılır.
 
-/// info | Bilgi
+/// note | Not
 
 Dataclass'ların, Pydantic model'lerinin yapabildiği her şeyi yapamadığını unutmayın.
 
index c66342213d394d9ddf3b9c083caec476cf3a1827..bc3b0ef588de858e533f0c2c1424947af880a017 100644 (file)
@@ -120,7 +120,7 @@ Uygulama kapanırken çalıştırılacak bir fonksiyon eklemek için, `"shutdown
 
 Burada `shutdown` event handler fonksiyonu, `log.txt` dosyasına `"Application shutdown"` satırını yazar.
 
-/// info | Bilgi
+/// note | Not
 
 `open()` fonksiyonunda `mode="a"` "append" anlamına gelir; yani satır, önceki içeriği silmeden dosyada ne varsa onun sonuna eklenir.
 
@@ -152,7 +152,7 @@ Meraklı nerd’ler için küçük bir teknik detay. 🤓
 
 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
+/// note | Not
 
 Starlette `lifespan` handler’ları hakkında daha fazlasını [Starlette Lifespan dokümanları](https://www.starlette.dev/lifespan/) içinde okuyabilirsiniz.
 
index 80b5f6bbb9decd10276b6c62ea0a6cc1acd28e44..68cb4ab0d82995fea794bfe2aaaf1b7b6ddb49d1 100644 (file)
@@ -31,7 +31,6 @@ Sponsor olmaları aynı zamanda FastAPI **topluluğuna** (size) güçlü bir ba
 Örneğin şunları deneyebilirsiniz:
 
 * [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
-* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)
 
 Bu çözümlerin bazıları açık kaynak olabilir veya ücretsiz katman sunabilir; yani finansal bir taahhüt olmadan deneyebilirsiniz. Başka ticari SDK üreteçleri de vardır ve internette bulunabilir. 🤓
 
index 627e6cb6cc50a5f91d1e56f47be342efed4e6e28..023d975879e0deef764ce34ff21f024de3f3d0b0 100644 (file)
@@ -173,7 +173,7 @@ Bu noktada, yukarıda oluşturduğunuz callback router'ında gerekli callback *p
 
 /// tip | İpucu
 
-`callback=` içine router'ın kendisini (`invoices_callback_router`) değil, `invoices_callback_router.routes` şeklinde `.routes` attribute'unu verdiğinize dikkat edin.
+`callback=` içine router'ın kendisini (`invoices_callback_router`) değil, `invoices_callback_router.routes` şeklinde `.routes` attribute'unu verdiğinize dikkat edin. FastAPI bu route'ları callback OpenAPI dokümantasyonunu üretmek için kullanacaktır.
 
 ///
 
index a9f21662cacbe659740abeeab2b2693f49c5de55..eda5ba2188cbb8475f4e23b3b21012f9fe0eb798 100644 (file)
@@ -22,7 +22,7 @@ Webhook'lar için URL'lerin nasıl kaydedileceğine dair tüm **mantık** ve bu
 
 Bu, kullanıcılarınızın **webhook** request'lerinizi alacak şekilde **API'lerini implement etmesini** çok daha kolaylaştırabilir; hatta kendi API kodlarının bir kısmını otomatik üretebilirler.
 
-/// info | Bilgi
+/// note | Not
 
 Webhook'lar OpenAPI 3.1.0 ve üzeri sürümlerde mevcuttur; FastAPI `0.99.0` ve üzeri tarafından desteklenir.
 
@@ -36,7 +36,7 @@ Bir **FastAPI** uygulaması oluşturduğunuzda, *webhook*'ları tanımlamak içi
 
 Tanımladığınız webhook'lar **OpenAPI** şemasında ve otomatik **docs UI**'da yer alır.
 
-/// info | Bilgi
+/// note | Not
 
 `app.webhooks` nesnesi aslında sadece bir `APIRouter`'dır; uygulamanızı birden fazla dosya ile yapılandırırken kullanacağınız türün aynısıdır.
 
index 00ce765884416584940b8a15dc683bbfe44b501c..c5d682af7ac54604087c4129251f4920c7452e54 100644 (file)
@@ -16,17 +16,11 @@ Bunun her operation için benzersiz olduğundan emin olmanız gerekir.
 
 ### operationId olarak *path operation function* adını kullanma { #using-the-path-operation-function-name-as-the-operationid }
 
-API’lerinizin function adlarını `operationId` olarak kullanmak istiyorsanız, hepsini dolaşıp her *path operation*’ın `operation_id` değerini `APIRoute.name` ile override edebilirsiniz.
+API’lerinizin function adlarını `operationId` olarak kullanmak istiyorsanız, `FastAPI`'ye özel bir `generate_unique_id_function` geçebilirsiniz.
 
-Bunu, tüm *path operation*’ları ekledikten sonra yapmalısınız.
+Bu function her bir `APIRoute`'u alır ve ilgili *path operation* için kullanılacak `operationId`'yi döndürür.
 
-{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2, 12:21, 24] *}
-
-/// tip | İpucu
-
-`app.openapi()` fonksiyonunu manuel olarak çağırıyorsanız, bunu yapmadan önce `operationId`’leri güncellemelisiniz.
-
-///
+{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2,5:6,9] *}
 
 /// warning | Uyarı
 
index 8db51e35130496173a8169342eaee0d3e71cdfda..ce48cf44c148f19bc06fba9ee226662930f15b7f 100644 (file)
@@ -18,7 +18,7 @@ Ayrıca doğrudan bir `JSONResponse` oluşturup döndürebilirsiniz.
 
 Aslında herhangi bir `Response` veya onun herhangi bir alt sınıfını döndürebilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 `JSONResponse` zaten `Response`'un bir alt sınıfıdır.
 
index 6ac6ea6c1ef9269f8a7f648aae533308c0851748..c5de15f8d96c7f876c93d3f4446c3efde03ec9e3 100644 (file)
@@ -46,7 +46,7 @@ Genellikle belirli güvenlik izinlerini tanımlamak için kullanılır, örneği
 * `instagram_basic` Facebook / Instagram tarafından kullanılır.
 * `https://www.googleapis.com/auth/drive` Google tarafından kullanılır.
 
-/// info | Bilgi
+/// note | Not
 
 OAuth2'de "scope", gereken belirli bir izni bildiren bir string'den ibarettir.
 
@@ -126,7 +126,7 @@ Burada, **FastAPI**'nin farklı seviyelerde tanımlanan scope'ları nasıl ele a
 
 {* ../../docs_src/security/tutorial005_an_py310.py hl[5,141,172] *}
 
-/// info | Teknik Detaylar
+/// note | Teknik Detaylar
 
 `Security` aslında `Depends`'in bir alt sınıfıdır ve sadece birazdan göreceğimiz bir ek parametreye sahiptir.
 
index 4310edc350b5328191359e14623e8b54b44e6734..a71bb321744d313d56624c5625dac74c18c5666c 100644 (file)
@@ -4,7 +4,7 @@ Veriyi JSON olarak yapılandırabiliyorsanız, [JSON Lines Akışı](../tutorial
 
 Ancak saf ikili (binary) veri ya da string akıtmak istiyorsanız, bunu şöyle yapabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI 0.134.0 ile eklendi.
 
@@ -90,7 +90,7 @@ Bu özel örnekte o kadar da önemli değil, çünkü sahte ve bellekte (yani `i
 
 Ve birçok durumda, diskte ya da ağda okundukları için, okumak engelleyici (event loop'u bloke edebilen) bir işlem olabilir.
 
-/// info | Bilgi
+/// note | Not
 
 Yukarıdaki örnek aslında bir istisna; çünkü `io.BytesIO` nesnesi zaten bellekte, dolayısıyla onu okumak hiçbir şeyi bloke etmez.
 
index 94716e31fa9b41b760ad077b5b5332fb5451a9f3..93c23b83b4f280050bab476f27682a136f80cd06 100644 (file)
@@ -81,7 +81,7 @@ Content-Type header’ı göndermeyen client’ları desteklemeniz gerekiyorsa,
 
 Bu ayarla, Content-Type header’ı olmayan request’lerin body’si JSON olarak parse edilir. Bu, FastAPI’nin eski sürümlerindeki davranışla aynıdır.
 
-/// info | Bilgi
+/// note | Not
 
 Bu davranış ve yapılandırma FastAPI 0.132.0’da eklendi.
 
index d15d63559239d9ece8b8d804aa9cc3b547002b14..103a0aa18afd694cb6dfc089c537d44a64aa2f7b 100644 (file)
@@ -111,7 +111,7 @@ Diğer FastAPI endpoint'leri/*path operations* ile aynı şekilde çalışırlar
 
 {* ../../docs_src/websockets_/tutorial002_an_py310.py hl[68:69,82] *}
 
-/// info
+/// note
 
 Bu bir WebSocket olduğu için `HTTPException` raise etmek pek anlamlı değildir; bunun yerine `WebSocketException` raise ederiz.
 
index 06a3f2834f694ad6a5db7be35b728a725c71bac8..84eb7981aba07025d535c84514c8aa6029e0cd70 100644 (file)
@@ -6,7 +6,7 @@ Bunun için `WSGIMiddleware`'ı kullanabilir ve bunu WSGI uygulamanızı (örne
 
 ## `WSGIMiddleware` Kullanımı { #using-wsgimiddleware }
 
-/// info
+/// note | Not
 
 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] *}
 
-/// note
+/// note | Not
 
 Önceden, `fastapi.middleware.wsgi` içindeki `WSGIMiddleware`'ın kullanılması öneriliyordu, ancak artık kullanımdan kaldırıldı.
 
index 0b2da213c378dd5c1cc8c25399c6454b4295c3b4..3f73ec1eff0457517f38b63f08c966a67e4c96bc 100644 (file)
@@ -132,7 +132,7 @@ Successfully installed fastapi pydantic
 
 </div>
 
-/// info | Bilgi
+/// note | Not
 
 Paket bağımlılıklarını tanımlamak ve yüklemek için başka formatlar ve araçlar da vardır.
 
@@ -556,7 +556,7 @@ Container kullanıyorsanız (örn. Docker, Kubernetes), temelde iki yaklaşım v
 
 **Birden fazla container**'ınız varsa ve muhtemelen her biri **tek process** çalıştırıyorsa (ör. bir **Kubernetes** cluster'ında), replication yapılan worker container'lar çalışmadan **önce**, **başlatmadan önceki adımlar**ın işini yapan **ayrı bir container** kullanmak isteyebilirsiniz (tek container, tek process).
 
-/// info | Bilgi
+/// note | Not
 
 Kubernetes kullanıyorsanız, bu muhtemelen bir [Init Container](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) olur.
 
index 890e319154d4776561aa20cfe95b9c36003a425c..eecf25d667c1826320d2f50736e7887e74d98882 100644 (file)
@@ -1,26 +1,6 @@
 # FastAPI Cloud { #fastapi-cloud }
 
-FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a **tek bir komutla** deploy edebilirsiniz. Henüz yapmadıysanız gidip bekleme listesine katılın. 🚀
-
-## Giriş Yapma { #login }
-
-Önceden bir **FastAPI Cloud** hesabınız olduğundan emin olun (sizi bekleme listesinden davet ettik 😉).
-
-Ardından giriş yapın:
-
-<div class="termy">
-
-```console
-$ fastapi login
-
-You are logged in to FastAPI Cloud 🚀
-```
-
-</div>
-
-## Deploy { #deploy }
-
-Şimdi uygulamanızı **tek bir komutla** deploy edin:
+FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a yalnızca **tek bir komutla** deploy edebilirsiniz. 🚀
 
 <div class="termy">
 
@@ -36,20 +16,22 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI, FastAPI uygulamanızı otomatik olarak algılar ve buluta deploy eder. Giriş yapmadıysanız, kimlik doğrulamasını tamamlamak için tarayıcınız açılır.
+
 Hepsi bu! Artık uygulamanıza o URL üzerinden erişebilirsiniz. ✨
 
 ## FastAPI Cloud Hakkında { #about-fastapi-cloud }
 
 **[FastAPI Cloud](https://fastapicloud.com)**, **FastAPI**'nin arkasındaki aynı yazar ve ekip tarafından geliştirilmiştir.
 
-Bir API'yi minimum eforla **geliştirme**, **deploy etme** ve **erişilebilir kılma** sürecini sadeleştirir.
+Bir API'yi minimum eforla **geliştirme**, **deploy etme** ve **erişim** süreçlerini sadeleştirir.
 
 FastAPI ile uygulama geliştirirken elde ettiğiniz aynı **developer experience**'ı, onları buluta **deploy etmeye** de taşır. 🎉
 
 Ayrıca bir uygulamayı deploy ederken ihtiyaç duyacağınız pek çok şeyi de sizin için halleder; örneğin:
 
 * HTTPS
-* Replication (çoğaltma), request'lere göre autoscaling ile
+* Replication, request'lere göre autoscaling ile
 * vb.
 
 FastAPI Cloud, *FastAPI and friends* açık kaynak projelerinin birincil sponsoru ve finansman sağlayıcısıdır. ✨
@@ -62,4 +44,4 @@ FastAPI uygulamalarını deploy etmek için cloud sağlayıcınızın kendi kıl
 
 ## Kendi server'ınıza deploy etme { #deploy-your-own-server }
 
-Bu **Deployment** kılavuzunun ilerleyen bölümlerinde tüm detayları da ele alacağız; böylece neler olduğunu, nelerin gerçekleşmesi gerektiğini ve FastAPI uygulamalarını kendi başınıza (kendi server'larınızla da) nasıl deploy edebileceğinizi anlayacaksınız. 🤓
+Bu **Deployment** kılavuzunun ilerleyen bölümlerinde size tüm detayları da öğreteceğim; böylece neler olduğunu, nelerin gerçekleşmesi gerektiğini ve FastAPI uygulamalarını kendi başınıza, kendi server'larınızla da nasıl deploy edebileceğinizi anlayacaksınız. 🤓
index 08a54817272c2fa1e38fb9664ad691f198a93171..de3d14348cd44da7bebd58b5c175b63cc64777c5 100644 (file)
@@ -56,7 +56,6 @@ Buna alternatif birkaç seçenek daha vardır, örneğin:
 * [Hypercorn](https://hypercorn.readthedocs.io/): diğer özelliklerin yanında HTTP/2 ve Trio ile uyumlu bir ASGI server.
 * [Daphne](https://github.com/django/daphne): Django Channels için geliştirilmiş ASGI server.
 * [Granian](https://github.com/emmett-framework/granian): Python uygulamaları için bir Rust HTTP server.
-* [NGINX Unit](https://unit.nginx.org/howto/fastapi/): NGINX Unit, hafif ve çok yönlü bir web uygulaması runtime'ıdır.
 
 ## Sunucu Makinesi ve Sunucu Programı { #server-machine-and-server-program }
 
index 0cb9831a89866eec691bf823eaae8a268ddf0fa4..878048e32cd8bf2a6c97038824ff225fde3bc897 100644 (file)
@@ -17,7 +17,7 @@ Uygulamaları deploy ederken, çok çekirdekten (multiple cores) faydalanmak ve
 
 Burada, `fastapi` komutunu kullanarak ya da `uvicorn` komutunu doğrudan çalıştırarak worker process'lerle Uvicorn'u nasıl kullanacağınızı göstereceğim.
 
-/// info | Bilgi
+/// note | Not
 
 Container kullanıyorsanız (örneğin Docker veya Kubernetes ile), bununla ilgili daha fazlasını bir sonraki bölümde anlatacağım: [Container'larda FastAPI - Docker](docker.md).
 
index 7fe8649e1f4327f0a2f06b493a2645d4e682bd10..bbda88ca2a6c897d478411c0d6e83d7729aedf2b 100644 (file)
@@ -25,9 +25,17 @@ Ve `get_openapi()` fonksiyonu şu parametreleri alır:
 * `openapi_version`: Kullanılan OpenAPI specification sürümü. Varsayılan olarak en günceli: `3.1.0`.
 * `summary`: API'nin kısa özeti.
 * `description`: API'nizin açıklaması; markdown içerebilir ve dokümanlarda gösterilir.
-* `routes`: route'ların listesi; bunların her biri kayıtlı *path operations*'lardır. `app.routes` içinden alınırlar.
+* `routes`: Uygulamadan gelen route'lar; `app.routes` içinden alınır. FastAPI, kayıtlı *path operations*'ları toplamak için bunları kullanır; eklenen router'lardan gelenler de dahildir.
 
-/// info | Bilgi
+/// tip | Teknik Detaylar
+
+`app.routes` daha alt seviyede bir route ağacıdır. Yalnızca son `APIRoute` objelerini değil, FastAPI'nin dahili olarak eklenen router'lar için kullandığı aday route'ları da içerebilir.
+
+Yine de `app.routes`'i `get_openapi()`'ye geçebilirsiniz. FastAPI, etkili path operation'ları toplamak için bu route ağacını gezecektir.
+
+///
+
+/// note | Bilgi
 
 `summary` parametresi OpenAPI 3.1.0 ve üzeri sürümlerde vardır; FastAPI 0.99.0 ve üzeri tarafından desteklenmektedir.
 
index c26411d2926916864d22e6f851e5faa187ce389f..c2948269b3ff24e75eac30a66a944b315b6d8b5d 100644 (file)
@@ -85,7 +85,7 @@ Bunun muhtemelen en yaygın nedeni, halihazırda autogenerated client kodların
 
 Bu durumda **FastAPI**'de bu özelliği `separate_input_output_schemas=False` parametresiyle kapatabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 `separate_input_output_schemas` desteği FastAPI `0.102.0` sürümünde eklendi. 🤓
 
index f6101be0d374a01e2b7629224745f779dfa5c8cc..edc8a51383409fb1a369bb9116b27f500a8db341 100644 (file)
@@ -492,9 +492,7 @@ Daha fazla özellik içeren daha kapsamlı bir örnek için <a href="https://fas
 
 ### Uygulamanızı deploy edin (opsiyonel) { #deploy-your-app-optional }
 
-İsterseniz FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz; eğer henüz yapmadıysanız gidip bekleme listesine katılın. 🚀
-
-Zaten bir **FastAPI Cloud** hesabınız varsa (bekleme listesinden sizi davet ettiysek 😉), uygulamanızı tek bir komutla deploy edebilirsiniz.
+FastAPI uygulamanızı tek bir komutla [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz. 🚀
 
 <div class="termy">
 
@@ -510,6 +508,8 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI, FastAPI uygulamanızı otomatik olarak algılar ve cloud'a deploy eder. Giriş yapmadıysanız, kimlik doğrulama sürecini tamamlamak için tarayıcınız açılır.
+
 Hepsi bu! Artık uygulamanıza bu URL'den erişebilirsiniz. ✨
 
 #### FastAPI Cloud hakkında { #about-fastapi-cloud }
index fb0d2e73df4e947f640e065d8c0097495820b9f7..b44d5bb9bc4751fd615c6a2b1e9024df974bfd6b 100644 (file)
@@ -44,7 +44,7 @@ from app.routers import items
 ///
 
 * `app` dizini her şeyi içerir. Ayrıca boş bir `app/__init__.py` dosyası olduğu için bir "Python package" (bir "Python module" koleksiyonu) olur: `app`.
-* İçinde bir `app/main.py` dosyası vardır. Bir Python package'in (içinde `__init__.py` dosyası olan bir dizinin) içinde olduğundan, o package'in bir "module"’üdür: `app.main`.
+* İçinde bir `app/main.py` dosyası vardır. Bir Python package’in (içinde `__init__.py` dosyası olan bir dizinin) içinde olduğundan, o package’in bir "module"’üdür: `app.main`.
 * Benzer şekilde `app/dependencies.py` dosyası da bir "module"’dür: `app.dependencies`.
 * `app/routers/` adında bir alt dizin vardır ve içinde başka bir `__init__.py` dosyası bulunur; dolayısıyla bu bir "Python subpackage"’dir: `app.routers`.
 * `app/routers/items.py` dosyası `app/routers/` package’i içinde olduğundan bir submodule’dür: `app.routers.items`.
@@ -77,7 +77,7 @@ Diyelim ki sadece kullanıcıları yönetmeye ayrılmış dosyanız `/app/router
 
 Kullanıcılarla ilgili *path operation*’ları, kodun geri kalanından ayrı tutmak istiyorsunuz; böylece düzenli kalır.
 
-Ancak bu hâlâ aynı **FastAPI** uygulaması/web API’sinin bir parçasıdır (aynı "Python Package" içinde).
+Namun bu hâlâ aynı **FastAPI** uygulaması/web API’sinin bir parçasıdır (aynı "Python Package" içinde).
 
 Bu module için *path operation*’ları `APIRouter` kullanarak oluşturabilirsiniz.
 
@@ -123,7 +123,7 @@ Bu yüzden onları ayrı bir `dependencies` module’üne koyuyoruz (`app/depend
 
 Örneği basit tutmak için uydurma bir header kullanıyoruz.
 
-Ancak gerçek senaryolarda, entegre [Security yardımcı araçlarını](security/index.md) kullanarak daha iyi sonuç alırsınız.
+Namun gerçek senaryolarda, entegre [Security yardımcı araçlarını](security/index.md) kullanarak daha iyi sonuç alırsınız.
 
 ///
 
@@ -230,7 +230,7 @@ from .dependencies import get_token_header
 * `dependencies` module’ünü bul (`app/routers/dependencies.py` gibi hayali bir dosya)...
 * ve oradan `get_token_header` function’ını import et.
 
-Ama o dosya yok; bizim dependency’lerimiz `app/dependencies.py` dosyasında.
+Namun o dosya yok; bizim dependency’lerimiz `app/dependencies.py` dosyasında.
 
 Uygulama/dosya yapımızın nasıl göründüğünü hatırlayın:
 
@@ -396,17 +396,17 @@ Böylece o router içindeki tüm route’lar uygulamanın bir parçası olarak d
 
 /// note | Teknik Detaylar
 
-Aslında içeride, `APIRouter` içinde tanımlanan her *path operation* için bir *path operation* oluşturur.
+Router ana uygulamaya dahil edildiğinde FastAPI, orijinal `APIRouter`’ı ve içindeki `APIRoute`’ları etkin tutar.
 
-Yani perde arkasında, her şey tek bir uygulamaymış gibi çalışır.
+Bu da, özel (custom) `APIRouter` ve `APIRoute` alt sınıflarının, router dahil edildikten sonra da işleyişe katılabileceği anlamına gelir.
 
 ///
 
 /// tip | İpucu
 
-Router’ları dahil ederken performans konusunda endişelenmeniz gerekmez.
+Router’ları dahil ederken performans konusunda endişelenmeyin.
 
-Bu işlem mikrosaniyeler sürer ve sadece startup sırasında olur.
+Bu mekanizma hafif olacak ve her request'e ek yük bindirmeyecek şekilde tasarlanmıştır.
 
 Dolayısıyla performansı etkilemez. ⚡
 
@@ -437,7 +437,7 @@ Sonuç olarak, uygulamamızda `admin` module’ündeki her bir *path operation*
 * `get_token_header` dependency’si.
 * `418` response’u. 🍵
 
-Ancak bu sadece bizim uygulamamızdaki o `APIRouter` için geçerlidir; onu kullanan diğer kodlar için değil.
+Namun bu sadece bizim uygulamamızdaki o `APIRouter` için geçerlidir; onu kullanan diğer kodlar için değil.
 
 Dolayısıyla örneğin diğer projeler aynı `APIRouter`’ı farklı bir authentication yöntemiyle kullanabilir.
 
@@ -453,15 +453,15 @@ ve `app.include_router()` ile eklenen diğer tüm *path operation*’larla birli
 
 /// note | Çok Teknik Detaylar
 
-**Not**: Bu oldukça teknik bir detay; büyük ihtimalle **direkt geçebilirsiniz**.
+Not: Bu, muhtemelen doğrudan atlayabileceğiniz oldukça teknik bir detaydır.
 
 ---
 
 `APIRouter`’lar "mount" edilmez; uygulamanın geri kalanından izole değildir.
 
-Çünkü *path operation*’larını OpenAPI şemasına ve kullanıcı arayüzlerine dahil etmek istiyoruz.
+Bunun nedeni, onların *path operation*’larını OpenAPI şemasına ve kullanıcı arayüzlerine dahil etmek istememizdir.
 
-Onları tamamen izole edip bağımsız şekilde "mount" edemediğimiz için, *path operation*’lar doğrudan eklenmek yerine "klonlanır" (yeniden oluşturulur).
+FastAPI, orijinal router’ları ve *path operation*’ları etkin tutar; istekleri işlerken ve OpenAPI üretirken router prefix’lerini, dependency’leri, tag’leri, responses’ları ve diğer metaverileri birleştirir.
 
 ///
 
@@ -490,7 +490,7 @@ Komuta dosya yolunu da verebilirsiniz, örneğin:
 $ fastapi dev app/main.py
 ```
 
-Ama o zaman her `fastapi` komutunu çalıştırdığınızda doğru yolu hatırlayıp geçirmeniz gerekir.
+Namun o zaman her `fastapi` komutunu çalıştırdığınızda doğru yolu hatırlayıp geçirmeniz gerekir.
 
 Ayrıca, diğer araçlar uygulamayı bulamayabilir; örneğin [VS Code Eklentisi](../editor-support.md) veya [FastAPI Cloud](https://fastapicloud.com). Bu yüzden `pyproject.toml` içinde `entrypoint` kullanmanız önerilir.
 
@@ -532,4 +532,16 @@ Bir `APIRouter`’ı `FastAPI` uygulamasına dahil ettiğiniz gibi, bir `APIRout
 router.include_router(other_router)
 ```
 
-`router`’ı `FastAPI` uygulamasına dahil etmeden önce bunu yaptığınızdan emin olun; böylece `other_router` içindeki *path operation*’lar da dahil edilmiş olur.
+Bunu, `router`’ı `FastAPI` uygulamasına dahil etmeden önce de sonra da yapabilirsiniz. FastAPI, `other_router` içindeki *path operation*’ları yönlendirmeye (routing) ve OpenAPI’ye yine dahil eder.
+
+Aynı şey, router’lara daha sonra eklenen *path operation*’lar için de geçerlidir. Önceden yapılmış dahil etme üzerinden de görünür olurlar.
+
+/// warning | Teknik Detaylar
+
+Bir router’ı dahil ettikten sonra `router.routes`’i doğrudan değiştirmekten kaçının. FastAPI, router dahilini canlı (live) kabul eder; bu nedenle orijinal router ve içindeki route’lar, yönlendirme ve OpenAPI üretiminin bir parçası olarak kalır.
+
+Route ve router eklemek için path operation decorator’ları ve `.include_router()` gibi belgelenmiş API’leri kullanın.
+
+`router.routes`’i, route tanımlarını ve dahil edilmiş router’ları barındırabilen daha alt seviye bir route ağacı olarak düşünün; bunu nihai *path operation*’ların düz bir listesiymiş gibi kullanmaktan kaçının.
+
+///
index 4cd381b8698e3558da8a390615646bf444803b02..be6ab676d73a86bced401a02001f6a189729d56e 100644 (file)
@@ -111,7 +111,7 @@ q: str | None = None
 {* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *}
 
 
-/// info | Bilgi
+/// note | Not
 
 `Body`, `Query`, `Path` ve daha sonra göreceğiniz diğerleriyle aynı ek validasyon ve metadata parametrelerine de sahiptir.
 
@@ -126,7 +126,7 @@ Varsayılan olarak **FastAPI**, body'nin doğrudan bu modelin içeriği olmasın
 Ancak, ek body parametreleri tanımladığınızda olduğu gibi, `item` anahtarı olan bir JSON ve onun içinde modelin içeriğini beklemesini istiyorsanız, `Body`'nin özel parametresi olan `embed`'i kullanabilirsiniz:
 
 ```Python
-item: Item = Body(embed=True)
+item: Annotated[Item, Body(embed=True)]
 ```
 
 yani şöyle:
index 4f078e035c1d9dfbba1671a99b4946ec1a9fcdac..bcf3057ef4106a0a7223837cbf4b91acc144f3f0 100644 (file)
@@ -135,7 +135,7 @@ Bu, aşağıdaki gibi bir JSON body bekler (dönüştürür, doğrular, doküman
 }
 ```
 
-/// info | Bilgi
+/// note | Not
 
 `images` key’inin artık image object’lerinden oluşan bir list içerdiğine dikkat edin.
 
@@ -147,7 +147,7 @@ Bu, aşağıdaki gibi bir JSON body bekler (dönüştürür, doğrular, doküman
 
 {* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *}
 
-/// info | Bilgi
+/// note | Not
 
 `Offer`’ın bir `Item` list’i olduğuna, `Item`’ların da opsiyonel bir `Image` list’ine sahip olduğuna dikkat edin.
 
index 26f51ffecaca6ff02d4560f4ca0bb430bd620992..74b3d37077b36e9774565aa2151daf96c408b1fb 100644 (file)
@@ -8,7 +8,7 @@ API'niz neredeyse her zaman bir **response** body göndermek zorundadır. Ancak
 
 Bir **request** body tanımlamak için, tüm gücü ve avantajlarıyla [Pydantic](https://docs.pydantic.dev/) modellerini kullanırsınız.
 
-/// info | Bilgi
+/// note | Not
 
 Veri göndermek için şunlardan birini kullanmalısınız: `POST` (en yaygını), `PUT`, `DELETE` veya `PATCH`.
 
index 0fa399c6ae126cc173fffcc8e4e5da7feaf8d50d..9b4984bcf0950be71c1a9e24d6bb1481a8532fac 100644 (file)
@@ -6,7 +6,7 @@ Bu sayede **model'i yeniden kullanabilir**, **birden fazla yerde** tekrar tekrar
 
 /// note | Not
 
-This is supported since FastAPI version `0.115.0`. 🤓
+Bu özellik FastAPI'nin `0.115.0` sürümünden itibaren desteklenmektedir. 🤓
 
 ///
 
@@ -32,7 +32,7 @@ Tanımlanan cookie'leri `/docs` altındaki docs UI'da görebilirsiniz:
 <img src="/img/tutorial/cookie-param-models/image01.png">
 </div>
 
-/// info | Bilgi
+/// note | Not
 
 Tarayıcıların cookie'leri özel biçimlerde ve arka planda yönetmesi nedeniyle, **JavaScript**'in cookie'lere erişmesine kolayca izin vermediğini aklınızda bulundurun.
 
index 28b57fd7e14b972086528f2182846353f096d850..2cec37fd0d01741612a6f03edaf96981593efc1d 100644 (file)
@@ -24,13 +24,13 @@ Ancak `fastapi`'dan `Query`, `Path`, `Cookie` ve diğerlerini import ettiğinizd
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 Cookie'leri tanımlamak için `Cookie` kullanmanız gerekir, aksi halde parametreler query parametreleri olarak yorumlanır.
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 **Tarayıcılar cookie'leri** özel şekillerde ve arka planda işlediği için, **JavaScript**'in onlara dokunmasına kolayca izin **vermezler**.
 
index 8764d736fe794458ff0c0c58b8f7123f9b9d5e5f..caafcafaaf20ce513ecf8b49bbf89f423529059c 100644 (file)
@@ -28,7 +28,7 @@ Ayrıca kodunuzda kullanılmayan bir parametreyi gören yeni geliştiricilerin b
 
 ///
 
-/// info | Bilgi
+/// note | Not
 
 Bu örnekte uydurma özel header'lar olan `X-Key` ve `X-Token` kullanıyoruz.
 
index 5ed7660c50119944e517bed1279fc88ad8163f44..7f56a95c716e9619b0f39fe1e5d20e8c273f15a8 100644 (file)
@@ -1,6 +1,6 @@
 # `yield` ile Dependency'ler { #dependencies-with-yield }
 
-FastAPI, işini bitirdikten sonra <dfn title='bazen "exit code", "cleanup code", "teardown code", "closing code", "context manager exit code" vb. olarak da adlandırılır'>ek adımlar</dfn> çalıştıran dependency'leri destekler.
+FastAPI, işini bitirdikten sonra <dfn title='bazen "çıkış kodu", "temizleme kodu", "sökme kodu", "kapatma kodu", "bağlam yöneticisi çıkış kodu" vb. olarak da adlandırılır'>ek adımlar</dfn> çalıştıran dependency'leri destekler.
 
 Bunu yapmak için `return` yerine `yield` kullanın ve ek adımları (kodu) `yield` satırından sonra yazın.
 
@@ -170,7 +170,7 @@ participant tasks as Background tasks
     end
 ```
 
-/// info | Bilgi
+/// note | Not
 
 Client'a yalnızca **tek bir response** gönderilir. Bu, error response'lardan biri olabilir ya da *path operation*'dan dönen response olabilir.
 
index 6cf626e05ad465cd9b7456d6cf763b0f8afe2d7c..21809fc0a76696b27ec17fd114a880e06f358337 100644 (file)
@@ -51,7 +51,7 @@ Bu örnekte, bu dependency şunları bekler:
 
 Sonra da bu değerleri içeren bir `dict` döndürür.
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI, `Annotated` desteğini 0.95.0 sürümünde ekledi (ve önermeye başladı).
 
@@ -106,7 +106,7 @@ common_parameters --> read_users
 
 Bu şekilde paylaşılan kodu bir kez yazarsınız ve onu *path operation*'larda çağırma işini **FastAPI** halleder.
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Dikkat edin: Bunu "register" etmek ya da benzeri bir şey yapmak için özel bir class oluşturup **FastAPI**'ye bir yere geçirmeniz gerekmez.
 
index ab196d829ffb7f56b6721f4f7a99b4522ccd0045..706b5a4f7eecb5d96bb1dddfbf9189bc6703215d 100644 (file)
@@ -35,7 +35,7 @@ Sonra bu bağımlılığı şöyle kullanabiliriz:
 
 {* ../../docs_src/dependencies/tutorial005_an_py310.py hl[23] *}
 
-/// info | Bilgi
+/// note | Not
 
 Dikkat edin, *path operation function* içinde yalnızca tek bir bağımlılık tanımlıyoruz: `query_or_cookie_extractor`.
 
index 0ffa28dbfa33917a09eb209c64860a59b9a10237..1d5cf6fbc9443602ee48dc498b76235563e067b3 100644 (file)
@@ -180,7 +180,7 @@ Bu da şuna eşdeğer olur:
 from backend.main import app
 ```
 
-### Path ile `fastapi dev` { #fastapi-dev-with-path }
+### Path ile veya `--entrypoint` CLI seçeneğiyle `fastapi dev` { #fastapi-dev-with-path-or-with-entrypoint-cli-option }
 
 Dosya path'ini `fastapi dev` komutuna da verebilirsiniz; hangi FastAPI app objesini kullanacağını tahmin eder:
 
@@ -188,29 +188,19 @@ Dosya path'ini `fastapi dev` komutuna da verebilirsiniz; hangi FastAPI app objes
 $ fastapi dev main.py
 ```
 
-Ancak `fastapi` komutunu her çağırdığınızda doğru path'i geçmeyi hatırlamanız gerekir.
-
-Ayrıca, [VS Code Eklentisi](../editor-support.md) veya [FastAPI Cloud](https://fastapicloud.com) gibi başka araçlar da onu bulamayabilir; bu yüzden `pyproject.toml` içindeki `entrypoint`'i kullanmanız önerilir.
-
-### Uygulamanızı Yayınlayın (opsiyonel) { #deploy-your-app-optional }
-
-İsterseniz FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz; henüz katılmadıysanız gidip bekleme listesine yazılın. 🚀
-
-Zaten bir **FastAPI Cloud** hesabınız varsa (bekleme listesinden sizi davet ettiysek 😉), uygulamanızı tek komutla deploy edebilirsiniz.
-
-Deploy etmeden önce giriş yaptığınızdan emin olun:
-
-<div class="termy">
+Veya `fastapi dev` komutuna `--entrypoint` seçeneğini de geçebilirsiniz:
 
 ```console
-$ fastapi login
-
-You are logged in to FastAPI Cloud 🚀
+$ fastapi dev --entrypoint main:app
 ```
 
-</div>
+Ancak `fastapi` komutunu her çağırdığınızda doğru path'i veya entrypoint'i geçmeyi hatırlamanız gerekir.
+
+Ayrıca, [VS Code Eklentisi](../editor-support.md) veya [FastAPI Cloud](https://fastapicloud.com) gibi başka araçlar da onu bulamayabilir; bu yüzden `pyproject.toml` içindeki `entrypoint`'i kullanmanız önerilir.
 
-Ardından uygulamanızı deploy edin:
+### Uygulamanızı Yayınlayın (opsiyonel) { #deploy-your-app-optional }
+
+İsterseniz FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a tek komutla deploy edebilirsiniz. 🚀
 
 <div class="termy">
 
@@ -226,6 +216,8 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI, FastAPI uygulamanızı otomatik olarak algılar ve buluta deploy eder. Giriş yapmadıysanız, kimlik doğrulama işlemini tamamlamak için tarayıcınız açılır.
+
 Bu kadar! Artık uygulamanıza o URL üzerinden erişebilirsiniz. ✨
 
 ## Adım Adım Özetleyelim { #recap-step-by-step }
@@ -270,7 +262,7 @@ https://example.com/items/foo
 /items/foo
 ```
 
-/// info | Bilgi
+/// note | Not
 
 Bir "path" genellikle "endpoint" veya "route" olarak da adlandırılır.
 
@@ -322,7 +314,7 @@ Biz de bunlara "**operation**" diyeceğiz.
 * path `/`
 * <dfn title="bir HTTP GET methodu"><code>get</code> operation</dfn> kullanarak
 
-/// info | `@decorator` Bilgisi
+/// note | `@decorator` Bilgisi
 
 Python'daki `@something` söz dizimi "decorator" olarak adlandırılır.
 
index a8d44570f7ce800c5a99c402aba41c93e7e3beac..5ed3f85801c49612bdbe92ca9d6157fea8b9a4b2 100644 (file)
@@ -74,9 +74,9 @@ Kullandığınız tüm tag'ler için metadata eklemek zorunda değilsiniz.
 
 {* ../../docs_src/metadata/tutorial004_py310.py hl[21,26] *}
 
-/// info | Bilgi
+/// note | Not
 
-Tag'ler hakkında daha fazlası için: [Path Operation Configuration](path-operation-configuration.md#tags).
+Tag'ler hakkında daha fazlası için: [Path Operation Yapılandırması](path-operation-configuration.md#tags).
 
 ///
 
index 3653090af4623558db8f77a908d352323fa230ba..75057bb26750f1b3c021c64f05b30d602e76a48c 100644 (file)
@@ -66,19 +66,19 @@ Interactive docs’ta şöyle kullanılacaktır:
 
 <img src="/img/tutorial/path-operation-configuration/image02.png">
 
-## Response description { #response-description }
+## Response Açıklaması { #response-description }
 
 `response_description` parametresi ile response açıklamasını belirtebilirsiniz:
 
 {* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}
 
-/// info | Bilgi
+/// note | Not
 
 `response_description` özellikle response’u ifade eder; `description` ise genel olarak *path operation*’ı ifade eder.
 
 ///
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 OpenAPI, her *path operation* için bir response description zorunlu kılar.
 
index 43da894bb95e7a6439633587fae530c9a4bc39e2..1e6121f990dfb19d3372a44cda3c84c399c03d3f 100644 (file)
@@ -8,7 +8,7 @@
 
 {* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI, 0.95.0 sürümünde `Annotated` desteğini ekledi (ve bunu önermeye başladı).
 
@@ -56,7 +56,7 @@ Dolayısıyla fonksiyonunuzu şöyle tanımlayabilirsiniz:
 
 {* ../../docs_src/path_params_numeric_validations/tutorial002_py310.py hl[7] *}
 
-Namun şunu unutmayın: `Annotated` kullanırsanız bu problem olmaz; çünkü `Query()` veya `Path()` için fonksiyon parametresi default değerlerini kullanmıyorsunuz.
+Ancak şunu unutmayın: `Annotated` kullanırsanız bu problem olmaz; çünkü `Query()` veya `Path()` için fonksiyon parametresi default değerlerini kullanmıyorsunuz.
 
 {* ../../docs_src/path_params_numeric_validations/tutorial002_an_py310.py *}
 
@@ -131,7 +131,7 @@ Ayrıca sayısal doğrulamalar da tanımlayabilirsiniz:
 * `lt`: `l`ess `t`han
 * `le`: `l`ess than or `e`qual
 
-/// info | Bilgi
+/// note | Not
 
 `Query`, `Path` ve ileride göreceğiniz diğer class'lar ortak bir `Param` class'ının alt class'larıdır.
 
index c29d8567ea7e433af8ac4d3962e0daf41533e2c3..d1a9b6fca31d5189e1fff871930121250afc96ba 100644 (file)
@@ -20,7 +20,7 @@ Standart Python tip belirteçlerini kullanarak path parametresinin tipini fonksi
 
 Bu durumda, `item_id` bir `int` olarak tanımlanır.
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Bu sayede, fonksiyon içinde hata denetimi, kod tamamlama vb. konularda editör desteğine kavuşursunuz.
 
@@ -34,7 +34,7 @@ Bu örneği çalıştırıp tarayıcınızda [http://127.0.0.1:8000/items/3](htt
 {"item_id":3}
 ```
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Dikkat edin: fonksiyonunuzun aldığı (ve döndürdüğü) değer olan `3`, string `"3"` değil, bir Python `int`'idir.
 
@@ -66,7 +66,7 @@ Ancak tarayıcınızda [http://127.0.0.1:8000/items/foo](http://127.0.0.1:8000/i
 
 Aynı hata, şu örnekte olduğu gibi `int` yerine `float` verirseniz de ortaya çıkar: [http://127.0.0.1:8000/items/4.2](http://127.0.0.1:8000/items/4.2)
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Yani, aynı Python tip tanımıyla birlikte **FastAPI** size veri doğrulama sağlar.
 
@@ -82,7 +82,7 @@ Tarayıcınızı [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) adresi
 
 <img src="/img/tutorial/path-params/image01.png">
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Yine, sadece aynı Python tip tanımıyla **FastAPI** size otomatik ve interaktif dokümantasyon (Swagger UI entegrasyonuyla) sağlar.
 
index 7012cca2032c1c1ab9cc9a8032841010528a577f..7abea5a2fdb99520e4fd4a27da7767b0bd753f77 100644 (file)
@@ -29,7 +29,7 @@ Bunu yapmak için önce şunları import edin:
 
 {* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *}
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI, 0.95.0 sürümünde `Annotated` desteğini ekledi (ve önermeye başladı).
 
@@ -348,7 +348,7 @@ O zaman bir `alias` tanımlayabilirsiniz; bu alias, parametre değerini bulmak i
 
 Diyelim ki artık bu parametreyi istemiyorsunuz.
 
-Bazı client’lar hâlâ kullandığı için bir süre tutmanız gerekiyor, ama dokümanların bunu açıkça <dfn title="kullanımdan kalkmış, kullanmamanız önerilir">deprecated</dfn> olarak göstermesini istiyorsunuz.
+Bazı client’lar hâlâ kullandığı için bir süre tutmanız gerekiyor, ama dokümanların bunu açıkça <dfn title="kullanımdan kalkmış, kullanmamanız önerilir">kullanımdan kalkmış</dfn> olarak göstermesini istiyorsunuz.
 
 O zaman `Query`’ye `deprecated=True` parametresini geçin:
 
@@ -382,7 +382,7 @@ Pydantic’te [`BeforeValidator`](https://docs.pydantic.dev/latest/concepts/vali
 
 {* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
 
-/// info | Bilgi
+/// note | Not
 
 Bu özellik Pydantic 2 ve üzeri sürümlerde mevcuttur. 😎
 
index fa485f51a16a656c14b3c04b696e0fd9603b956f..56e191f056495f9334d51b2a4673338be99c1a25 100644 (file)
@@ -65,7 +65,7 @@ Aynı şekilde, varsayılan değerlerini `None` yaparak isteğe bağlı query pa
 
 Bu durumda, fonksiyon parametresi `q` isteğe bağlı olur ve varsayılan olarak `None` olur.
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Ayrıca, **FastAPI** path parametresi olan `item_id`'nin bir path parametresi olduğunu ve `q`'nun path olmadığını fark edecek kadar akıllıdır; dolayısıyla bu bir query parametresidir.
 
index 0ba4f8af68c80acc1330c456c6f6771abcfca08e..d1f4656d994b48711b6e93d5290afde2fbe34ccd 100644 (file)
@@ -2,11 +2,11 @@
 
 İstemcinin upload edeceği dosyaları `File` kullanarak tanımlayabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 Upload edilen dosyaları alabilmek için önce [`python-multipart`](https://github.com/Kludex/python-multipart) yükleyin.
 
-Bir [virtual environment](../virtual-environments.md) oluşturduğunuzdan, aktive ettiğinizden ve ardından paketi yüklediğinizden emin olun. Örneğin:
+Bir [Sanal ortam](../virtual-environments.md) oluşturduğunuzdan, aktive ettiğinizden ve ardından paketi yüklediğinizden emin olun. Örneğin:
 
 ```console
 $ pip install python-multipart
@@ -28,7 +28,7 @@ Bunun nedeni, upload edilen dosyaların "form data" olarak gönderilmesidir.
 
 {* ../../docs_src/request_files/tutorial001_an_py310.py hl[9] *}
 
-/// info | Bilgi
+/// note | Not
 
 `File`, doğrudan `Form`’dan türeyen bir sınıftır.
 
index 30fdaee1383f850df72a04311b89f94bfd4d3092..6f5532b58b6dbaa6ef5bb742d1b31f36174738eb 100644 (file)
@@ -2,11 +2,11 @@
 
 FastAPI'de **form field**'larını tanımlamak için **Pydantic model**'lerini kullanabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 Form'ları kullanmak için önce [`python-multipart`](https://github.com/Kludex/python-multipart)'ı yükleyin.
 
-Bir [virtual environment](../virtual-environments.md) oluşturduğunuzdan, onu etkinleştirdiğinizden ve ardından paketi kurduğunuzdan emin olun. Örneğin:
+Bir [Sanal ortam](../virtual-environments.md) oluşturduğunuzdan, onu etkinleştirdiğinizden ve ardından paketi kurduğunuzdan emin olun. Örneğin:
 
 ```console
 $ pip install python-multipart
index 96f5adcc2c1d08b464dc155e5f476cc3b9e71d97..fc50491cef379dfc9e5732c58f364f8a62eb6d8c 100644 (file)
@@ -2,7 +2,7 @@
 
 `File` ve `Form` kullanarak aynı anda hem dosyaları hem de form alanlarını tanımlayabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 Yüklenen dosyaları ve/veya form verisini almak için önce [`python-multipart`](https://github.com/Kludex/python-multipart) paketini kurun.
 
index 0b2f39f13dbde1e60b724a4736df63abe79e3882..12139992fc3f7ae7cd6d225e5dfc084659a77b65 100644 (file)
@@ -2,7 +2,7 @@
 
 JSON yerine form alanlarını almanız gerektiğinde `Form` kullanabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 Formları kullanmak için önce [`python-multipart`](https://github.com/Kludex/python-multipart) paketini kurun.
 
@@ -28,11 +28,11 @@ Form parametrelerini `Body` veya `Query` için yaptığınız gibi oluşturun:
 
 Örneğin OAuth2 spesifikasyonunun kullanılabileceği ("password flow" olarak adlandırılan) yollardan birinde, form alanları olarak bir `username` ve `password` göndermek zorunludur.
 
-<dfn title="spesifikasyon">Spesifikasyon</dfn>, alanların adının tam olarak `username` ve `password` olmasını ve JSON değil form alanları olarak gönderilmesini gerektirir.
+<dfn title="spesifikasyon">spesifikasyon</dfn>, alanların adının tam olarak `username` ve `password` olmasını ve JSON değil form alanları olarak gönderilmesini gerektirir.
 
 `Form` ile `Body` (ve `Query`, `Path`, `Cookie`) ile yaptığınız aynı konfigürasyonları tanımlayabilirsiniz; validasyon, örnekler, alias (örn. `username` yerine `user-name`) vb. dahil.
 
-/// info | Bilgi
+/// note | Not
 
 `Form`, doğrudan `Body`'den miras alan bir sınıftır.
 
@@ -62,7 +62,7 @@ Bu encoding'ler ve form alanları hakkında daha fazla okumak isterseniz, [<abbr
 
 /// warning | Uyarı
 
-Bir *path operation* içinde birden fazla `Form` parametresi tanımlayabilirsiniz, ancak JSON olarak almayı beklediğiniz `Body` alanlarını da ayrıca tanımlayamazsınız; çünkü bu durumda request'in body'si `application/x-www-form-urlencoded` ile encode edilmiş olur.
+Bir *path operation* içinde birden fazla `Form` parametresi tanımlayabilirsiniz, ancak JSON olarak almayı beklediğiniz `Body` alanlarını da ayrıca tanımlayamazsınız; çünkü bu durumda request'in body'si `application/json` yerine `application/x-www-form-urlencoded` ile encode edilmiş olur.
 
 Bu **FastAPI**'ın bir kısıtlaması değildir, HTTP protokolünün bir parçasıdır.
 
index 65f20cf98fb2107041fca47997e4bef75ec956b1..063ec905d48e895439df684723feedd5e3ae535d 100644 (file)
@@ -72,7 +72,7 @@ Burada `UserIn` adında bir model declare ediyoruz; bu model plaintext bir passw
 
 {* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *}
 
-/// info | Bilgi
+/// note | Not
 
 `EmailStr` kullanmak için önce [`email-validator`](https://github.com/JoshData/python-email-validator) paketini kurun.
 
@@ -98,7 +98,7 @@ Artık bir browser password ile user oluşturduğunda, API response içinde ayn
 
 Bu örnekte sorun olmayabilir; çünkü password’ü gönderen kullanıcı zaten aynı kişi.
 
-Ancak aynı modeli başka bir *path operation* için kullanırsak, kullanıcının password’lerini her client’a gönderiyor olabiliriz.
+Namun aynı modeli başka bir *path operation* için kullanırsak, kullanıcının password’lerini her client’a gönderiyor olabiliriz.
 
 /// danger
 
@@ -251,7 +251,7 @@ Dolayısıyla ID’si `foo` olan item için bu *path operation*’a request atar
 }
 ```
 
-/// info | Bilgi
+/// note | Not
 
 Ayrıca şunları da kullanabilirsiniz:
 
index c647c259ab08bd78dfe63d1cdeb54c87f8c78368..fa028265b01fbb7f2d3acb73f22daaaf8003d3db 100644 (file)
@@ -18,7 +18,7 @@ Bir response model tanımlayabildiğiniz gibi, herhangi bir *path operation* iç
 
 `status_code` parametresi, HTTP status code'u içeren bir sayı alır.
 
-/// info | Bilgi
+/// note | Bilgi
 
 Alternatif olarak `status_code`, Python'un [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus)'ı gibi bir `IntEnum` da alabilir.
 
index 030db7756599f3a114c58efb248f558b3f9643bd..5c886f862db367846c6a433ab25c2f8319c7a525 100644 (file)
@@ -24,7 +24,7 @@ Aynı tekniği JSON Schema’yı genişletmek ve kendi özel ek bilgilerinizi ek
 
 ///
 
-/// info | Bilgi
+/// note | Bilgi
 
 OpenAPI 3.1.0 (FastAPI 0.99.0’dan beri kullanılıyor), **JSON Schema** standardının bir parçası olan `examples` için destek ekledi.
 
@@ -155,7 +155,7 @@ OpenAPI ayrıca spesifikasyonun diğer bölümlerine de `example` ve `examples`
     * `File()`
     * `Form()`
 
-/// info | Bilgi
+/// note | Bilgi
 
 Bu eski OpenAPI’ye özel `examples` parametresi, FastAPI `0.103.0` sürümünden beri `openapi_examples` olarak kullanılıyor.
 
@@ -171,7 +171,7 @@ Ve artık, deprecated olan eski tekil (ve özel) `example` alanına kıyasla bu
 
 JSON Schema’daki bu yeni `examples` alanı, OpenAPI’de başka yerlerde kullanılan (yukarıda anlatılan) metadata’lı `dict` yapısından farklı olarak **sadece örneklerden oluşan bir `list`**’tir.
 
-/// info | Bilgi
+/// note | Bilgi
 
 OpenAPI 3.1.0, JSON Schema ile bu yeni ve daha basit entegrasyonla yayımlandıktan sonra bile bir süre, otomatik dokümantasyonu sağlayan araç Swagger UI OpenAPI 3.1.0’ı desteklemiyordu (5.0.0 sürümünden beri destekliyor 🎉).
 
index 5aabd7554e72166c533df6b22bc10f73dcdce33b..457f53e8e7fa0dfad79ab0cfd1d1ebb505c8aa15 100644 (file)
@@ -24,13 +24,13 @@ Güvenliği yönetmek için **FastAPI**’nin sunduğu araçları kullanalım.
 
 ## Çalıştırın { #run-it }
 
-/// info | Bilgi
+/// note | Not
 
 The [`python-multipart`](https://github.com/Kludex/python-multipart) paketi, `pip install "fastapi[standard]"` komutunu çalıştırdığınızda **FastAPI** ile birlikte otomatik olarak kurulur.
 
 Ancak `pip install fastapi` komutunu kullanırsanız, `python-multipart` paketi varsayılan olarak dahil edilmez.
 
-Elle kurmak için bir [virtual environment](../../virtual-environments.md) oluşturduğunuzdan, onu aktive ettiğinizden emin olun ve ardından şununla kurun:
+Elle kurmak için bir [Sanal ortam](../../virtual-environments.md) oluşturduğunuzdan, onu aktive ettiğinizden emin olun ve ardından şununla kurun:
 
 ```console
 $ pip install python-multipart
@@ -60,7 +60,7 @@ Etkileşimli dokümantasyona gidin: [http://127.0.0.1:8000/docs](http://127.0.0.
 
 <img src="/img/tutorial/security/image01.png">
 
-/// check | Authorize butonu!
+/// tip | Authorize butonu!
 
 Artık parıl parıl yeni bir "Authorize" butonunuz var.
 
@@ -118,7 +118,7 @@ O yüzden basitleştirilmiş bu bakış açısından üzerinden geçelim:
 
 Bu örnekte **OAuth2**’yi, **Password** flow ile, **Bearer** token kullanarak uygulayacağız. Bunu `OAuth2PasswordBearer` sınıfı ile yaparız.
 
-/// info | Bilgi
+/// note | Not
 
 "Bearer" token tek seçenek değildir.
 
@@ -140,7 +140,7 @@ Burada `tokenUrl="token"`, henüz oluşturmadığımız göreli bir URL olan `to
 
 Göreli URL kullandığımız için, API’niz `https://example.com/` adresinde olsaydı `https://example.com/token` anlamına gelirdi. Ama API’niz `https://example.com/api/v1/` adresinde olsaydı, bu kez `https://example.com/api/v1/token` anlamına gelirdi.
 
-Göreli URL kullanmak, [Behind a Proxy](../../advanced/behind-a-proxy.md) gibi daha ileri kullanım senaryolarında bile uygulamanızın çalışmaya devam etmesini garanti etmek açısından önemlidir.
+Göreli URL kullanmak, [Bir Proxy Arkasında](../../advanced/behind-a-proxy.md) gibi daha ileri kullanım senaryolarında bile uygulamanızın çalışmaya devam etmesini garanti etmek açısından önemlidir.
 
 ///
 
@@ -148,7 +148,7 @@ Bu parametre o endpoint’i / *path operation*’ı oluşturmaz; fakat `/token`
 
 Birazdan gerçek path operation’ı da oluşturacağız.
 
-/// info | Teknik Detaylar
+/// note | Teknik Detaylar
 
 Eğer çok katı bir "Pythonista" iseniz, `token_url` yerine `tokenUrl` şeklindeki parametre adlandırma stilini sevmeyebilirsiniz.
 
@@ -176,7 +176,7 @@ Bu dependency, *path operation function* içindeki `token` parametresine atanaca
 
 **FastAPI**, bu dependency’yi OpenAPI şemasında (ve otomatik API dokümanlarında) bir "security scheme" tanımlamak için kullanabileceğini bilir.
 
-/// info | Teknik Detaylar
+/// note | Teknik Detaylar
 
 **FastAPI**, bir dependency içinde tanımlanan `OAuth2PasswordBearer` sınıfını OpenAPI’de security scheme tanımlamak için kullanabileceğini bilir; çünkü bu sınıf `fastapi.security.oauth2.OAuth2`’den kalıtım alır, o da `fastapi.security.base.SecurityBase`’den kalıtım alır.
 
index cc7f7a51b921a066d784784e15a62a27ccad588c..429f6dcc975a6c4ebfc0528b51ae94fc6999bd87 100644 (file)
@@ -52,7 +52,7 @@ Burada `Depends` kullandığınız için **FastAPI** karışıklık yaşamaz.
 
 ///
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Bu dependency sisteminin tasarımı, hepsi `User` modeli döndüren farklı dependency'lere (farklı "dependable"lara) sahip olmamıza izin verir.
 
index 4b68bc4517cb67c27932f7a5b0fddb9666b49986..077d23f1b4b511decd8ccbd6c9df0abdc294bf38 100644 (file)
@@ -18,7 +18,7 @@ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4
 
 Şifrelenmiş değildir; yani herkes içeriğindeki bilgiyi geri çıkarabilir.
 
-Ancak imzalanmıştır. Bu yüzden, sizin ürettiğiniz bir token'ı aldığınızda, gerçekten onu sizin ürettiğinizi doğrulayabilirsiniz.
+Namun imzalanmıştır. Bu yüzden, sizin ürettiğiniz bir token'ı aldığınızda, gerçekten onu sizin ürettiğinizi doğrulayabilirsiniz.
 
 Bu şekilde, örneğin 1 haftalık süre sonu (expiration) olan bir token oluşturabilirsiniz. Sonra kullanıcı ertesi gün token ile geri geldiğinde, kullanıcının hâlâ sisteminizde oturum açmış olduğunu bilirsiniz.
 
@@ -42,7 +42,7 @@ $ pip install pyjwt
 
 </div>
 
-/// info | Bilgi
+/// note | Not
 
 RSA veya ECDSA gibi dijital imza algoritmaları kullanmayı planlıyorsanız, `pyjwt[crypto]` bağımlılığı olan `cryptography` kütüphanesini kurmalısınız.
 
@@ -213,7 +213,7 @@ Uygulamayı, öncekiyle aynı şekilde authorize edin.
 Username: `johndoe`
 Password: `secret`
 
-/// check | Ek bilgi
+/// tip | İpucu
 
 Kodun hiçbir yerinde düz metin password "`secret`" yok; sadece hash'lenmiş hâli var.
 
index 9893cc800e207d2b39c408e6a947bd5a7a89a133..961e7040049be36f388fb6f1626446b6b9b8c857 100644 (file)
@@ -32,7 +32,7 @@ Genelde belirli güvenlik izinlerini (permission) belirtmek için kullanılırla
 * `instagram_basic` Facebook / Instagram tarafından kullanılır.
 * `https://www.googleapis.com/auth/drive` Google tarafından kullanılır.
 
-/// info | Bilgi
+/// note | Not
 
 OAuth2’de bir "scope", gerekli olan belirli bir izni ifade eden basit bir string’dir.
 
@@ -72,7 +72,7 @@ Bunu zorlamak istiyorsanız, `OAuth2PasswordRequestForm` yerine `OAuth2PasswordR
 * Opsiyonel `client_id` (bu örnekte ihtiyacımız yok).
 * Opsiyonel `client_secret` (bu örnekte ihtiyacımız yok).
 
-/// info | Bilgi
+/// note | Not
 
 `OAuth2PasswordRequestForm`, `OAuth2PasswordBearer` gibi **FastAPI**’ye özel “özel bir sınıf” değildir.
 
@@ -144,7 +144,7 @@ UserInDB(
 )
 ```
 
-/// info | Bilgi
+/// note | Not
 
 `**user_dict` için daha kapsamlı bir açıklama için [**Extra Models** dokümantasyonundaki ilgili bölüme](../extra-models.md#about-user-in-dict) geri dönüp bakın.
 
@@ -196,7 +196,7 @@ Dolayısıyla endpoint’imizde kullanıcıyı ancak kullanıcı varsa, doğru 
 
 {* ../../docs_src/security/tutorial003_an_py310.py hl[58:66,69:74,94] *}
 
-/// info | Bilgi
+/// note | Not
 
 Burada `Bearer` değerine sahip ek `WWW-Authenticate` header’ını döndürmemiz de spesifikasyonun bir parçasıdır.
 
index 3855410125486e8571da19371843ea3089dc93c3..5f3621de4c734694719d197f12235c4e9c0a2808 100644 (file)
@@ -4,7 +4,7 @@
 
 Bu, [JSON Lines Akışı](stream-json-lines.md) ile benzerdir ancak tarayıcılar tarafından yerel olarak desteklenen [`EventSource` API'si](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) ile `text/event-stream` formatını kullanır.
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI 0.135.0'da eklendi.
 
index 200689d71e6ad7210844c9376c4cfcbe7ff7c7b9..d9755d16873007a626290417ff8a4f38b979ad49 100644 (file)
@@ -2,7 +2,7 @@
 
 Bir veri dizisini “akış” olarak göndermek istediğiniz durumlar olabilir; bunu **JSON Lines** ile yapabilirsiniz.
 
-/// info | Bilgi
+/// note | Not
 
 FastAPI 0.134.0 ile eklendi.
 
@@ -48,7 +48,7 @@ Response’un `application/json` yerine `application/jsonl` içerik türü (Cont
 
 Bir JSON dizisine (Python list eşdeğeri) çok benzer; ancak öğeler `[]` içine alınmak ve araya `,` konmak yerine, her satırda **bir JSON nesnesi** vardır; bunlar yeni satır karakteri ile ayrılır.
 
-/// info | Bilgi
+/// note | Not
 
 Önemli nokta, uygulamanız her satırı sırayla üretebilirken, istemcinin de önceki satırları tüketmeye devam edebilmesidir.
 
index c5f8692f7e86e5ba21165d23e00d8041685ce350..4e223d983644434007b6bbf47cda21025c73fea4 100644 (file)
@@ -8,7 +8,7 @@ Bununla birlikte **FastAPI** ile [pytest](https://docs.pytest.org/)'i doğrudan
 
 ## `TestClient` Kullanımı { #using-testclient }
 
-/// info | Bilgi
+/// note | Not
 
 `TestClient` kullanmak için önce [`httpx`](https://www.python-httpx.org)'i kurun.
 
@@ -141,7 +141,7 @@ Sonra testlerinizde aynısını uygularsınız.
 
 Backend'e veri geçme hakkında daha fazla bilgi için (`httpx` veya `TestClient` kullanarak) [HTTPX dokümantasyonu](https://www.python-httpx.org)'na bakın.
 
-/// info | Bilgi
+/// note | Not
 
 `TestClient`'ın Pydantic model'lerini değil, JSON'a dönüştürülebilen verileri aldığını unutmayın.