diff --git a/docs/tr/docs/advanced/additional-responses.md b/docs/tr/docs/advanced/additional-responses.md index 92999b2871..8bf1ea7cd8 100644 --- a/docs/tr/docs/advanced/additional-responses.md +++ b/docs/tr/docs/advanced/additional-responses.md @@ -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`). diff --git a/docs/tr/docs/advanced/advanced-dependencies.md b/docs/tr/docs/advanced/advanced-dependencies.md index 24453f6895..5a75042e64 100644 --- a/docs/tr/docs/advanced/advanced-dependencies.md +++ b/docs/tr/docs/advanced/advanced-dependencies.md @@ -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. diff --git a/docs/tr/docs/advanced/custom-response.md b/docs/tr/docs/advanced/custom-response.md index 73ac29b161..537290eb52 100644 --- a/docs/tr/docs/advanced/custom-response.md +++ b/docs/tr/docs/advanced/custom-response.md @@ -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. diff --git a/docs/tr/docs/advanced/dataclasses.md b/docs/tr/docs/advanced/dataclasses.md index 998ccea8a2..150d0080ae 100644 --- a/docs/tr/docs/advanced/dataclasses.md +++ b/docs/tr/docs/advanced/dataclasses.md @@ -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. diff --git a/docs/tr/docs/advanced/events.md b/docs/tr/docs/advanced/events.md index c66342213d..bc3b0ef588 100644 --- a/docs/tr/docs/advanced/events.md +++ b/docs/tr/docs/advanced/events.md @@ -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. diff --git a/docs/tr/docs/advanced/generate-clients.md b/docs/tr/docs/advanced/generate-clients.md index 80b5f6bbb9..68cb4ab0d8 100644 --- a/docs/tr/docs/advanced/generate-clients.md +++ b/docs/tr/docs/advanced/generate-clients.md @@ -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. 🤓 diff --git a/docs/tr/docs/advanced/openapi-callbacks.md b/docs/tr/docs/advanced/openapi-callbacks.md index 627e6cb6cc..023d975879 100644 --- a/docs/tr/docs/advanced/openapi-callbacks.md +++ b/docs/tr/docs/advanced/openapi-callbacks.md @@ -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. /// diff --git a/docs/tr/docs/advanced/openapi-webhooks.md b/docs/tr/docs/advanced/openapi-webhooks.md index a9f21662ca..eda5ba2188 100644 --- a/docs/tr/docs/advanced/openapi-webhooks.md +++ b/docs/tr/docs/advanced/openapi-webhooks.md @@ -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. diff --git a/docs/tr/docs/advanced/path-operation-advanced-configuration.md b/docs/tr/docs/advanced/path-operation-advanced-configuration.md index 00ce765884..c5d682af7a 100644 --- a/docs/tr/docs/advanced/path-operation-advanced-configuration.md +++ b/docs/tr/docs/advanced/path-operation-advanced-configuration.md @@ -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ı diff --git a/docs/tr/docs/advanced/response-directly.md b/docs/tr/docs/advanced/response-directly.md index 8db51e3513..ce48cf44c1 100644 --- a/docs/tr/docs/advanced/response-directly.md +++ b/docs/tr/docs/advanced/response-directly.md @@ -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. diff --git a/docs/tr/docs/advanced/security/oauth2-scopes.md b/docs/tr/docs/advanced/security/oauth2-scopes.md index 6ac6ea6c1e..c5de15f8d9 100644 --- a/docs/tr/docs/advanced/security/oauth2-scopes.md +++ b/docs/tr/docs/advanced/security/oauth2-scopes.md @@ -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. diff --git a/docs/tr/docs/advanced/stream-data.md b/docs/tr/docs/advanced/stream-data.md index 4310edc350..a71bb32174 100644 --- a/docs/tr/docs/advanced/stream-data.md +++ b/docs/tr/docs/advanced/stream-data.md @@ -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. diff --git a/docs/tr/docs/advanced/strict-content-type.md b/docs/tr/docs/advanced/strict-content-type.md index 94716e31fa..93c23b83b4 100644 --- a/docs/tr/docs/advanced/strict-content-type.md +++ b/docs/tr/docs/advanced/strict-content-type.md @@ -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. diff --git a/docs/tr/docs/advanced/websockets.md b/docs/tr/docs/advanced/websockets.md index d15d635592..103a0aa18a 100644 --- a/docs/tr/docs/advanced/websockets.md +++ b/docs/tr/docs/advanced/websockets.md @@ -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. diff --git a/docs/tr/docs/advanced/wsgi.md b/docs/tr/docs/advanced/wsgi.md index 06a3f2834f..84eb7981ab 100644 --- a/docs/tr/docs/advanced/wsgi.md +++ b/docs/tr/docs/advanced/wsgi.md @@ -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ı. diff --git a/docs/tr/docs/deployment/docker.md b/docs/tr/docs/deployment/docker.md index 0b2da213c3..3f73ec1eff 100644 --- a/docs/tr/docs/deployment/docker.md +++ b/docs/tr/docs/deployment/docker.md @@ -132,7 +132,7 @@ Successfully installed fastapi pydantic -/// 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. diff --git a/docs/tr/docs/deployment/fastapicloud.md b/docs/tr/docs/deployment/fastapicloud.md index 890e319154..eecf25d667 100644 --- a/docs/tr/docs/deployment/fastapicloud.md +++ b/docs/tr/docs/deployment/fastapicloud.md @@ -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: - -
- -```console -$ fastapi login - -You are logged in to FastAPI Cloud 🚀 -``` - -
- -## 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. 🚀
@@ -36,20 +16,22 @@ Deploying to FastAPI Cloud...
+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. 🤓 diff --git a/docs/tr/docs/deployment/manually.md b/docs/tr/docs/deployment/manually.md index 08a5481727..de3d14348c 100644 --- a/docs/tr/docs/deployment/manually.md +++ b/docs/tr/docs/deployment/manually.md @@ -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 } diff --git a/docs/tr/docs/deployment/server-workers.md b/docs/tr/docs/deployment/server-workers.md index 0cb9831a89..878048e32c 100644 --- a/docs/tr/docs/deployment/server-workers.md +++ b/docs/tr/docs/deployment/server-workers.md @@ -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). diff --git a/docs/tr/docs/how-to/extending-openapi.md b/docs/tr/docs/how-to/extending-openapi.md index 7fe8649e1f..bbda88ca2a 100644 --- a/docs/tr/docs/how-to/extending-openapi.md +++ b/docs/tr/docs/how-to/extending-openapi.md @@ -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. diff --git a/docs/tr/docs/how-to/separate-openapi-schemas.md b/docs/tr/docs/how-to/separate-openapi-schemas.md index c26411d292..c2948269b3 100644 --- a/docs/tr/docs/how-to/separate-openapi-schemas.md +++ b/docs/tr/docs/how-to/separate-openapi-schemas.md @@ -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. 🤓 diff --git a/docs/tr/docs/index.md b/docs/tr/docs/index.md index f6101be0d3..edc8a51383 100644 --- a/docs/tr/docs/index.md +++ b/docs/tr/docs/index.md @@ -492,9 +492,7 @@ Daha fazla özellik içeren daha kapsamlı bir örnek için @@ -510,6 +508,8 @@ Deploying to FastAPI Cloud... +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 } diff --git a/docs/tr/docs/tutorial/bigger-applications.md b/docs/tr/docs/tutorial/bigger-applications.md index fb0d2e73df..b44d5bb9bc 100644 --- a/docs/tr/docs/tutorial/bigger-applications.md +++ b/docs/tr/docs/tutorial/bigger-applications.md @@ -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. + +/// diff --git a/docs/tr/docs/tutorial/body-multiple-params.md b/docs/tr/docs/tutorial/body-multiple-params.md index 4cd381b869..be6ab676d7 100644 --- a/docs/tr/docs/tutorial/body-multiple-params.md +++ b/docs/tr/docs/tutorial/body-multiple-params.md @@ -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: diff --git a/docs/tr/docs/tutorial/body-nested-models.md b/docs/tr/docs/tutorial/body-nested-models.md index 4f078e035c..bcf3057ef4 100644 --- a/docs/tr/docs/tutorial/body-nested-models.md +++ b/docs/tr/docs/tutorial/body-nested-models.md @@ -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. diff --git a/docs/tr/docs/tutorial/body.md b/docs/tr/docs/tutorial/body.md index 26f51ffeca..74b3d37077 100644 --- a/docs/tr/docs/tutorial/body.md +++ b/docs/tr/docs/tutorial/body.md @@ -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`. diff --git a/docs/tr/docs/tutorial/cookie-param-models.md b/docs/tr/docs/tutorial/cookie-param-models.md index 0fa399c6ae..9b4984bcf0 100644 --- a/docs/tr/docs/tutorial/cookie-param-models.md +++ b/docs/tr/docs/tutorial/cookie-param-models.md @@ -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: -/// 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. diff --git a/docs/tr/docs/tutorial/cookie-params.md b/docs/tr/docs/tutorial/cookie-params.md index 28b57fd7e1..2cec37fd0d 100644 --- a/docs/tr/docs/tutorial/cookie-params.md +++ b/docs/tr/docs/tutorial/cookie-params.md @@ -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**. diff --git a/docs/tr/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/tr/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md index 8764d736fe..caafcafaaf 100644 --- a/docs/tr/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md +++ b/docs/tr/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md @@ -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. diff --git a/docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md index 5ed7660c50..7f56a95c71 100644 --- a/docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md +++ b/docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md @@ -1,6 +1,6 @@ # `yield` ile Dependency'ler { #dependencies-with-yield } -FastAPI, işini bitirdikten sonra ek adımlar çalıştıran dependency'leri destekler. +FastAPI, işini bitirdikten sonra ek adımlar ç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. diff --git a/docs/tr/docs/tutorial/dependencies/index.md b/docs/tr/docs/tutorial/dependencies/index.md index 6cf626e05a..21809fc0a7 100644 --- a/docs/tr/docs/tutorial/dependencies/index.md +++ b/docs/tr/docs/tutorial/dependencies/index.md @@ -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. diff --git a/docs/tr/docs/tutorial/dependencies/sub-dependencies.md b/docs/tr/docs/tutorial/dependencies/sub-dependencies.md index ab196d829f..706b5a4f7e 100644 --- a/docs/tr/docs/tutorial/dependencies/sub-dependencies.md +++ b/docs/tr/docs/tutorial/dependencies/sub-dependencies.md @@ -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`. diff --git a/docs/tr/docs/tutorial/first-steps.md b/docs/tr/docs/tutorial/first-steps.md index 0ffa28dbfa..1d5cf6fbc9 100644 --- a/docs/tr/docs/tutorial/first-steps.md +++ b/docs/tr/docs/tutorial/first-steps.md @@ -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: - -
+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 ``` -
+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. 🚀
@@ -226,6 +216,8 @@ Deploying to FastAPI Cloud...
+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 `/` * get operation kullanarak -/// info | `@decorator` Bilgisi +/// note | `@decorator` Bilgisi Python'daki `@something` söz dizimi "decorator" olarak adlandırılır. diff --git a/docs/tr/docs/tutorial/metadata.md b/docs/tr/docs/tutorial/metadata.md index a8d44570f7..5ed3f85801 100644 --- a/docs/tr/docs/tutorial/metadata.md +++ b/docs/tr/docs/tutorial/metadata.md @@ -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). /// diff --git a/docs/tr/docs/tutorial/path-operation-configuration.md b/docs/tr/docs/tutorial/path-operation-configuration.md index 3653090af4..75057bb267 100644 --- a/docs/tr/docs/tutorial/path-operation-configuration.md +++ b/docs/tr/docs/tutorial/path-operation-configuration.md @@ -66,19 +66,19 @@ Interactive docs’ta şöyle kullanılacaktır: -## 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. diff --git a/docs/tr/docs/tutorial/path-params-numeric-validations.md b/docs/tr/docs/tutorial/path-params-numeric-validations.md index 43da894bb9..1e6121f990 100644 --- a/docs/tr/docs/tutorial/path-params-numeric-validations.md +++ b/docs/tr/docs/tutorial/path-params-numeric-validations.md @@ -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. diff --git a/docs/tr/docs/tutorial/path-params.md b/docs/tr/docs/tutorial/path-params.md index c29d8567ea..d1a9b6fca3 100644 --- a/docs/tr/docs/tutorial/path-params.md +++ b/docs/tr/docs/tutorial/path-params.md @@ -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 -/// 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. diff --git a/docs/tr/docs/tutorial/query-params-str-validations.md b/docs/tr/docs/tutorial/query-params-str-validations.md index 7012cca203..7abea5a2fd 100644 --- a/docs/tr/docs/tutorial/query-params-str-validations.md +++ b/docs/tr/docs/tutorial/query-params-str-validations.md @@ -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 deprecated 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 kullanımdan kalkmış 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. 😎 diff --git a/docs/tr/docs/tutorial/query-params.md b/docs/tr/docs/tutorial/query-params.md index fa485f51a1..56e191f056 100644 --- a/docs/tr/docs/tutorial/query-params.md +++ b/docs/tr/docs/tutorial/query-params.md @@ -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. diff --git a/docs/tr/docs/tutorial/request-files.md b/docs/tr/docs/tutorial/request-files.md index 0ba4f8af68..d1f4656d99 100644 --- a/docs/tr/docs/tutorial/request-files.md +++ b/docs/tr/docs/tutorial/request-files.md @@ -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. diff --git a/docs/tr/docs/tutorial/request-form-models.md b/docs/tr/docs/tutorial/request-form-models.md index 30fdaee138..6f5532b58b 100644 --- a/docs/tr/docs/tutorial/request-form-models.md +++ b/docs/tr/docs/tutorial/request-form-models.md @@ -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 diff --git a/docs/tr/docs/tutorial/request-forms-and-files.md b/docs/tr/docs/tutorial/request-forms-and-files.md index 96f5adcc2c..fc50491cef 100644 --- a/docs/tr/docs/tutorial/request-forms-and-files.md +++ b/docs/tr/docs/tutorial/request-forms-and-files.md @@ -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. diff --git a/docs/tr/docs/tutorial/request-forms.md b/docs/tr/docs/tutorial/request-forms.md index 0b2f39f13d..12139992fc 100644 --- a/docs/tr/docs/tutorial/request-forms.md +++ b/docs/tr/docs/tutorial/request-forms.md @@ -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. -Spesifikasyon, alanların adının tam olarak `username` ve `password` olmasını ve JSON değil form alanları olarak gönderilmesini gerektirir. +spesifikasyon, 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, [ -/// 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. diff --git a/docs/tr/docs/tutorial/security/get-current-user.md b/docs/tr/docs/tutorial/security/get-current-user.md index cc7f7a51b9..429f6dcc97 100644 --- a/docs/tr/docs/tutorial/security/get-current-user.md +++ b/docs/tr/docs/tutorial/security/get-current-user.md @@ -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. diff --git a/docs/tr/docs/tutorial/security/oauth2-jwt.md b/docs/tr/docs/tutorial/security/oauth2-jwt.md index 4b68bc4517..077d23f1b4 100644 --- a/docs/tr/docs/tutorial/security/oauth2-jwt.md +++ b/docs/tr/docs/tutorial/security/oauth2-jwt.md @@ -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 -/// 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. diff --git a/docs/tr/docs/tutorial/security/simple-oauth2.md b/docs/tr/docs/tutorial/security/simple-oauth2.md index 9893cc800e..961e704004 100644 --- a/docs/tr/docs/tutorial/security/simple-oauth2.md +++ b/docs/tr/docs/tutorial/security/simple-oauth2.md @@ -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. diff --git a/docs/tr/docs/tutorial/server-sent-events.md b/docs/tr/docs/tutorial/server-sent-events.md index 3855410125..5f3621de4c 100644 --- a/docs/tr/docs/tutorial/server-sent-events.md +++ b/docs/tr/docs/tutorial/server-sent-events.md @@ -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. diff --git a/docs/tr/docs/tutorial/stream-json-lines.md b/docs/tr/docs/tutorial/stream-json-lines.md index 200689d71e..d9755d1687 100644 --- a/docs/tr/docs/tutorial/stream-json-lines.md +++ b/docs/tr/docs/tutorial/stream-json-lines.md @@ -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. diff --git a/docs/tr/docs/tutorial/testing.md b/docs/tr/docs/tutorial/testing.md index c5f8692f7e..4e223d9836 100644 --- a/docs/tr/docs/tutorial/testing.md +++ b/docs/tr/docs/tutorial/testing.md @@ -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.