Browse Source

🌐 Update translations for tr (update-outdated) (#15891)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <[email protected]>
pull/15909/head
Sebastián Ramírez 21 hours ago
committed by GitHub
parent
commit
e7324a77db
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 10
      docs/tr/docs/_llm-test.md
  2. 1
      docs/tr/docs/advanced/additional-status-codes.md
  3. 2
      docs/tr/docs/advanced/advanced-dependencies.md
  4. 1
      docs/tr/docs/advanced/dataclasses.md
  5. 2
      docs/tr/docs/advanced/events.md
  6. 14
      docs/tr/docs/advanced/generate-clients.md
  7. 2
      docs/tr/docs/advanced/json-base64-bytes.md
  8. 4
      docs/tr/docs/advanced/openapi-callbacks.md
  9. 4
      docs/tr/docs/advanced/response-change-status-code.md
  10. 2
      docs/tr/docs/advanced/response-cookies.md
  11. 1
      docs/tr/docs/advanced/response-headers.md
  12. 1
      docs/tr/docs/advanced/security/oauth2-scopes.md
  13. 1
      docs/tr/docs/advanced/settings.md
  14. 4
      docs/tr/docs/advanced/stream-data.md
  15. 1
      docs/tr/docs/advanced/wsgi.md
  16. 66
      docs/tr/docs/alternatives.md
  17. 12
      docs/tr/docs/async.md
  18. 2
      docs/tr/docs/deployment/cloud.md
  19. 1
      docs/tr/docs/deployment/concepts.md
  20. 6
      docs/tr/docs/deployment/docker.md
  21. 4
      docs/tr/docs/deployment/https.md
  22. 1
      docs/tr/docs/deployment/manually.md
  23. 2
      docs/tr/docs/editor-support.md
  24. 34
      docs/tr/docs/environment-variables.md
  25. 4
      docs/tr/docs/features.md
  26. 4
      docs/tr/docs/help-fastapi.md
  27. 4
      docs/tr/docs/how-to/configure-swagger-ui.md
  28. 1
      docs/tr/docs/how-to/custom-request-and-route.md
  29. 1
      docs/tr/docs/how-to/graphql.md
  30. 18
      docs/tr/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md
  31. 2
      docs/tr/docs/how-to/separate-openapi-schemas.md
  32. 6
      docs/tr/docs/index.md
  33. 1
      docs/tr/docs/project-generation.md
  34. 1
      docs/tr/docs/python-types.md
  35. 32
      docs/tr/docs/tutorial/bigger-applications.md
  36. 1
      docs/tr/docs/tutorial/body-nested-models.md
  37. 1
      docs/tr/docs/tutorial/body.md
  38. 2
      docs/tr/docs/tutorial/debugging.md
  39. 5
      docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md
  40. 2
      docs/tr/docs/tutorial/extra-data-types.md
  41. 1
      docs/tr/docs/tutorial/extra-models.md
  42. 1
      docs/tr/docs/tutorial/first-steps.md
  43. 2
      docs/tr/docs/tutorial/handling-errors.md
  44. 4
      docs/tr/docs/tutorial/index.md
  45. 2
      docs/tr/docs/tutorial/metadata.md
  46. 1
      docs/tr/docs/tutorial/path-operation-configuration.md
  47. 1
      docs/tr/docs/tutorial/query-params-str-validations.md
  48. 4
      docs/tr/docs/tutorial/query-params.md
  49. 2
      docs/tr/docs/tutorial/request-files.md
  50. 1
      docs/tr/docs/tutorial/request-forms.md
  51. 4
      docs/tr/docs/tutorial/response-status-code.md
  52. 8
      docs/tr/docs/tutorial/schema-extra-example.md
  53. 2
      docs/tr/docs/tutorial/security/first-steps.md
  54. 2
      docs/tr/docs/tutorial/security/get-current-user.md
  55. 4
      docs/tr/docs/tutorial/security/oauth2-jwt.md
  56. 2
      docs/tr/docs/tutorial/security/simple-oauth2.md
  57. 2
      docs/tr/docs/tutorial/sql-databases.md
  58. 8
      docs/tr/docs/tutorial/static-files.md
  59. 3
      docs/tr/docs/tutorial/testing.md
  60. 6
      docs/tr/docs/virtual-environments.md

10
docs/tr/docs/_llm-test.md

@ -37,7 +37,7 @@ Code snippet'lerin içeriği olduğu gibi bırakılmalıdır.
Dün bir arkadaşım şunu yazdı: "If you spell incorrectly correctly, you have spelled it incorrectly". Ben de şunu yanıtladım: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'". Dün bir arkadaşım şunu yazdı: "If you spell incorrectly correctly, you have spelled it incorrectly". Ben de şunu yanıtladım: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'".
/// note /// note | Not
LLM muhtemelen bunu yanlış çevirecektir. Yeniden çeviri yapıldığında düzeltilmiş çeviriyi koruyup korumadığı önemlidir. LLM muhtemelen bunu yanlış çevirecektir. Yeniden çeviri yapıldığında düzeltilmiş çeviriyi koruyup korumadığı önemlidir.
@ -124,7 +124,7 @@ Code block'ların içindeki code değiştirilmemelidir; tek istisna yorumlardır
//// tab | Test //// tab | Test
/// note /// note | Not
Bazı metin Bazı metin
/// ///
@ -132,15 +132,15 @@ Bazı metin
Bazı metin Bazı metin
/// ///
/// tip /// tip | İpucu
Bazı metin Bazı metin
/// ///
/// warning /// warning | Uyarı
Bazı metin Bazı metin
/// ///
/// danger /// danger | Tehlike
Bazı metin Bazı metin
/// ///

1
docs/tr/docs/advanced/additional-status-codes.md

@ -1,5 +1,6 @@
# Ek Status Code'ları { #additional-status-codes } # Ek Status Code'ları { #additional-status-codes }
Varsayılan olarak **FastAPI**, response'ları bir `JSONResponse` kullanarak döndürür; *path operation*'ınızdan döndürdüğünüz içeriği bu `JSONResponse`'un içine yerleştirir. Varsayılan olarak **FastAPI**, response'ları bir `JSONResponse` kullanarak döndürür; *path operation*'ınızdan döndürdüğünüz içeriği bu `JSONResponse`'un içine yerleştirir.
Varsayılan status code'u veya *path operation* içinde sizin belirlediğiniz status code'u kullanır. Varsayılan status code'u veya *path operation* içinde sizin belirlediğiniz status code'u kullanır.

2
docs/tr/docs/advanced/advanced-dependencies.md

@ -78,7 +78,7 @@ Bu detaylar, özellikle 0.121.0'dan eski bir FastAPI uygulamanız varsa ve `yiel
### `yield` ve `scope` ile dependency'ler { #dependencies-with-yield-and-scope } ### `yield` ve `scope` ile dependency'ler { #dependencies-with-yield-and-scope }
0.121.0 sürümünde FastAPI, `Depends(scope="function")` desteğini ekledi. 0.121.0 sürümünde FastAPI, `yield` kullanan dependency'ler için `Depends(scope="function")` desteğini ekledi.
`Depends(scope="function")` kullanıldığında, `yield` sonrasındaki çıkış kodu, *path operation function* biter bitmez, response client'a geri gönderilmeden önce çalıştırılır. `Depends(scope="function")` kullanıldığında, `yield` sonrasındaki çıkış kodu, *path operation function* biter bitmez, response client'a geri gönderilmeden önce çalıştırılır.

1
docs/tr/docs/advanced/dataclasses.md

@ -1,5 +1,6 @@
# Dataclass Kullanımı { #using-dataclasses } # Dataclass Kullanımı { #using-dataclasses }
FastAPI, **Pydantic** üzerine inşa edilmiştir ve request/response tanımlamak için Pydantic model'lerini nasıl kullanacağınızı gösteriyordum. FastAPI, **Pydantic** üzerine inşa edilmiştir ve request/response tanımlamak için Pydantic model'lerini nasıl kullanacağınızı gösteriyordum.
Ancak FastAPI, [`dataclasses`](https://docs.python.org/3/library/dataclasses.html) kullanmayı da aynı şekilde destekler: Ancak FastAPI, [`dataclasses`](https://docs.python.org/3/library/dataclasses.html) kullanmayı da aynı şekilde destekler:

2
docs/tr/docs/advanced/events.md

@ -2,7 +2,7 @@
Uygulama **başlamadan** önce çalıştırılması gereken mantığı (kodu) tanımlayabilirsiniz. Bu, bu kodun **bir kez**, uygulama **request almaya başlamadan önce** çalıştırılacağı anlamına gelir. Uygulama **başlamadan** önce çalıştırılması gereken mantığı (kodu) tanımlayabilirsiniz. Bu, bu kodun **bir kez**, uygulama **request almaya başlamadan önce** çalıştırılacağı anlamına gelir.
Benzer şekilde, uygulama **kapanırken** çalıştırılması gereken mantığı (kodu) da tanımlayabilirsiniz. Bu durumda bu kod, muhtemelen **çok sayıda request** işlendi **sonra**, **bir kez** çalıştırılır. Benzer şekilde, uygulama **kapanırken** çalıştırılması gereken mantığı (kodu) da tanımlayabilirsiniz. Bu durumda bu kod, muhtemelen **çok sayıda request** işlendikten **sonra**, **bir kez** çalıştırılır.
Bu kod, uygulama request almaya **başlamadan** önce ve request’leri işlemeyi **bitirdikten** hemen sonra çalıştığı için, uygulamanın tüm **lifespan**’ını (birazdan "lifespan" kelimesi önemli olacak 😉) kapsar. Bu kod, uygulama request almaya **başlamadan** önce ve request’leri işlemeyi **bitirdikten** hemen sonra çalıştığı için, uygulamanın tüm **lifespan**’ını (birazdan "lifespan" kelimesi önemli olacak 😉) kapsar.

14
docs/tr/docs/advanced/generate-clients.md

@ -20,20 +20,6 @@ FastAPI otomatik olarak **OpenAPI 3.1** spesifikasyonları üretir; bu yüzden k
/// ///
## FastAPI Sponsorlarından SDK Üreteçleri { #sdk-generators-from-fastapi-sponsors }
Bu bölüm, FastAPI'yi sponsorlayan şirketlerin sunduğu **yatırım destekli** ve **şirket destekli** çözümleri öne çıkarır. Bu ürünler, yüksek kaliteli üretilen SDK'ların üzerine **ek özellikler** ve **entegrasyonlar** sağlar.
✨ [**FastAPI'ye sponsor olarak**](../help-fastapi.md#sponsor-the-author) ✨ bu şirketler, framework'ün ve **ekosisteminin** sağlıklı ve **sürdürülebilir** kalmasına yardımcı olur.
Sponsor olmaları aynı zamanda FastAPI **topluluğuna** (size) güçlü bir bağlılığı da gösterir; yalnızca **iyi bir hizmet** sunmayı değil, aynı zamanda **güçlü ve gelişen bir framework** olan FastAPI'yi desteklemeyi de önemsediklerini gösterir. 🙇
Örneğin şunları deneyebilirsiniz:
* [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
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. 🤓
## TypeScript SDK Oluşturma { #create-a-typescript-sdk } ## TypeScript SDK Oluşturma { #create-a-typescript-sdk }
Basit bir FastAPI uygulamasıyla başlayalım: Basit bir FastAPI uygulamasıyla başlayalım:

2
docs/tr/docs/advanced/json-base64-bytes.md

@ -4,7 +4,7 @@ Uygulamanız JSON veri alıp gönderiyorsa ve bunun içine ikili (binary) veri e
## Base64 ve Dosyalar { #base64-vs-files } ## Base64 ve Dosyalar { #base64-vs-files }
İkili veriyi JSON içinde encode etmek yerine, yükleme için [Request Files](../tutorial/request-files.md) ve gönderim için [Custom Response - FileResponse](./custom-response.md#fileresponse--fileresponse-) kullanıp kullanamayacağınıza önce bir bakın. İkili veriyi JSON içinde encode etmek yerine, yükleme için [Request Files](../tutorial/request-files.md) ve gönderim için [Custom Response - FileResponse](./custom-response.md#fileresponse) kullanıp kullanamayacağınıza önce bir bakın.
JSON sadece UTF-8 ile encode edilmiş string'ler içerebilir, dolayısıyla ham bytes içeremez. JSON sadece UTF-8 ile encode edilmiş string'ler içerebilir, dolayısıyla ham bytes içeremez.

4
docs/tr/docs/advanced/openapi-callbacks.md

@ -167,13 +167,13 @@ Callback URL'sinin, `callback_url` içindeki query parametresi olarak alınan UR
Bu noktada, yukarıda oluşturduğunuz callback router'ında gerekli callback *path operation*'ları (external geliştiricinin *external API*'de implemente etmesi gerekenler) hazır. Bu noktada, yukarıda oluşturduğunuz callback router'ında gerekli callback *path operation*'ları (external geliştiricinin *external API*'de implemente etmesi gerekenler) hazır.
Şimdi sizin API'nizin *path operation decorator*'ında `callbacks` parametresini kullanarak, callback router'ının `.routes` attribute'unu (bu aslında route/*path operation*'lardan oluşan bir `list`) geçin: Şimdi sizin API'nizin *path operation decorator*'ında `callbacks` parametresini kullanarak, callback router'ının `.routes` attribute'unu geçin:
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[33] *} {* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[33] *}
/// tip | İpucu /// 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. FastAPI bu route'ları callback OpenAPI dokümantasyonunu üretmek için kullanacaktır. `callbacks=` 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.
/// ///

4
docs/tr/docs/advanced/response-change-status-code.md

@ -18,7 +18,7 @@ Bu tür durumlarda bir `Response` parametresi kullanabilirsiniz.
*Path operation function* içinde `Response` tipinde bir parametre tanımlayabilirsiniz (cookie ve header'lar için yapabildiğiniz gibi). *Path operation function* içinde `Response` tipinde bir parametre tanımlayabilirsiniz (cookie ve header'lar için yapabildiğiniz gibi).
Ardından bu *geçici (temporal)* `Response` nesnesi üzerinde `status_code` değerini ayarlayabilirsiniz. Ardından bu *geçici* `Response` nesnesi üzerinde `status_code` değerini ayarlayabilirsiniz.
{* ../../docs_src/response_change_status_code/tutorial001_py310.py hl[1,9,12] *} {* ../../docs_src/response_change_status_code/tutorial001_py310.py hl[1,9,12] *}
@ -26,6 +26,6 @@ Sonrasında, normalde yaptığınız gibi ihtiyacınız olan herhangi bir nesney
Ve eğer bir `response_model` tanımladıysanız, döndürdüğünüz nesneyi filtrelemek ve dönüştürmek için yine kullanılacaktır. Ve eğer bir `response_model` tanımladıysanız, döndürdüğünüz nesneyi filtrelemek ve dönüştürmek için yine kullanılacaktır.
**FastAPI**, status code'u (ayrıca cookie ve header'ları) bu *geçici (temporal)* response'tan alır ve `response_model` ile filtrelenmiş, sizin döndürdüğünüz değeri içeren nihai response'a yerleştirir. **FastAPI**, status code'u (ayrıca cookie ve header'ları) bu *geçici* response'tan alır ve `response_model` ile filtrelenmiş, sizin döndürdüğünüz değeri içeren nihai response'a yerleştirir.
Ayrıca `Response` parametresini dependency'lerde de tanımlayıp status code'u orada ayarlayabilirsiniz. Ancak unutmayın, en son ayarlanan değer geçerli olur. Ayrıca `Response` parametresini dependency'lerde de tanımlayıp status code'u orada ayarlayabilirsiniz. Ancak unutmayın, en son ayarlanan değer geçerli olur.

2
docs/tr/docs/advanced/response-cookies.md

@ -26,7 +26,7 @@ Sonra bunun içinde Cookie'leri set edin ve response'u döndürün:
{* ../../docs_src/response_cookies/tutorial001_py310.py hl[10:12] *} {* ../../docs_src/response_cookies/tutorial001_py310.py hl[10:12] *}
/// tip /// tip | İpucu
`Response` parametresini kullanmak yerine doğrudan bir response döndürürseniz, FastAPI onu olduğu gibi (doğrudan) döndürür. `Response` parametresini kullanmak yerine doğrudan bir response döndürürseniz, FastAPI onu olduğu gibi (doğrudan) döndürür.

1
docs/tr/docs/advanced/response-headers.md

@ -1,5 +1,6 @@
# Response Header'ları { #response-headers } # Response Header'ları { #response-headers }
## Bir `Response` parametresi kullanın { #use-a-response-parameter } ## Bir `Response` parametresi kullanın { #use-a-response-parameter }
*Path operation function* içinde (cookie'lerde yapabildiğiniz gibi) tipi `Response` olan bir parametre tanımlayabilirsiniz. *Path operation function* içinde (cookie'lerde yapabildiğiniz gibi) tipi `Response` olan bir parametre tanımlayabilirsiniz.

1
docs/tr/docs/advanced/security/oauth2-scopes.md

@ -1,5 +1,6 @@
# OAuth2 scope'ları { #oauth2-scopes } # OAuth2 scope'ları { #oauth2-scopes }
OAuth2 scope'larını **FastAPI** ile doğrudan kullanabilirsiniz; sorunsuz çalışacak şekilde entegre edilmiştir. OAuth2 scope'larını **FastAPI** ile doğrudan kullanabilirsiniz; sorunsuz çalışacak şekilde entegre edilmiştir.
Bu sayede OAuth2 standardını takip eden, daha ince taneli bir izin sistemini OpenAPI uygulamanıza (ve API dokümanlarınıza) entegre edebilirsiniz. Bu sayede OAuth2 standardını takip eden, daha ince taneli bir izin sistemini OpenAPI uygulamanıza (ve API dokümanlarınıza) entegre edebilirsiniz.

1
docs/tr/docs/advanced/settings.md

@ -1,5 +1,6 @@
# Ayarlar ve Ortam Değişkenleri { #settings-and-environment-variables } # Ayarlar ve Ortam Değişkenleri { #settings-and-environment-variables }
Birçok durumda uygulamanızın bazı harici ayarlara veya konfigürasyonlara ihtiyacı olabilir; örneğin secret key'ler, veritabanı kimlik bilgileri, e-posta servisleri için kimlik bilgileri vb. Birçok durumda uygulamanızın bazı harici ayarlara veya konfigürasyonlara ihtiyacı olabilir; örneğin secret key'ler, veritabanı kimlik bilgileri, e-posta servisleri için kimlik bilgileri vb.
Bu ayarların çoğu değişkendir (değişebilir); örneğin veritabanı URL'leri. Ayrıca birçoğu hassas olabilir; örneğin secret'lar. Bu ayarların çoğu değişkendir (değişebilir); örneğin veritabanı URL'leri. Ayrıca birçoğu hassas olabilir; örneğin secret'lar.

4
docs/tr/docs/advanced/stream-data.md

@ -2,7 +2,7 @@
Veriyi JSON olarak yapılandırabiliyorsanız, [JSON Lines Akışı](../tutorial/stream-json-lines.md) kullanın. Veriyi JSON olarak yapılandırabiliyorsanız, [JSON Lines Akışı](../tutorial/stream-json-lines.md) kullanın.
Ancak saf ikili (binary) veri ya da string akıtmak istiyorsanız, bunu şöyle yapabilirsiniz. Ancak **saf ikili (binary) veri** ya da string akıtmak istiyorsanız, bunu şöyle yapabilirsiniz.
/// note | Not /// note | Not
@ -40,7 +40,7 @@ FastAPI veriyi Pydantic ile JSON'a çevirmeye veya herhangi bir şekilde serile
{* ../../docs_src/stream_data/tutorial001_py310.py ln[32:35] hl[33] *} {* ../../docs_src/stream_data/tutorial001_py310.py ln[32:35] hl[33] *}
Bu aynı zamanda `StreamingResponse` ile veriyi tam olarak ihtiyaç duyduğunuz biçimde üretme ve encode etme konusunda hem bir özgürlük hem de bir sorumluluk verdiği anlamına gelir; tip annotasyonlarından bağımsızdır. 🤓 Bu aynı zamanda `StreamingResponse` ile veriyi tam olarak ihtiyaç duyduğunuz biçimde üretme ve encode etme konusunda hem bir **özgürlük** hem de bir **sorumluluk** verdiği anlamına gelir; tip annotasyonlarından bağımsızdır. 🤓
### Bytes Akışı { #stream-bytes } ### Bytes Akışı { #stream-bytes }

1
docs/tr/docs/advanced/wsgi.md

@ -1,5 +1,6 @@
# WSGI'yi Dahil Etme - Flask, Django ve Diğerleri { #including-wsgi-flask-django-others } # WSGI'yi Dahil Etme - Flask, Django ve Diğerleri { #including-wsgi-flask-django-others }
WSGI uygulamalarını [Alt Uygulamalar - Mount Etme](sub-applications.md), [Bir Proxy Arkasında](behind-a-proxy.md) bölümlerinde gördüğünüz gibi mount edebilirsiniz. WSGI uygulamalarını [Alt Uygulamalar - Mount Etme](sub-applications.md), [Bir Proxy Arkasında](behind-a-proxy.md) bölümlerinde gördüğünüz gibi mount edebilirsiniz.
Bunun için `WSGIMiddleware`'ı kullanabilir ve bunu WSGI uygulamanızı (örneğin Flask, Django vb.) sarmalamak için kullanabilirsiniz. Bunun için `WSGIMiddleware`'ı kullanabilir ve bunu WSGI uygulamanızı (örneğin Flask, Django vb.) sarmalamak için kullanabilirsiniz.

66
docs/tr/docs/alternatives.md

@ -10,7 +10,7 @@ Başkalarının daha önceki çalışmaları olmasaydı, **FastAPI** var olmazd
Yıllarca yeni bir framework oluşturmaktan kaçındım. Önce **FastAPI**’ın bugün kapsadığı özelliklerin tamamını, birçok farklı framework, eklenti ve araçla çözmeyi denedim. Yıllarca yeni bir framework oluşturmaktan kaçındım. Önce **FastAPI**’ın bugün kapsadığı özelliklerin tamamını, birçok farklı framework, eklenti ve araçla çözmeyi denedim.
Namun bir noktada, geçmişteki araçlardan en iyi fikirleri alıp, mümkün olan en iyi şekilde birleştiren ve daha önce mevcut olmayan dil özelliklerini (Python 3.6+ tip belirteçleri) kullanarak tüm bu özellikleri sağlayan bir şey geliştirmekten başka seçenek kalmadı. Ancak bir noktada, geçmişteki araçlardan en iyi fikirleri alıp, mümkün olan en iyi şekilde birleştiren ve daha önce mevcut olmayan dil özelliklerini (Python 3.6+ tip belirteçleri) kullanarak tüm bu özellikleri sağlayan bir şey geliştirmekten başka seçenek kalmadı.
## Daha Önce Geliştirilen Araçlar { #previous-tools } ## Daha Önce Geliştirilen Araçlar { #previous-tools }
@ -60,7 +60,7 @@ Flask’ın sadeliği göz önüne alındığında, API geliştirmek için iyi b
Gereken araç ve parçaları kolayca eşleştirip birleştirmeyi sağlayan bir mikroframework olmak. Gereken araç ve parçaları kolayca eşleştirip birleştirmeyi sağlayan bir mikroframework olmak.
Basit ve kullanımı kolay bir yönlendirme (routing) sistemine sahip olmak. Basit ve kullanımı kolay bir routing sistemine sahip olmak.
/// ///
@ -72,7 +72,7 @@ Hatta bir FastAPI uygulamasının içinde Requests kullanmak yaygındır.
Yine de FastAPI, Requests’ten epey ilham almıştır. Yine de FastAPI, Requests’ten epey ilham almıştır.
**Requests** bir kütüphane olarak API’larla (istemci olarak) etkileşime geçmeye yararken, **FastAPI** API’lar (sunucu olarak) geliştirmeye yarar. **Requests** bir kütüphane olarak API’larla (client olarak) etkileşime geçmeye yararken, **FastAPI** API’lar (server olarak) geliştirmeye yarar.
Yani daha çok zıt uçlardadırlar ama birbirlerini tamamlarlar. Yani daha çok zıt uçlardadırlar ama birbirlerini tamamlarlar.
@ -82,7 +82,7 @@ Bu yüzden resmi web sitesinde de söylendiği gibi:
> Requests, tüm zamanların en çok indirilen Python paketlerinden biridir > Requests, tüm zamanların en çok indirilen Python paketlerinden biridir
Kullanımı çok basittir. Örneğin bir `GET` isteği yapmak için: Kullanımı çok basittir. Örneğin bir `GET` request'i yapmak için:
```Python ```Python
response = requests.get("http://example.com/some/url") response = requests.get("http://example.com/some/url")
@ -137,9 +137,9 @@ Birçok Flask REST framework’ü var; ancak zaman ayırıp inceledikten sonra
### [Marshmallow](https://marshmallow.readthedocs.io/en/stable/) { #marshmallow } ### [Marshmallow](https://marshmallow.readthedocs.io/en/stable/) { #marshmallow }
API sistemlerinin ihtiyaç duyduğu temel özelliklerden biri, koddan (Python) veriyi alıp ağ üzerinden gönderilebilecek bir şeye dönüştürmek, yani veri “<dfn title="başka adlarla: serileştirme, dönüştürme">dönüşüm</dfn>”üdür. Örneğin, bir veritabanından gelen verileri içeren bir objeyi JSON objesine dönüştürmek, `datetime` objelerini string’e çevirmek vb. API sistemlerinin ihtiyaç duyduğu temel özelliklerden biri, koddan (Python) veriyi alıp ağ üzerinden gönderilebilecek bir şeye dönüştürmek, yani veri “<dfn title="marshalling veya dönüşüm olarak da adlandırılır">serileştirme</dfn>”dir. Örneğin, bir veritabanından gelen verileri içeren bir objeyi JSON objesine dönüştürmek, `datetime` objelerini string’e çevirmek vb.
API’ların ihtiyaç duyduğu bir diğer önemli özellik, veri doğrulamadır; belirli parametreler göz önüne alındığında verinin geçerli olduğundan emin olmak. Örneğin, bir alanın `int` olması ve rastgele bir metin olmaması. Bu özellikle dışarıdan gelen veriler için kullanışlıdır. API’ların ihtiyaç duyduğu bir diğer önemli özellik, veri doğrulamadır; belirli parametreler göz önüne alındığında verinin geçerli olduğundan emin olmak. Örneğin, bir alanın `int` olması ve rastgele bir metin olmaması. Bu özellikle gelen veriler için kullanışlıdır.
Bir veri doğrulama sistemi olmadan, tüm bu kontrolleri kod içinde el ile yapmanız gerekir. Bir veri doğrulama sistemi olmadan, tüm bu kontrolleri kod içinde el ile yapmanız gerekir.
@ -155,7 +155,7 @@ Kodla, veri tiplerini ve doğrulamayı otomatik sağlayan “şemalar” tanıml
### [Webargs](https://webargs.readthedocs.io/en/latest/) { #webargs } ### [Webargs](https://webargs.readthedocs.io/en/latest/) { #webargs }
API’ların ihtiyaç duyduğu bir diğer büyük özellik, gelen isteklerden veriyi <dfn title="okuyup Python verisine dönüştürme">ayrıştırma</dfn>dır. API’ların ihtiyaç duyduğu bir diğer büyük özellik, gelen request'lerden veriyi <dfn title="okuyup Python verisine dönüştürme">ayrıştırma</dfn>dır.
Webargs, Flask dahil birkaç framework’ün üzerinde bunu sağlamak için geliştirilmiş bir araçtır. Webargs, Flask dahil birkaç framework’ün üzerinde bunu sağlamak için geliştirilmiş bir araçtır.
@ -163,7 +163,7 @@ Veri doğrulama için arka planda Marshmallow’u kullanır. Aynı geliştiricil
**FastAPI**’dan önce benim de çok kullandığım harika bir araçtır. **FastAPI**’dan önce benim de çok kullandığım harika bir araçtır.
/// info | Bilgi /// note | Not
Webargs, Marshmallow geliştiricileri tarafından oluşturuldu. Webargs, Marshmallow geliştiricileri tarafından oluşturuldu.
@ -171,13 +171,13 @@ Webargs, Marshmallow geliştiricileri tarafından oluşturuldu.
/// tip | **FastAPI**'ye ilham olan /// tip | **FastAPI**'ye ilham olan
Gelen istek verisini otomatik doğrulamak. Gelen request verisini otomatik doğrulamak.
/// ///
### [APISpec](https://apispec.readthedocs.io/en/stable/) { #apispec } ### [APISpec](https://apispec.readthedocs.io/en/stable/) { #apispec }
Marshmallow ve Webargs; doğrulama, ayrıştırma ve dönüşümü eklenti olarak sağlar. Marshmallow ve Webargs; doğrulama, ayrıştırma ve serileştirmeyi eklenti olarak sağlar.
Ama dökümantasyon eksikti. Sonra APISpec geliştirildi. Ama dökümantasyon eksikti. Sonra APISpec geliştirildi.
@ -193,7 +193,7 @@ Ancak yine, Python metni içinde (kocaman bir YAML) mikro bir söz dizimi sorunu
Editör bu konuda pek yardımcı olamaz. Parametreleri veya Marshmallow şemalarını değiştirip docstring’teki YAML’ı güncellemeyi unutursak, üretilen şema geçerliliğini yitirir. Editör bu konuda pek yardımcı olamaz. Parametreleri veya Marshmallow şemalarını değiştirip docstring’teki YAML’ı güncellemeyi unutursak, üretilen şema geçerliliğini yitirir.
/// info | Bilgi /// note | Not
APISpec, Marshmallow geliştiricileri tarafından oluşturuldu. APISpec, Marshmallow geliştiricileri tarafından oluşturuldu.
@ -225,7 +225,7 @@ Bunu kullanmak, birkaç Flask full‑stack üreticisinin ortaya çıkmasına yol
Aynı full‑stack üreticiler, [**FastAPI** Proje Üreticileri](project-generation.md)’nin de temelini oluşturdu. Aynı full‑stack üreticiler, [**FastAPI** Proje Üreticileri](project-generation.md)’nin de temelini oluşturdu.
/// info | Bilgi /// note | Not
Flask-apispec, Marshmallow geliştiricileri tarafından oluşturuldu. Flask-apispec, Marshmallow geliştiricileri tarafından oluşturuldu.
@ -233,7 +233,7 @@ Flask-apispec, Marshmallow geliştiricileri tarafından oluşturuldu.
/// tip | **FastAPI**'ye ilham olan /// tip | **FastAPI**'ye ilham olan
Veri dönüşümü ve doğrulamayı tanımlayan aynı koddan, OpenAPI şemasını otomatik üretmek. Serileştirme ve doğrulamayı tanımlayan aynı koddan, OpenAPI şemasını otomatik üretmek.
/// ///
@ -247,9 +247,9 @@ Angular 2’den esinlenen, entegre bir bağımlılık enjeksiyonu sistemi vardı
Parametreler TypeScript tipleriyle (Python tip belirteçlerine benzer) açıklandığından, editör desteği oldukça iyidir. Parametreler TypeScript tipleriyle (Python tip belirteçlerine benzer) açıklandığından, editör desteği oldukça iyidir.
Ancak TypeScript tip bilgisi JavaScript’e derlemeden sonra korunmadığından, aynı anda tiplere dayanarak doğrulama, dönüşüm ve dökümantasyon tanımlanamaz. Bu ve bazı tasarım kararları nedeniyle doğrulama, dönüşüm ve otomatik şema üretimi için birçok yere dekoratör eklemek gerekir; proje oldukça ayrıntılı hâle gelir. Ancak TypeScript tip bilgisi JavaScript’e derlemeden sonra korunmadığından, aynı anda tiplere dayanarak doğrulama, serileştirme ve dökümantasyon tanımlanamaz. Bu ve bazı tasarım kararları nedeniyle doğrulama, serileştirme ve otomatik şema üretimi için birçok yere dekoratör eklemek gerekir; proje oldukça ayrıntılı hâle gelir.
İçiçe modelleri çok iyi işleyemez. Yani istek gövdesindeki JSON, içinde başka alanları ve onlar da içiçe JSON objelerini içeriyorsa, doğru şekilde dökümante edilip doğrulanamaz. İç içe modelleri çok iyi işleyemez. Yani request'teki JSON body, içinde başka alanları ve onlar da iç içe JSON objelerini içeriyorsa, doğru şekilde dökümante edilip doğrulanamaz.
/// tip | **FastAPI**'ye ilham olan /// tip | **FastAPI**'ye ilham olan
@ -283,15 +283,17 @@ Bu yüzden **FastAPI**, en hızlı framework olduğu için (üçüncü parti kı
Falcon, başka bir yüksek performanslı Python framework’üdür; minimal olacak şekilde tasarlanmış ve Hug gibi diğer framework’lere temel olmuştur. Falcon, başka bir yüksek performanslı Python framework’üdür; minimal olacak şekilde tasarlanmış ve Hug gibi diğer framework’lere temel olmuştur.
İki parametre alan fonksiyonlar etrafında tasarlanmıştır: “request” ve “response”. İstekten parçalar “okur”, cevaba parçalar “yazarsınız”. Bu tasarım nedeniyle, fonksiyon parametreleriyle standart Python tip belirteçlerini kullanarak istek parametrelerini ve gövdelerini ilan etmek mümkün değildir. İki parametre alan fonksiyonlar etrafında tasarlanmıştır: bir “request” ve bir “response”. Sonra request'ten parçalar “okur”, response'a parçalar “yazarsınız”. Bu tasarım nedeniyle, fonksiyon parametreleriyle standart Python tip belirteçlerini kullanarak request parametrelerini ve body'lerini ilan etmek mümkün değildir.
Dolayısıyla veri doğrulama, dönüşüm ve dökümantasyon kodda yapılmalı; otomatik olmaz. Ya da Hug’da olduğu gibi Falcon’un üzerine bir framework olarak uygulanmalıdır. Falcon’un tasarımından etkilenen ve tek bir request objesi ile response objesini parametre olarak alan diğer framework’lerde de aynı ayrım vardır. Dolayısıyla veri doğrulama, serileştirme ve dökümantasyon kodda yapılmalı; otomatik olmaz. Ya da Hug’da olduğu gibi Falcon’un üzerine bir framework olarak uygulanmalıdır. Falcon’un tasarımından etkilenen ve tek bir request objesi ile response objesini parametre olarak alan diğer framework’lerde de aynı ayrım vardır.
/// tip | **FastAPI**'ye ilham olan /// tip | **FastAPI**'ye ilham olan
Harika performans elde etmenin yollarını bulmak. Harika performans elde etmenin yollarını bulmak.
Hug ile birlikte (Hug, Falcon’a dayanır) **FastAPI**'de fonksiyonlarda opsiyonel bir `response` parametresi ilan edilmesi fikrine ilham vermek. FastAPI'de bu parametre çoğunlukla header, cookie ve alternatif durum kodlarını ayarlamak için kullanılır. Hug ile birlikte (Hug, Falcon’a dayanır) **FastAPI**'de fonksiyonlarda bir `response` parametresi ilan edilmesi fikrine ilham vermek.
FastAPI'de bu parametre opsiyoneldir ve çoğunlukla header, cookie ve alternatif durum kodlarını ayarlamak için kullanılır.
/// ///
@ -303,7 +305,7 @@ Hug ile birlikte (Hug, Falcon’a dayanır) **FastAPI**'de fonksiyonlarda opsiyo
* Bu tiplere bağlı doğrulama ve dökümantasyon sağlar. * Bu tiplere bağlı doğrulama ve dökümantasyon sağlar.
* Bağımlılık enjeksiyonu sistemi vardır. * Bağımlılık enjeksiyonu sistemi vardır.
Pydantic gibi doğrulama, dönüşüm ve dökümantasyon için üçüncü parti bir kütüphane kullanmaz; kendi içinde sağlar. Bu yüzden bu veri tipi tanımlarını tekrar kullanmak o kadar kolay olmaz. Pydantic gibi doğrulama, serileştirme ve dökümantasyon için üçüncü parti bir kütüphane kullanmaz; kendi içinde sağlar. Bu yüzden bu veri tipi tanımlarını tekrar kullanmak o kadar kolay olmaz.
Biraz daha ayrıntılı yapılandırma ister. Ve ASGI yerine WSGI tabanlı olduğundan, Uvicorn, Starlette ve Sanic gibi araçların yüksek performansından faydalanmaya yönelik tasarlanmamıştır. Biraz daha ayrıntılı yapılandırma ister. Ve ASGI yerine WSGI tabanlı olduğundan, Uvicorn, Starlette ve Sanic gibi araçların yüksek performansından faydalanmaya yönelik tasarlanmamıştır.
@ -333,7 +335,7 @@ Nadir bir özelliği daha vardı: aynı framework ile hem API’lar hem de CLI
Senkron Python web framework’leri için önceki standart olan WSGI’ye dayandığından, WebSocket vb. şeyleri işleyemez, ancak yine de yüksek performansa sahiptir. Senkron Python web framework’leri için önceki standart olan WSGI’ye dayandığından, WebSocket vb. şeyleri işleyemez, ancak yine de yüksek performansa sahiptir.
/// info | Bilgi /// note | Not
Hug, Python dosyalarındaki import’ları otomatik sıralayan harika bir araç olan [`isort`](https://github.com/timothycrosley/isort)’un geliştiricisi Timothy Crosley tarafından geliştirildi. Hug, Python dosyalarındaki import’ları otomatik sıralayan harika bir araç olan [`isort`](https://github.com/timothycrosley/isort)’un geliştiricisi Timothy Crosley tarafından geliştirildi.
@ -353,11 +355,11 @@ Ayrıca header ve cookie ayarlamak için fonksiyonlarda `response` parametresi i
**FastAPI**’yi inşa etmeye karar vermeden hemen önce **APIStar** sunucusunu buldum. Aradığım şeylerin neredeyse hepsine sahipti ve harika bir tasarımı vardı. **FastAPI**’yi inşa etmeye karar vermeden hemen önce **APIStar** sunucusunu buldum. Aradığım şeylerin neredeyse hepsine sahipti ve harika bir tasarımı vardı.
Python tip belirteçleriyle parametreleri ve istekleri ilan eden bir framework’ün gördüğüm ilk örneklerindendi (NestJS ve Molten’dan önce). Aşağı yukarı Hug ile aynı zamanlarda buldum; ancak APIStar, OpenAPI standardını kullanıyordu. Python tip belirteçleriyle parametreleri ve request'leri ilan eden bir framework’ün gördüğüm ilk örneklerindendi (NestJS ve Molten’dan önce). Aşağı yukarı Hug ile aynı zamanlarda buldum; ancak APIStar, OpenAPI standardını kullanıyordu.
Farklı yerlerdeki aynı tip belirteçlerine dayanarak otomatik veri doğrulama, veri dönüşümü ve OpenAPI şeması üretimi vardı. Farklı yerlerdeki aynı tip belirteçlerine dayanarak otomatik veri doğrulama, veri serileştirme ve OpenAPI şeması üretimi vardı.
Gövde şema tanımları Pydantic’tekiyle aynı Python tip belirteçlerini kullanmıyordu; biraz daha Marshmallow’a benziyordu. Bu yüzden editör desteği o kadar iyi olmazdı; yine de APIStar mevcut en iyi seçenekti. Body şema tanımları Pydantic’tekiyle aynı Python tip belirteçlerini kullanmıyordu; biraz daha Marshmallow’a benziyordu. Bu yüzden editör desteği o kadar iyi olmazdı; yine de APIStar mevcut en iyi seçenekti.
O dönem kıyaslamalarda en iyi performansa sahipti (sadece Starlette tarafından geçiliyordu). O dönem kıyaslamalarda en iyi performansa sahipti (sadece Starlette tarafından geçiliyordu).
@ -373,7 +375,7 @@ Artık bir API web framework’ü değildi; geliştirici Starlette’e odaklanma
Şimdi APIStar, bir web framework’ü değil, OpenAPI spesifikasyonlarını doğrulamak için araçlar takımından ibaret. Şimdi APIStar, bir web framework’ü değil, OpenAPI spesifikasyonlarını doğrulamak için araçlar takımından ibaret.
/// info | Bilgi /// note | Not
APIStar, aşağıdakilerin de yaratıcısı olan Tom Christie tarafından geliştirildi: APIStar, aşağıdakilerin de yaratıcısı olan Tom Christie tarafından geliştirildi:
@ -387,7 +389,7 @@ APIStar, aşağıdakilerin de yaratıcısı olan Tom Christie tarafından geliş
Var olmak. Var olmak.
Aynı Python tipleriyle (hem veri doğrulama, dönüşüm ve dökümantasyon) birden çok şeyi ilan etmek ve aynı anda harika editör desteği sağlamak, bence dahiyane bir fikirdi. Aynı Python tipleriyle (hem veri doğrulama, serileştirme ve dökümantasyon) birden çok şeyi ilan etmek ve aynı anda harika editör desteği sağlamak, bence dahiyane bir fikirdi.
Uzun süre benzer bir framework arayıp birçok alternatifi denedikten sonra, APIStar mevcut en iyi seçenekti. Uzun süre benzer bir framework arayıp birçok alternatifi denedikten sonra, APIStar mevcut en iyi seçenekti.
@ -401,7 +403,7 @@ Sonra APIStar bir sunucu olarak var olmaktan çıktı ve Starlette oluşturuldu;
### [Pydantic](https://docs.pydantic.dev/) { #pydantic } ### [Pydantic](https://docs.pydantic.dev/) { #pydantic }
Pydantic, Python tip belirteçlerine dayalı olarak veri doğrulama, dönüşüm ve dökümantasyon (JSON Schema kullanarak) tanımlamak için bir kütüphanedir. Pydantic, Python tip belirteçlerine dayalı olarak veri doğrulama, serileştirme ve dökümantasyon (JSON Schema kullanarak) tanımlamak için bir kütüphanedir.
Bu onu aşırı sezgisel kılar. Bu onu aşırı sezgisel kılar.
@ -409,7 +411,7 @@ Marshmallow ile karşılaştırılabilir. Kıyaslamalarda Marshmallow’dan daha
/// tip | **FastAPI** bunu şurada kullanır /// tip | **FastAPI** bunu şurada kullanır
Tüm veri doğrulama, veri dönüşümü ve JSON Schema tabanlı otomatik model dökümantasyonunu halletmekte. Tüm veri doğrulama, veri serileştirme ve JSON Schema tabanlı otomatik model dökümantasyonunu halletmekte.
**FastAPI** daha sonra bu JSON Schema verisini alır ve (yaptığı diğer şeylerin yanı sıra) OpenAPI içine yerleştirir. **FastAPI** daha sonra bu JSON Schema verisini alır ve (yaptığı diğer şeylerin yanı sıra) OpenAPI içine yerleştirir.
@ -427,9 +429,9 @@ Starlette, yüksek performanslı asyncio servisleri oluşturmak için ideal, haf
* WebSocket desteği. * WebSocket desteği.
* Süreç içi arka plan görevleri. * Süreç içi arka plan görevleri.
* Başlatma ve kapatma olayları. * Başlatma ve kapatma olayları.
* HTTPX üzerinde geliştirilmiş test istemcisi. * HTTPX üzerinde geliştirilmiş test client'ı.
* CORS, GZip, Statik Dosyalar, Streaming cevaplar. * CORS, GZip, Statik Dosyalar, Streaming response'lar.
* Oturum (Session) ve Cookie desteği. * Session ve Cookie desteği.
* %100 test kapsamı. * %100 test kapsamı.
* %100 tip anotasyonlu kod tabanı. * %100 tip anotasyonlu kod tabanı.
* Az sayıda zorunlu bağımlılık. * Az sayıda zorunlu bağımlılık.
@ -438,7 +440,7 @@ Starlette, şu anda test edilen en hızlı Python framework’üdür. Yalnızca
Starlette, temel web mikroframework işlevselliğinin tamamını sağlar. Starlette, temel web mikroframework işlevselliğinin tamamını sağlar.
Ancak otomatik veri doğrulama, dönüşüm veya dökümantasyon sağlamaz. Ancak otomatik veri doğrulama, serileştirme veya dökümantasyon sağlamaz.
**FastAPI**’nin bunun üzerine eklediği ana şeylerden biri, Pydantic kullanarak, bütünüyle Python tip belirteçlerine dayalı bu özelliklerdir. Buna ek olarak bağımlılık enjeksiyonu sistemi, güvenlik yardımcıları, OpenAPI şema üretimi vb. gelir. **FastAPI**’nin bunun üzerine eklediği ana şeylerden biri, Pydantic kullanarak, bütünüyle Python tip belirteçlerine dayalı bu özelliklerdir. Buna ek olarak bağımlılık enjeksiyonu sistemi, güvenlik yardımcıları, OpenAPI şema üretimi vb. gelir.
@ -464,7 +466,7 @@ Dolayısıyla Starlette ile yapabildiğiniz her şeyi, adeta “turbo şarjlı S
Uvicorn, uvloop ve httptools üzerinde inşa edilmiş, ışık hızında bir ASGI sunucusudur. Uvicorn, uvloop ve httptools üzerinde inşa edilmiş, ışık hızında bir ASGI sunucusudur.
Bir web framework’ü değil, bir sunucudur. Örneğin path’lere göre yönlendirme araçları sağlamaz; bunu Starlette (veya **FastAPI**) gibi bir framework üstte sağlar. Bir web framework’ü değil, bir sunucudur. Örneğin path’lere göre routing araçları sağlamaz; bunu Starlette (veya **FastAPI**) gibi bir framework üstte sağlar.
Starlette ve **FastAPI** için önerilen sunucudur. Starlette ve **FastAPI** için önerilen sunucudur.

12
docs/tr/docs/async.md

@ -82,12 +82,12 @@ Bu "başka bir şeyi beklemek" genelde işlemci ve RAM hızına kıyasla nispete
* programınızın sisteme verdiği içeriğin diske yazılması * programınızın sisteme verdiği içeriğin diske yazılması
* uzak bir API işlemi * uzak bir API işlemi
* bir veritabanı işleminin bitmesi * bir veritabanı işleminin bitmesi
* bir veritabanı sorgusunun sonuç döndürmesi * bir veritabanı query'sinin sonuç döndürmesi
* vb. * vb.
Çalışma süresi çoğunlukla <abbr title="Input and Output - Giriş ve Çıkış">I/O</abbr> işlemlerini beklemekle geçtiğinden, bunlara "I/O bound" işlemler denir. Çalışma süresi çoğunlukla <abbr title="Input and Output - Giriş ve Çıkış">I/O</abbr> işlemlerini beklemekle geçtiğinden, bunlara "I/O bound" işlemler denir.
"Bunun" asenkron" denmesinin sebebi, bilgisayarın / programın yavaş görevle "senkronize" olmak, görev tam bittiği anda orada olup görev sonucunu almak ve işe devam etmek için hiçbir şey yapmadan beklemek zorunda olmamasıdır. Buna "asenkron" denmesinin sebebi, bilgisayarın / programın yavaş görevle "senkronize" olmak, görev tam bittiği anda orada olup görev sonucunu almak ve işe devam etmek için hiçbir şey yapmadan beklemek zorunda olmamasıdır.
Bunun yerine "asenkron" bir sistem olarak, görev bittiğinde, bilgisayarın / programın o sırada yaptığı işi bitirmesi için biraz (birkaç mikrosaniye) sırada bekleyebilir ve sonra sonuçları almak üzere geri dönüp onlarla çalışmaya devam edebilir. Bunun yerine "asenkron" bir sistem olarak, görev bittiğinde, bilgisayarın / programın o sırada yaptığı işi bitirmesi için biraz (birkaç mikrosaniye) sırada bekleyebilir ve sonra sonuçları almak üzere geri dönüp onlarla çalışmaya devam edebilir.
@ -139,7 +139,7 @@ Aşkınla burgerleri yiyip güzel vakit geçiriyorsunuz. ✨
<img src="/img/async/concurrent-burgers/concurrent-burgers-07.png" class="illustration"> <img src="/img/async/concurrent-burgers/concurrent-burgers-07.png" class="illustration">
/// note | Bilgi /// note | Not
Harika çizimler: [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨 Harika çizimler: [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨
@ -205,7 +205,7 @@ Sadece yiyorsunuz ve iş bitiyor. ⏹
Vaktin çoğu tezgâhın önünde 🕙 beklemekle geçtiğinden, pek konuşma ya da flört olmadı. 😞 Vaktin çoğu tezgâhın önünde 🕙 beklemekle geçtiğinden, pek konuşma ya da flört olmadı. 😞
/// note | Bilgi /// note | Not
Harika çizimler: [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨 Harika çizimler: [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨
@ -239,9 +239,9 @@ Muhtemelen, bankada 🏦 işlerini hallederken aşkını 😍 yanında götürme
Bu, çoğu web uygulaması için de geçerlidir. Bu, çoğu web uygulaması için de geçerlidir.
Çok fazla kullanıcı vardır; ancak sunucunuz, iyi olmayan bağlantılarından gelen istekleri 🕙 bekler. Çok fazla kullanıcı vardır; ancak sunucunuz, onların pek iyi olmayan bağlantıları üzerinden request'lerin gelmesini 🕙 bekler.
Ve sonra yanıtların geri gelmesini yine 🕙 bekler. Ardından response'ların geri gelmesini yine 🕙 bekler.
Bu "beklemeler" 🕙 mikrosaniyelerle ölçülür; ama hepsi toplandığında sonuçta oldukça fazla bekleme olur. Bu "beklemeler" 🕙 mikrosaniyelerle ölçülür; ama hepsi toplandığında sonuçta oldukça fazla bekleme olur.

2
docs/tr/docs/deployment/cloud.md

@ -16,7 +16,7 @@ FastAPI Cloud, *FastAPI and friends* açık kaynak projelerinin birincil sponsor
## Bulut Sağlayıcılar - Sponsorlar { #cloud-providers-sponsors } ## Bulut Sağlayıcılar - Sponsorlar { #cloud-providers-sponsors }
Diğer bazı bulut sağlayıcılar da ✨ [**FastAPI'ye sponsor olur**](../help-fastapi.md#sponsor-the-author) ✨. 🙇 Diğer bazı bulut sağlayıcılar da ✨ [**FastAPI'ye sponsor olur**](https://github.com/sponsors/tiangolo) ✨. 🙇
Kılavuzlarını takip etmek ve servislerini denemek için onları da değerlendirmek isteyebilirsiniz: Kılavuzlarını takip etmek ve servislerini denemek için onları da değerlendirmek isteyebilirsiniz:

1
docs/tr/docs/deployment/concepts.md

@ -1,5 +1,6 @@
# Deployment Kavramları { #deployments-concepts } # Deployment Kavramları { #deployments-concepts }
Bir **FastAPI** uygulamasını (hatta genel olarak herhangi bir web API'yi) deploy ederken, muhtemelen önemseyeceğiniz bazı kavramlar vardır. Bu kavramları kullanarak, **uygulamanızı deploy etmek** için **en uygun** yöntemi bulabilirsiniz. Bir **FastAPI** uygulamasını (hatta genel olarak herhangi bir web API'yi) deploy ederken, muhtemelen önemseyeceğiniz bazı kavramlar vardır. Bu kavramları kullanarak, **uygulamanızı deploy etmek** için **en uygun** yöntemi bulabilirsiniz.
Önemli kavramlardan bazıları şunlardır: Önemli kavramlardan bazıları şunlardır:

6
docs/tr/docs/deployment/docker.md

@ -26,7 +26,7 @@ COPY ./app /code/app
CMD ["fastapi", "run", "app/main.py", "--port", "80"] CMD ["fastapi", "run", "app/main.py", "--port", "80"]
# If running behind a proxy like Nginx or Traefik add --proxy-headers # Nginx veya Traefik gibi bir proxy arkasında çalıştırıyorsanız --proxy-headers ekleyin
# CMD ["fastapi", "run", "app/main.py", "--port", "80", "--proxy-headers"] # CMD ["fastapi", "run", "app/main.py", "--port", "80", "--proxy-headers"]
``` ```
@ -243,14 +243,14 @@ Aşağıda açıklandığı gibi `CMD` talimatının **her zaman** **exec form**
**Exec** form: **Exec** form:
```Dockerfile ```Dockerfile
# ✅ Do this # ✅ Bunu yapın
CMD ["fastapi", "run", "app/main.py", "--port", "80"] CMD ["fastapi", "run", "app/main.py", "--port", "80"]
``` ```
⛔️ **Shell** form: ⛔️ **Shell** form:
```Dockerfile ```Dockerfile
# ⛔️ Don't do this # ⛔️ Bunu yapmayın
CMD fastapi run app/main.py --port 80 CMD fastapi run app/main.py --port 80
``` ```

4
docs/tr/docs/deployment/https.md

@ -17,7 +17,7 @@ Bir kullanıcı gözüyle **HTTPS’in temellerini öğrenmek** için [https://h
* HTTPS için **server**’ın, **üçüncü bir taraf** tarafından verilen **"sertifikalara"** sahip olması gerekir. * HTTPS için **server**’ın, **üçüncü bir taraf** tarafından verilen **"sertifikalara"** sahip olması gerekir.
* Bu sertifikalar aslında üçüncü tarafça "üretilmez", üçüncü taraftan **temin edilir**. * Bu sertifikalar aslında üçüncü tarafça "üretilmez", üçüncü taraftan **temin edilir**.
* Sertifikaların bir **geçerlilik süresi** vardır. * Sertifikaların bir **geçerlilik süresi** vardır.
* Süresi **dolar**. * Süreleri **sona erer**.
* Sonrasında **yenilenmeleri**, üçüncü taraftan **yeniden temin edilmeleri** gerekir. * Sonrasında **yenilenmeleri**, üçüncü taraftan **yeniden temin edilmeleri** gerekir.
* Bağlantının şifrelenmesi **TCP seviyesinde** gerçekleşir. * Bağlantının şifrelenmesi **TCP seviyesinde** gerçekleşir.
* Bu, **HTTP’nin bir katman altıdır**. * Bu, **HTTP’nin bir katman altıdır**.
@ -169,7 +169,7 @@ Bu şekilde TLS Termination Proxy, birden fazla uygulama için **birden fazla do
### Sertifika Yenileme { #certificate-renewal } ### Sertifika Yenileme { #certificate-renewal }
Gelecekte bir noktada, her sertifikanın süresi **dolar** (temin edildikten yaklaşık 3 ay sonra). Gelecekte bir noktada, her sertifikanın süresi **sona erer** (temin edildikten yaklaşık 3 ay sonra).
Ardından başka bir program (bazı durumlarda ayrı bir programdır, bazı durumlarda aynı TLS Termination Proxy olabilir) Let's Encrypt ile konuşup sertifika(ları) yeniler. Ardından başka bir program (bazı durumlarda ayrı bir programdır, bazı durumlarda aynı TLS Termination Proxy olabilir) Let's Encrypt ile konuşup sertifika(ları) yeniler.

1
docs/tr/docs/deployment/manually.md

@ -1,5 +1,6 @@
# Bir Sunucuyu Manuel Olarak Çalıştırın { #run-a-server-manually } # Bir Sunucuyu Manuel Olarak Çalıştırın { #run-a-server-manually }
## `fastapi run` Komutunu Kullanın { #use-the-fastapi-run-command } ## `fastapi run` Komutunu Kullanın { #use-the-fastapi-run-command }
Kısacası, FastAPI uygulamanızı sunmak için `fastapi run` kullanın: Kısacası, FastAPI uygulamanızı sunmak için `fastapi run` kullanın:

2
docs/tr/docs/editor-support.md

@ -2,7 +2,7 @@
Resmi [FastAPI Extension](https://marketplace.visualstudio.com/items?itemName=FastAPILabs.fastapi-vscode), FastAPI geliştirme akışınızı iyileştirir: *path operation* keşfi, gezinme, FastAPI Cloud’a deploy ve canlı log akışı. Resmi [FastAPI Extension](https://marketplace.visualstudio.com/items?itemName=FastAPILabs.fastapi-vscode), FastAPI geliştirme akışınızı iyileştirir: *path operation* keşfi, gezinme, FastAPI Cloud’a deploy ve canlı log akışı.
Daha fazla ayrıntı için, GitHub deposundaki README’ye bakın: [GitHub repository](https://github.com/fastapi/fastapi-vscode). Daha fazla ayrıntı için, GitHub deposundaki README’ye bakın: [GitHub deposu](https://github.com/fastapi/fastapi-vscode).
## Kurulum ve Yükleme { #setup-and-installation } ## Kurulum ve Yükleme { #setup-and-installation }

34
docs/tr/docs/environment-variables.md

@ -19,10 +19,10 @@ Python’a ihtiyaç duymadan, **shell (terminal)** içinde ortam değişkenleri
<div class="termy"> <div class="termy">
```console ```console
// You could create an env var MY_NAME with // MY_NAME adlı bir env var'ı şöyle oluşturabilirsiniz
$ export MY_NAME="Wade Wilson" $ export MY_NAME="Wade Wilson"
// Then you could use it with other programs, like // Sonra bunu diğer programlarla şöyle kullanabilirsiniz
$ echo "Hello $MY_NAME" $ echo "Hello $MY_NAME"
Hello Wade Wilson Hello Wade Wilson
@ -37,10 +37,10 @@ Hello Wade Wilson
<div class="termy"> <div class="termy">
```console ```console
// Create an env var MY_NAME // MY_NAME adlı bir env var oluşturun
$ $Env:MY_NAME = "Wade Wilson" $ $Env:MY_NAME = "Wade Wilson"
// Use it with other programs, like // Bunu diğer programlarla şöyle kullanın
$ echo "Hello $Env:MY_NAME" $ echo "Hello $Env:MY_NAME"
Hello Wade Wilson Hello Wade Wilson
@ -78,20 +78,20 @@ Sonrasında bu Python programını çalıştırabilirsiniz:
<div class="termy"> <div class="termy">
```console ```console
// Here we don't set the env var yet // Burada env var'ı henüz ayarlamıyoruz
$ python main.py $ python main.py
// As we didn't set the env var, we get the default value // Env var'ı ayarlamadığımız için varsayılan değeri alırız
Hello World from Python Hello World from Python
// But if we create an environment variable first // Ama önce bir ortam değişkeni oluşturursak
$ export MY_NAME="Wade Wilson" $ export MY_NAME="Wade Wilson"
// And then call the program again // Sonra programı tekrar çağırırsak
$ python main.py $ python main.py
// Now it can read the environment variable // Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python Hello Wade Wilson from Python
``` ```
@ -105,20 +105,20 @@ Hello Wade Wilson from Python
<div class="termy"> <div class="termy">
```console ```console
// Here we don't set the env var yet // Burada env var'ı henüz ayarlamıyoruz
$ python main.py $ python main.py
// As we didn't set the env var, we get the default value // Env var'ı ayarlamadığımız için varsayılan değeri alırız
Hello World from Python Hello World from Python
// But if we create an environment variable first // Ama önce bir ortam değişkeni oluşturursak
$ $Env:MY_NAME = "Wade Wilson" $ $Env:MY_NAME = "Wade Wilson"
// And then call the program again // Sonra programı tekrar çağırırsak
$ python main.py $ python main.py
// Now it can read the environment variable // Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python Hello Wade Wilson from Python
``` ```
@ -136,14 +136,14 @@ Bunu yapmak için, program komutunun hemen öncesinde ve aynı satırda tanımla
<div class="termy"> <div class="termy">
```console ```console
// Create an env var MY_NAME in line for this program call // Bu program çağrısı için aynı satırda MY_NAME adlı bir env var oluşturun
$ MY_NAME="Wade Wilson" python main.py $ MY_NAME="Wade Wilson" python main.py
// Now it can read the environment variable // Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python Hello Wade Wilson from Python
// The env var no longer exists afterwards // Sonrasında env var artık mevcut değildir
$ python main.py $ python main.py
Hello World from Python Hello World from Python

4
docs/tr/docs/features.md

@ -99,7 +99,7 @@ Artık anahtar adlarını yanlış yazmak, dokümana gidip gelmek ya da sonunda
Her şey için mantıklı **varsayılanlar** ve her yerde isteğe bağlı yapılandırmalar vardır. Tüm parametreler, ihtiyacınızı karşılayacak şekilde ince ayar yapılarak tanımlamak istediğiniz API’yi oluşturabilir. Her şey için mantıklı **varsayılanlar** ve her yerde isteğe bağlı yapılandırmalar vardır. Tüm parametreler, ihtiyacınızı karşılayacak şekilde ince ayar yapılarak tanımlamak istediğiniz API’yi oluşturabilir.
Ancak varsayılan hâliyle hepsi **“hemen çalışır”**. Ancak varsayılan hâliyle hepsi **"hemen çalışır"**.
### Doğrulama { #validation } ### Doğrulama { #validation }
@ -149,7 +149,7 @@ FastAPI, son derece kolay kullanımlı ama son derece güçlü bir <dfn title='
Başka bir deyişle, onlara gerek yok; ihtiyaç duyduğunuz kodu import edin ve kullanın. Başka bir deyişle, onlara gerek yok; ihtiyaç duyduğunuz kodu import edin ve kullanın.
Her entegrasyon (bağımlılıklar ile) o kadar basit olacak şekilde tasarlanmıştır ki, uygulamanız için, *path operations* ile kullandığınız aynı yapı ve söz dizimiyle sadece 2 satırda bir “plug-in” yazabilirsiniz. Her entegrasyon (bağımlılıklar ile) o kadar basit olacak şekilde tasarlanmıştır ki, uygulamanız için, *path operations* ile kullandığınız aynı yapı ve söz dizimiyle sadece 2 satırda bir "plug-in" yazabilirsiniz.
### Test Edildi { #tested } ### Test Edildi { #tested }

4
docs/tr/docs/help-fastapi.md

@ -38,7 +38,7 @@ Böylece **FastAPI**'nin bug fix'ler ve yeni özelliklerle gelen her yeni releas
## Yazarı Takip Edin { #follow-the-author } ## Yazarı Takip Edin { #follow-the-author }
FastAPI ve friends hakkında paylaşacak haberlerim olduğunda duymak için, [beni (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com) birkaç yerde takip edebilirsiniz: FastAPI ve friends hakkında paylaşacak haberlerim olduğunda duymak için, yazar [beni (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com) birkaç yerde takip edebilirsiniz:
* [**GitHub**'da @tiangolo](https://github.com/tiangolo). * [**GitHub**'da @tiangolo](https://github.com/tiangolo).
* [**X (Twitter)**'da @tiangolo](https://x.com/tiangolo) * [**X (Twitter)**'da @tiangolo](https://x.com/tiangolo)
@ -68,7 +68,7 @@ GitHub repository'sinde örneğin şunlar için [yeni bir soru oluşturabilirsin
## Sohbete Katılın { #join-the-chat } ## Sohbete Katılın { #join-the-chat }
FastAPI topluluğundan diğer kişilerle takılmak için 👥 [Discord chat server](https://discord.gg/VQjSZaeJmf) 👥 sohbetine katılın. 👥 [Discord sohbet sunucusuna](https://discord.gg/VQjSZaeJmf) 👥 katılın ve FastAPI topluluğundaki diğer kişilerle takılın.
/// tip | İpucu /// tip | İpucu

4
docs/tr/docs/how-to/configure-swagger-ui.md

@ -56,7 +56,7 @@ Kullanabileceğiniz diğer tüm olası yapılandırmaları görmek için, resmi
Swagger UI ayrıca bazı yapılandırmaların **yalnızca JavaScript** nesneleri olmasına izin verir (örneğin JavaScript fonksiyonları). Swagger UI ayrıca bazı yapılandırmaların **yalnızca JavaScript** nesneleri olmasına izin verir (örneğin JavaScript fonksiyonları).
FastAPI, bu yalnızca JavaScript olan `presets` ayarlarını da içerir: FastAPI, yalnızca JavaScript olan bu `presets` ayarlarını da içerir:
```JavaScript ```JavaScript
presets: [ presets: [
@ -67,4 +67,4 @@ presets: [
Bunlar string değil, **JavaScript** nesneleridir; dolayısıyla bunları Python kodundan doğrudan geçemezsiniz. Bunlar string değil, **JavaScript** nesneleridir; dolayısıyla bunları Python kodundan doğrudan geçemezsiniz.
Böyle yalnızca JavaScript yapılandırmalarına ihtiyacınız varsa, yukarıdaki yöntemlerden birini kullanabilirsiniz: Swagger UI'nin tüm *path operation*'larını override edin ve ihtiyaç duyduğunuz JavaScript'i elle yazın. Böyle yalnızca JavaScript yapılandırmalarına ihtiyacınız varsa, yukarıdaki yöntemlerden birini kullanabilirsiniz. Swagger UI *path operation*'ının tamamını override edin ve ihtiyaç duyduğunuz JavaScript'i elle yazın.

1
docs/tr/docs/how-to/custom-request-and-route.md

@ -1,5 +1,6 @@
# Özel Request ve APIRoute sınıfı { #custom-request-and-apiroute-class } # Özel Request ve APIRoute sınıfı { #custom-request-and-apiroute-class }
Bazı durumlarda, `Request` ve `APIRoute` sınıflarının kullandığı mantığı override etmek isteyebilirsiniz. Bazı durumlarda, `Request` ve `APIRoute` sınıflarının kullandığı mantığı override etmek isteyebilirsiniz.
Özellikle bu yaklaşım, bir middleware içindeki mantığa iyi bir alternatif olabilir. Özellikle bu yaklaşım, bir middleware içindeki mantığa iyi bir alternatif olabilir.

1
docs/tr/docs/how-to/graphql.md

@ -1,5 +1,6 @@
# GraphQL { #graphql } # GraphQL { #graphql }
**FastAPI**, **ASGI** standardını temel aldığı için ASGI ile uyumlu herhangi bir **GraphQL** kütüphanesini entegre etmek oldukça kolaydır. **FastAPI**, **ASGI** standardını temel aldığı için ASGI ile uyumlu herhangi bir **GraphQL** kütüphanesini entegre etmek oldukça kolaydır.
Aynı uygulama içinde normal FastAPI *path operation*'larını GraphQL ile birlikte kullanabilirsiniz. Aynı uygulama içinde normal FastAPI *path operation*'larını GraphQL ile birlikte kullanabilirsiniz.

18
docs/tr/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md

@ -8,6 +8,8 @@ FastAPI 0.119.0 sürümü, v2'ye geçişi kolaylaştırmak için, Pydantic v2’
FastAPI 0.126.0 sürümü Pydantic v1 desteğini kaldırdı, ancak bir süre daha `pydantic.v1` desteğini sürdürdü. FastAPI 0.126.0 sürümü Pydantic v1 desteğini kaldırdı, ancak bir süre daha `pydantic.v1` desteğini sürdürdü.
FastAPI 0.128.0 sürümü `pydantic.v1` desteğini de kaldırdı, bu yüzden FastAPI'nin en güncel sürümleri Pydantic v2 gerektirir.
/// warning | Uyarı /// warning | Uyarı
Pydantic ekibi, Python'ın en yeni sürümleri için Pydantic v1 desteğini, **Python 3.14** ile başlayarak sonlandırdı. Pydantic ekibi, Python'ın en yeni sürümleri için Pydantic v1 desteğini, **Python 3.14** ile başlayarak sonlandırdı.
@ -54,6 +56,16 @@ Bu da şu anlama gelir: Pydantic v2'nin en güncel sürümünü kurup, bu alt mo
### v2 İçinde Pydantic v1 için FastAPI Desteği { #fastapi-support-for-pydantic-v1-in-v2 } ### v2 İçinde Pydantic v1 için FastAPI Desteği { #fastapi-support-for-pydantic-v1-in-v2 }
/// warning | Uyarı
`pydantic.v1` modelleri için bu FastAPI desteği **FastAPI 0.119.0** sürümünde eklendi ve **FastAPI 0.128.0** sürümünde kaldırıldı. Pydantic v2'ye geçiş için geçici bir yardımcı olması amaçlanmıştı.
FastAPI'nin güncel sürümlerinde, uygulamanızda bir `pydantic.v1` modeli kullanmak hataya neden olur.
Bu bölümün geri kalanı yalnızca bu eski sürümlerde mevcut olan geçici desteği açıklar.
///
FastAPI 0.119.0'dan itibaren, v2'ye geçişi kolaylaştırmak için Pydantic v2’nin içinden Pydantic v1 kullanımına yönelik kısmi destek de vardır. FastAPI 0.119.0'dan itibaren, v2'ye geçişi kolaylaştırmak için Pydantic v2’nin içinden Pydantic v1 kullanımına yönelik kısmi destek de vardır.
Dolayısıyla Pydantic'i en güncel 2 sürümüne yükseltip import'ları `pydantic.v1` alt modülünü kullanacak şekilde değiştirebilirsiniz; çoğu durumda bu doğrudan çalışır. Dolayısıyla Pydantic'i en güncel 2 sürümüne yükseltip import'ları `pydantic.v1` alt modülünü kullanacak şekilde değiştirebilirsiniz; çoğu durumda bu doğrudan çalışır.
@ -122,6 +134,12 @@ Pydantic v1 modelleriyle `Body`, `Query`, `Form` vb. parametreler için FastAPI'
### Adım Adım Geçiş { #migrate-in-steps } ### Adım Adım Geçiş { #migrate-in-steps }
/// warning | Uyarı
Aşağıda açıklanan, aynı uygulamada hem Pydantic v1 hem de v2 modellerini kullanarak yapılan kademeli geçiş yalnızca **FastAPI 0.119.0 ile 0.127.x** arasında çalışır. Bu destek **FastAPI 0.128.0** sürümünde kaldırıldı; en güncel sürümler **Pydantic v2** modelleri gerektirir.
///
/// tip | İpucu /// tip | İpucu
Önce `bump-pydantic` ile deneyin; testleriniz geçerse ve bu yol çalışırsa tek komutla işi bitirmiş olursunuz. ✨ Önce `bump-pydantic` ile deneyin; testleriniz geçerse ve bu yol çalışırsa tek komutla işi bitirmiş olursunuz. ✨

2
docs/tr/docs/how-to/separate-openapi-schemas.md

@ -77,7 +77,7 @@ Ama `Item-Output` için `description` **required**'dır, kırmızı yıldız var
**Pydantic v2**'nin bu özelliğiyle API dokümantasyonunuz daha **hassas** olur; ayrıca autogenerated client'lar ve SDK'lar kullanıyorsanız, onlar da daha tutarlı ve daha iyi bir **developer experience** ile daha doğru üretilir. 🎉 **Pydantic v2**'nin bu özelliğiyle API dokümantasyonunuz daha **hassas** olur; ayrıca autogenerated client'lar ve SDK'lar kullanıyorsanız, onlar da daha tutarlı ve daha iyi bir **developer experience** ile daha doğru üretilir. 🎉
## Schema'ları Ayırma { #do-not-separate-schemas } ## Schema'ları Ayırmayın { #do-not-separate-schemas }
Bazı durumlarda **input ve output için aynı schema'yı** kullanmak isteyebilirsiniz. Bazı durumlarda **input ve output için aynı schema'yı** kullanmak isteyebilirsiniz.

6
docs/tr/docs/index.md

@ -26,7 +26,7 @@ include_yaml:
<img src="https://img.shields.io/pypi/v/fastapi?color=%2334D058&label=pypi%20package" alt="Package version"> <img src="https://img.shields.io/pypi/v/fastapi?color=%2334D058&label=pypi%20package" alt="Package version">
</a> </a>
<a href="https://pypi.org/project/fastapi"> <a href="https://pypi.org/project/fastapi">
<img src="https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058" alt="Supported Python versions"> <img src="https://img.shields.io/pyp/pyversions/fastapi.svg?color=%2334D058" alt="Supported Python versions">
</a> </a>
</p> </p>
@ -45,11 +45,11 @@ Temel özellikleri şunlardır:
* **Hızlı**: Çok yüksek performanslı, **NodeJS** ve **Go** ile eşit düzeyde (Starlette ve Pydantic sayesinde). [Mevcut en hızlı Python framework'lerinden biri](#performance). * **Hızlı**: Çok yüksek performanslı, **NodeJS** ve **Go** ile eşit düzeyde (Starlette ve Pydantic sayesinde). [Mevcut en hızlı Python framework'lerinden biri](#performance).
* **Kodlaması Hızlı**: Özellik geliştirme hızını yaklaşık %200 ile %300 aralığında artırır. * * **Kodlaması Hızlı**: Özellik geliştirme hızını yaklaşık %200 ile %300 aralığında artırır. *
* **Daha az hata**: İnsan (geliştirici) kaynaklı hataları yaklaşık %40 azaltır. * * **Daha az hata**: İnsan (geliştirici) kaynaklı hataları yaklaşık %40 azaltır. *
* **Sezgisel**: Harika bir editör desteği. Her yerde <dfn title="oto-tamamlama, autocompletion, IntelliSense olarak da bilinir">Tamamlama</dfn>. Hata ayıklamaya daha az zaman. * **Sezgisel**: Harika bir editör desteği. Her yerde <dfn title="otomatik tamamlama, oto-tamamlama, IntelliSense olarak da bilinir">Tamamlama</dfn>. Hata ayıklamaya daha az zaman.
* **Kolay**: Kullanımı ve öğrenmesi kolay olacak şekilde tasarlandı. Doküman okumaya daha az zaman. * **Kolay**: Kullanımı ve öğrenmesi kolay olacak şekilde tasarlandı. Doküman okumaya daha az zaman.
* **Kısa**: Kod tekrarını minimize eder. Her parametre tanımından birden fazla özellik. Daha az hata. * **Kısa**: Kod tekrarını minimize eder. Her parametre tanımından birden fazla özellik. Daha az hata.
* **Sağlam**: Production'a hazır kod elde edersiniz. Otomatik etkileşimli dokümantasyon ile birlikte. * **Sağlam**: Production'a hazır kod elde edersiniz. Otomatik etkileşimli dokümantasyon ile birlikte.
* **Standardlara dayalı**: API'lar için açık standartlara dayalıdır (ve tamamen uyumludur); [OpenAPI](https://github.com/OAI/OpenAPI-Specification) (önceden Swagger olarak biliniyordu) ve [JSON Schema](https://json-schema.org/). * **Standartlara dayalı**: API'lar için açık standartlara dayalıdır (ve tamamen uyumludur); [OpenAPI](https://github.com/OAI/OpenAPI-Specification) (önceden Swagger olarak biliniyordu) ve [JSON Schema](https://json-schema.org/).
<small>* tahmin, production uygulamalar geliştiren dahili bir geliştirme ekibinin yaptığı testlere dayanmaktadır.</small> <small>* tahmin, production uygulamalar geliştiren dahili bir geliştirme ekibinin yaptığı testlere dayanmaktadır.</small>

1
docs/tr/docs/project-generation.md

@ -1,5 +1,6 @@
# Full Stack FastAPI Şablonu { #full-stack-fastapi-template } # Full Stack FastAPI Şablonu { #full-stack-fastapi-template }
Şablonlar genellikle belirli bir kurulumla gelir, ancak esnek ve özelleştirilebilir olacak şekilde tasarlanırlar. Bu sayede şablonu projenizin gereksinimlerine göre değiştirip uyarlayabilir, çok iyi bir başlangıç noktası olarak kullanabilirsiniz. 🏁 Şablonlar genellikle belirli bir kurulumla gelir, ancak esnek ve özelleştirilebilir olacak şekilde tasarlanırlar. Bu sayede şablonu projenizin gereksinimlerine göre değiştirip uyarlayabilir, çok iyi bir başlangıç noktası olarak kullanabilirsiniz. 🏁
Bu şablonu başlangıç için kullanabilirsiniz; çünkü ilk kurulumun, güvenliğin, veritabanının ve bazı API endpoint'lerinin önemli bir kısmı sizin için zaten hazırlanmıştır. Bu şablonu başlangıç için kullanabilirsiniz; çünkü ilk kurulumun, güvenliğin, veritabanının ve bazı API endpoint'lerinin önemli bir kısmı sizin için zaten hazırlanmıştır.

1
docs/tr/docs/python-types.md

@ -1,5 +1,6 @@
# Python Tiplerine Giriş { #python-types-intro } # Python Tiplerine Giriş { #python-types-intro }
Python, isteğe bağlı "type hints" (diğer adıyla "type annotations") desteğine sahiptir. Python, isteğe bağlı "type hints" (diğer adıyla "type annotations") desteğine sahiptir.
Bu **"type hints"** veya annotations, bir değişkenin <dfn title="örneğin: str, int, float, bool">tip</dfn>'ini bildirmeye yarayan özel bir sözdizimidir. Bu **"type hints"** veya annotations, bir değişkenin <dfn title="örneğin: str, int, float, bool">tip</dfn>'ini bildirmeye yarayan özel bir sözdizimidir.

32
docs/tr/docs/tutorial/bigger-applications.md

@ -17,16 +17,16 @@ Diyelim ki şöyle bir dosya yapınız var:
``` ```
. .
├── app ├── app
   ├── __init__.py ├── __init__.py
   ├── main.py ├── main.py
   ├── dependencies.py ├── dependencies.py
   └── routers └── routers
   │ ├── __init__.py │ ├── __init__.py
   │ ├── items.py │ ├── items.py
   │ └── users.py │ └── users.py
   └── internal └── internal
   ├── __init__.py ├── __init__.py
   └── admin.py └── admin.py
``` ```
/// tip | İpucu /// tip | İpucu
@ -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. Kullanıcılarla ilgili *path operation*’ları, kodun geri kalanından ayrı tutmak istiyorsunuz; böylece düzenli kalır.
Namun bu hâlâ aynı **FastAPI** uygulaması/web API’sinin bir parçasıdır (aynı "Python Package" içinde). Ancak 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. 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. Örneği basit tutmak için uydurma bir header kullanıyoruz.
Namun gerçek senaryolarda, entegre [Security yardımcı araçlarını](security/index.md) kullanarak daha iyi sonuç alırsınız. Ancak gerçek senaryolarda, entegre [Security yardımcı araçlarını](security/index.md) kullanarak daha iyi sonuç alırsınız.
/// ///
@ -138,7 +138,7 @@ Diyelim ki uygulamanızdaki "items" ile ilgili endpoint'ler de `app/routers/item
Bu, `app/routers/users.py` ile aynı yapıdadır. Bu, `app/routers/users.py` ile aynı yapıdadır.
Namun biraz daha akıllı davranıp kodu sadeleştirmek istiyoruz. Ancak biraz daha akıllı davranıp kodu sadeleştirmek istiyoruz.
Bu module’deki tüm *path operation*’ların şu ortak özelliklere sahip olduğunu biliyoruz: Bu module’deki tüm *path operation*’ların şu ortak özelliklere sahip olduğunu biliyoruz:
@ -230,7 +230,7 @@ from .dependencies import get_token_header
* `dependencies` module’ünü bul (`app/routers/dependencies.py` gibi hayali bir dosya)... * `dependencies` module’ünü bul (`app/routers/dependencies.py` gibi hayali bir dosya)...
* ve oradan `get_token_header` function’ını import et. * ve oradan `get_token_header` function’ını import et.
Namun o dosya yok; bizim dependency’lerimiz `app/dependencies.py` dosyasında. Ancak 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: Uygulama/dosya yapımızın nasıl göründüğünü hatırlayın:
@ -437,7 +437,7 @@ Sonuç olarak, uygulamamızda `admin` module’ündeki her bir *path operation*
* `get_token_header` dependency’si. * `get_token_header` dependency’si.
* `418` response’u. 🍵 * `418` response’u. 🍵
Namun bu sadece bizim uygulamamızdaki o `APIRouter` için geçerlidir; onu kullanan diğer kodlar için değil. Ancak 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. Dolayısıyla örneğin diğer projeler aynı `APIRouter`’ı farklı bir authentication yöntemiyle kullanabilir.
@ -490,7 +490,7 @@ Komuta dosya yolunu da verebilirsiniz, örneğin:
$ fastapi dev app/main.py $ fastapi dev app/main.py
``` ```
Namun o zaman her `fastapi` komutunu çalıştırdığınızda doğru yolu hatırlayıp geçirmeniz gerekir. Ancak 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. 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.

1
docs/tr/docs/tutorial/body-nested-models.md

@ -1,5 +1,6 @@
# Body - İç İçe Modeller { #body-nested-models } # Body - İç İçe Modeller { #body-nested-models }
**FastAPI** ile (Pydantic sayesinde) istediğiniz kadar derin iç içe geçmiş modelleri tanımlayabilir, doğrulayabilir, dokümante edebilir ve kullanabilirsiniz. **FastAPI** ile (Pydantic sayesinde) istediğiniz kadar derin iç içe geçmiş modelleri tanımlayabilir, doğrulayabilir, dokümante edebilir ve kullanabilirsiniz.
## List alanları { #list-fields } ## List alanları { #list-fields }

1
docs/tr/docs/tutorial/body.md

@ -1,5 +1,6 @@
# Request Body { #request-body } # Request Body { #request-body }
Bir client'ten (örneğin bir tarayıcıdan) API'nize veri göndermeniz gerektiğinde, bunu **request body** olarak gönderirsiniz. Bir client'ten (örneğin bir tarayıcıdan) API'nize veri göndermeniz gerektiğinde, bunu **request body** olarak gönderirsiniz.
Bir **request** body, client'in API'nize gönderdiği veridir. Bir **response** body ise API'nizin client'e gönderdiği veridir. Bir **request** body, client'in API'nize gönderdiği veridir. Bir **response** body ise API'nizin client'e gönderdiği veridir.

2
docs/tr/docs/tutorial/debugging.md

@ -59,7 +59,7 @@ Yani örneğin `importer.py` adında başka bir dosyanız var ve içinde şunlar
```Python ```Python
from myapp import app from myapp import app
# Some more code # Biraz daha kod
``` ```
bu durumda `myapp.py` içindeki otomatik oluşturulan `__name__` değişkeni `"__main__"` değerine sahip olmaz. bu durumda `myapp.py` içindeki otomatik oluşturulan `__name__` değişkeni `"__main__"` değerine sahip olmaz.

5
docs/tr/docs/tutorial/dependencies/dependencies-with-yield.md

@ -111,7 +111,7 @@ Ama ihtiyaç duyarsanız diye burada. 🤓
{* ../../docs_src/dependencies/tutorial008b_an_py310.py hl[18:22,31] *} {* ../../docs_src/dependencies/tutorial008b_an_py310.py hl[18:22,31] *}
Exception yakalayıp buna göre özel bir response oluşturmak istiyorsanız bir [Custom Exception Handler](../handling-errors.md#install-custom-exception-handlers) oluşturun. Exception yakalayıp buna göre özel bir response oluşturmak istiyorsanız bir [Özel Exception Handler](../handling-errors.md#install-custom-exception-handlers) oluşturun.
## `yield` ve `except` ile Dependency'ler { #dependencies-with-yield-and-except } ## `yield` ve `except` ile Dependency'ler { #dependencies-with-yield-and-except }
@ -233,7 +233,8 @@ participant operation as Path Operation
`yield` kullanan dependency'ler, zaman içinde farklı kullanım senaryolarını kapsamak ve bazı sorunları düzeltmek için gelişti. `yield` kullanan dependency'ler, zaman içinde farklı kullanım senaryolarını kapsamak ve bazı sorunları düzeltmek için gelişti.
FastAPI'nin farklı sürümlerinde nelerin değiştiğini görmek isterseniz, advanced guide'da şu bölümü okuyabilirsiniz: [Advanced Dependencies - Dependencies with `yield`, `HTTPException`, `except` and Background Tasks](../../advanced/advanced-dependencies.md#dependencies-with-yield-httpexception-except-and-background-tasks). FastAPI'nin farklı sürümlerinde nelerin değiştiğini görmek isterseniz, gelişmiş kılavuzda şu bölümü okuyabilirsiniz: [Gelişmiş Dependency'ler - `yield`, `HTTPException`, `except` ve Background Tasks ile Dependency'ler](../../advanced/advanced-dependencies.md#dependencies-with-yield-httpexception-except-and-background-tasks).
## Context Managers { #context-managers } ## Context Managers { #context-managers }
### "Context Managers" Nedir? { #what-are-context-managers } ### "Context Managers" Nedir? { #what-are-context-managers }

2
docs/tr/docs/tutorial/extra-data-types.md

@ -53,7 +53,7 @@ Kullanabileceğiniz ek veri tiplerinden bazıları şunlardır:
## Örnek { #example } ## Örnek { #example }
Yukarıdaki tiplerden bazılarını kullanan parametrelere sahip bir örnek *path operation* şöyle: Yukarıdaki tiplerden bazılarını kullanan parametrelere sahip bir örnek *path operation*:
{* ../../docs_src/extra_data_types/tutorial001_an_py310.py hl[1,3,12:16] *} {* ../../docs_src/extra_data_types/tutorial001_an_py310.py hl[1,3,12:16] *}

1
docs/tr/docs/tutorial/extra-models.md

@ -1,5 +1,6 @@
# Ek Modeller { #extra-models } # Ek Modeller { #extra-models }
Önceki örnekten devam edersek, birbiriyle ilişkili birden fazla modelin olması oldukça yaygındır. Önceki örnekten devam edersek, birbiriyle ilişkili birden fazla modelin olması oldukça yaygındır.
Bu durum özellikle kullanıcı modellerinde sık görülür, çünkü: Bu durum özellikle kullanıcı modellerinde sık görülür, çünkü:

1
docs/tr/docs/tutorial/first-steps.md

@ -1,5 +1,6 @@
# İlk Adımlar { #first-steps } # İlk Adımlar { #first-steps }
En sade FastAPI dosyası şu şekilde görünür: En sade FastAPI dosyası şu şekilde görünür:
{* ../../docs_src/first_steps/tutorial001_py310.py *} {* ../../docs_src/first_steps/tutorial001_py310.py *}

2
docs/tr/docs/tutorial/handling-errors.md

@ -93,7 +93,7 @@ Ve bu exception’ı FastAPI ile global olarak handle etmek istiyorsunuz.
Burada `/unicorns/yolo` için request atarsanız, *path operation* bir `UnicornException` `raise` eder. Burada `/unicorns/yolo` için request atarsanız, *path operation* bir `UnicornException` `raise` eder.
Namun bu, `unicorn_exception_handler` tarafından handle edilir. Ancak bu, `unicorn_exception_handler` tarafından handle edilir.
Böylece HTTP status code’u `418` olan, JSON içeriği şu şekilde temiz bir hata response’u alırsınız: Böylece HTTP status code’u `418` olan, JSON içeriği şu şekilde temiz bir hata response’u alırsınız:

4
docs/tr/docs/tutorial/index.md

@ -76,11 +76,11 @@ $ pip install "fastapi[standard]"
/// note | Not /// note | Not
`pip install "fastapi[standard]"` ile kurduğunuzda, bazı varsayılan opsiyonel standard bağımlılıklarla birlikte gelir. Bunlara `fastapi-cloud-cli` da dahildir; bu sayede [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz. `pip install "fastapi[standard]"` ile kurduğunuzda, bazı varsayılan opsiyonel standart bağımlılıklarla birlikte gelir. Bunlara `fastapi-cloud-cli` da dahildir; bu sayede [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz.
Bu opsiyonel bağımlılıkları istemiyorsanız bunun yerine `pip install fastapi` kurabilirsiniz. Bu opsiyonel bağımlılıkları istemiyorsanız bunun yerine `pip install fastapi` kurabilirsiniz.
Standard bağımlılıkları kurmak istiyor ama `fastapi-cloud-cli` olmasın diyorsanız, `pip install "fastapi[standard-no-fastapi-cloud-cli]"` ile kurabilirsiniz. Standart bağımlılıkları kurmak istiyor ama `fastapi-cloud-cli` olmasın diyorsanız, `pip install "fastapi[standard-no-fastapi-cloud-cli]"` ile kurabilirsiniz.
/// ///

2
docs/tr/docs/tutorial/metadata.md

@ -11,7 +11,7 @@ OpenAPI spesifikasyonunda ve otomatik API doküman arayüzlerinde kullanılan ş
| `title` | `str` | API'nin başlığı. | | `title` | `str` | API'nin başlığı. |
| `summary` | `str` | API'nin kısa özeti. <small>OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.</small> | | `summary` | `str` | API'nin kısa özeti. <small>OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.</small> |
| `description` | `str` | API'nin kısa açıklaması. Markdown kullanabilir. | | `description` | `str` | API'nin kısa açıklaması. Markdown kullanabilir. |
| `version` | `string` | API'nin sürümü. Bu, OpenAPI'nin değil, kendi uygulamanızın sürümüdür. Örneğin `2.5.0`. | | `version` | `str` | API'nin sürümü. Bu, OpenAPI'nin değil, kendi uygulamanızın sürümüdür. Örneğin `2.5.0`. |
| `terms_of_service` | `str` | API'nin Kullanım Koşulları (Terms of Service) için bir URL. Verilirse, URL formatında olmalıdır. | | `terms_of_service` | `str` | API'nin Kullanım Koşulları (Terms of Service) için bir URL. Verilirse, URL formatında olmalıdır. |
| `contact` | `dict` | Yayınlanan API için iletişim bilgileri. Birden fazla alan içerebilir. <details><summary><code>contact</code> alanları</summary><table><thead><tr><th>Parametre</th><th>Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td>İletişim kişisi/kuruluşunu tanımlayan ad.</td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>İletişim bilgilerine işaret eden URL. URL formatında OLMALIDIR.</td></tr><tr><td><code>email</code></td><td><code>str</code></td><td>İletişim kişisi/kuruluşunun e-posta adresi. E-posta adresi formatında OLMALIDIR.</td></tr></tbody></table></details> | | `contact` | `dict` | Yayınlanan API için iletişim bilgileri. Birden fazla alan içerebilir. <details><summary><code>contact</code> alanları</summary><table><thead><tr><th>Parametre</th><th>Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td>İletişim kişisi/kuruluşunu tanımlayan ad.</td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>İletişim bilgilerine işaret eden URL. URL formatında OLMALIDIR.</td></tr><tr><td><code>email</code></td><td><code>str</code></td><td>İletişim kişisi/kuruluşunun e-posta adresi. E-posta adresi formatında OLMALIDIR.</td></tr></tbody></table></details> |
| `license_info` | `dict` | Yayınlanan API için lisans bilgileri. Birden fazla alan içerebilir. <details><summary><code>license_info</code> alanları</summary><table><thead><tr><th>Parametre</th><th>Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td><strong>ZORUNLU</strong> (<code>license_info</code> ayarlanmışsa). API için kullanılan lisans adı.</td></tr><tr><td><code>identifier</code></td><td><code>str</code></td><td>API için bir [SPDX](https://spdx.org/licenses/) lisans ifadesi. <code>identifier</code> alanı, <code>url</code> alanıyla karşılıklı olarak dışlayıcıdır (ikisi aynı anda kullanılamaz). <small>OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.</small></td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>API için kullanılan lisansa ait URL. URL formatında OLMALIDIR.</td></tr></tbody></table></details> | | `license_info` | `dict` | Yayınlanan API için lisans bilgileri. Birden fazla alan içerebilir. <details><summary><code>license_info</code> alanları</summary><table><thead><tr><th>Parametre</th><th>Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td><strong>ZORUNLU</strong> (<code>license_info</code> ayarlanmışsa). API için kullanılan lisans adı.</td></tr><tr><td><code>identifier</code></td><td><code>str</code></td><td>API için bir [SPDX](https://spdx.org/licenses/) lisans ifadesi. <code>identifier</code> alanı, <code>url</code> alanıyla karşılıklı olarak dışlayıcıdır (ikisi aynı anda kullanılamaz). <small>OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.</small></td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>API için kullanılan lisansa ait URL. URL formatında OLMALIDIR.</td></tr></tbody></table></details> |

1
docs/tr/docs/tutorial/path-operation-configuration.md

@ -1,5 +1,6 @@
# Path Operation Yapılandırması { #path-operation-configuration } # Path Operation Yapılandırması { #path-operation-configuration }
Onu yapılandırmak için *path operation decorator*’ınıza geçebileceğiniz çeşitli parametreler vardır. Onu yapılandırmak için *path operation decorator*’ınıza geçebileceğiniz çeşitli parametreler vardır.
/// warning | Uyarı /// warning | Uyarı

1
docs/tr/docs/tutorial/query-params-str-validations.md

@ -1,5 +1,6 @@
# Query Parametreleri ve String Doğrulamaları { #query-parameters-and-string-validations } # Query Parametreleri ve String Doğrulamaları { #query-parameters-and-string-validations }
**FastAPI**, parametreleriniz için ek bilgi ve doğrulamalar (validation) tanımlamanıza izin verir. **FastAPI**, parametreleriniz için ek bilgi ve doğrulamalar (validation) tanımlamanıza izin verir.
Örnek olarak şu uygulamayı ele alalım: Örnek olarak şu uygulamayı ele alalım:

4
docs/tr/docs/tutorial/query-params.md

@ -1,4 +1,4 @@
# Sorgu Parametreleri { #query-parameters } # Query Parametreleri { #query-parameters }
Fonksiyonda path parametrelerinin parçası olmayan diğer parametreleri tanımladığınızda, bunlar otomatik olarak "query" parametreleri olarak yorumlanır. Fonksiyonda path parametrelerinin parçası olmayan diğer parametreleri tanımladığınızda, bunlar otomatik olarak "query" parametreleri olarak yorumlanır.
@ -71,7 +71,7 @@ Ayrıca, **FastAPI** path parametresi olan `item_id`'nin bir path parametresi ol
/// ///
## Sorgu parametresi tip dönüşümü { #query-parameter-type-conversion } ## Query parametresi tip dönüşümü { #query-parameter-type-conversion }
`bool` tipleri de tanımlayabilirsiniz, ve bunlar dönüştürülür: `bool` tipleri de tanımlayabilirsiniz, ve bunlar dönüştürülür:

2
docs/tr/docs/tutorial/request-files.md

@ -64,7 +64,7 @@ Tipi `UploadFile` olan bir dosya parametresi tanımlayın:
* Bu sayede görüntüler, videolar, büyük binary’ler vb. gibi büyük dosyalarda tüm belleği tüketmeden iyi çalışır. * Bu sayede görüntüler, videolar, büyük binary’ler vb. gibi büyük dosyalarda tüm belleği tüketmeden iyi çalışır.
* Upload edilen dosyadan metadata alabilirsiniz. * Upload edilen dosyadan metadata alabilirsiniz.
* [file-like](https://docs.python.org/3/glossary.html#term-file-like-object) bir `async` arayüze sahiptir. * [file-like](https://docs.python.org/3/glossary.html#term-file-like-object) bir `async` arayüze sahiptir.
* [`SpooledTemporaryFile`](https://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFile) nesnesini dışa açar; bunu, file-like nesne bekleyen diğer library’lere doğrudan geçebilirsiniz. * Gerçek bir Python [`SpooledTemporaryFile`](https://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFile) nesnesini dışa açar; bunu, file-like nesne bekleyen diğer library’lere doğrudan geçebilirsiniz.
### `UploadFile` { #uploadfile } ### `UploadFile` { #uploadfile }

1
docs/tr/docs/tutorial/request-forms.md

@ -1,5 +1,6 @@
# Form Verisi { #form-data } # Form Verisi { #form-data }
JSON yerine form alanlarını almanız gerektiğinde `Form` kullanabilirsiniz. JSON yerine form alanlarını almanız gerektiğinde `Form` kullanabilirsiniz.
/// note | Not /// note | Not

4
docs/tr/docs/tutorial/response-status-code.md

@ -1,4 +1,4 @@
# Response Status Code { #response-status-code } # Response Status Code'u { #response-status-code }
Bir response model tanımlayabildiğiniz gibi, herhangi bir *path operation* içinde `status_code` parametresiyle response için kullanılacak HTTP status code'u da belirtebilirsiniz: Bir response model tanımlayabildiğiniz gibi, herhangi bir *path operation* içinde `status_code` parametresiyle response için kullanılacak HTTP status code'u da belirtebilirsiniz:
@ -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. `status_code` parametresi, HTTP status code'u içeren bir sayı alır.
/// note | Bilgi /// note | Not
Alternatif olarak `status_code`, Python'un [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus)'ı gibi bir `IntEnum` da alabilir. Alternatif olarak `status_code`, Python'un [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus)'ı gibi bir `IntEnum` da alabilir.

8
docs/tr/docs/tutorial/schema-extra-example.md

@ -24,7 +24,7 @@ Aynı tekniği JSON Schema’yı genişletmek ve kendi özel ek bilgilerinizi ek
/// ///
/// note | Bilgi /// note | Not
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. 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.
@ -123,7 +123,7 @@ FastAPI’de OpenAPI’ye özel `examples`’ı, şu araçlar için `openapi_exa
/// tip | İpucu /// tip | İpucu
Zaten **FastAPI** sürümü **0.99.0 veya üzerini** kullanıyorsanız, büyük olasılıkla bu detayları **atlanabilirsiniz**. Zaten **FastAPI** sürümü **0.99.0 veya üzerini** kullanıyorsanız, büyük olasılıkla bu detayları **atlayabilirsiniz**.
Bunlar daha çok OpenAPI 3.1.0’ın henüz mevcut olmadığı eski sürümler için geçerlidir. Bunlar daha çok OpenAPI 3.1.0’ın henüz mevcut olmadığı eski sürümler için geçerlidir.
@ -155,7 +155,7 @@ OpenAPI ayrıca spesifikasyonun diğer bölümlerine de `example` ve `examples`
* `File()` * `File()`
* `Form()` * `Form()`
/// note | Bilgi /// note | Not
Bu eski OpenAPI’ye özel `examples` parametresi, FastAPI `0.103.0` sürümünden beri `openapi_examples` olarak kullanılıyor. 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. 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.
/// note | Bilgi /// note | Not
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 🎉). 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 🎉).

2
docs/tr/docs/tutorial/security/first-steps.md

@ -26,7 +26,7 @@ Güvenliği yönetmek için **FastAPI**’nin sunduğu araçları kullanalım.
/// note | Not /// 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. [`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. Ancak `pip install fastapi` komutunu kullanırsanız, `python-multipart` paketi varsayılan olarak dahil edilmez.

2
docs/tr/docs/tutorial/security/get-current-user.md

@ -14,7 +14,7 @@ Bize mevcut kullanıcıyı verecek şekilde düzenleyelim.
Body'leri bildirmek için Pydantic'i nasıl kullanıyorsak, aynı şekilde onu başka her yerde de kullanabiliriz: Body'leri bildirmek için Pydantic'i nasıl kullanıyorsak, aynı şekilde onu başka her yerde de kullanabiliriz:
{* ../../docs_src/security/tutorial002_an_py310.py hl[5,12:6] *} {* ../../docs_src/security/tutorial002_an_py310.py hl[5,12:16] *}
## `get_current_user` dependency'si oluşturun { #create-a-get-current-user-dependency } ## `get_current_user` dependency'si oluşturun { #create-a-get-current-user-dependency }

4
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. Şifrelenmiş değildir; yani herkes içeriğindeki bilgiyi geri çıkarabilir.
Namun imzalanmıştır. Bu yüzden, sizin ürettiğiniz bir token'ı aldığınızda, gerçekten onu sizin ürettiğinizi doğrulayabilirsiniz. Ancak 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. 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.
@ -120,7 +120,7 @@ Bir tane de kullanıcıyı authenticate edip geri döndüren bir yardımcı fonk
`authenticate_user`, veritabanında var olmayan bir username ile çağrıldığında, yine de sahte (dummy) bir hash'e karşı `verify_password` çalıştırıyoruz. `authenticate_user`, veritabanında var olmayan bir username ile çağrıldığında, yine de sahte (dummy) bir hash'e karşı `verify_password` çalıştırıyoruz.
Bu, username geçerli olsun ya da olmasın endpoint'in yaklaşık aynı sürede yanıt vermesini sağlar; böylece mevcut username'leri saymaya yarayabilecek zamanlama saldırılarını (timing attacks) engeller. Bu, username geçerli olsun ya da olmasın endpoint'in yaklaşık aynı sürede yanıt vermesini sağlar; böylece mevcut username'leri saymaya yarayabilecek **timing attacks** saldırılarını engeller.
/// note | Not /// note | Not

2
docs/tr/docs/tutorial/security/simple-oauth2.md

@ -146,7 +146,7 @@ UserInDB(
/// note | Not /// 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. `**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-model-dump) geri dönüp bakın.
/// ///

2
docs/tr/docs/tutorial/sql-databases.md

@ -352,6 +352,6 @@ $ fastapi dev
## Özet { #recap } ## Özet { #recap }
Bir SQL veritabanıyla etkileşim kurmak için [**SQLModel**](https://sqlmodel.tiangolo.com/) kullanabilir ve *data model* ile *table model* yaklaşımıyla kodu sadeleştirebilirsiniz. Bir SQL veritabanıyla etkileşim kurmak için [**SQLModel**](https://sqlmodel.tiangolo.com/) kullanabilir ve *data model*’ler ile *table model*’ler kullanarak kodu sadeleştirebilirsiniz.
**SQLModel** dokümantasyonunda çok daha fazlasını öğrenebilirsiniz; **FastAPI** ile SQLModel kullanımı için daha uzun bir mini [tutorial](https://sqlmodel.tiangolo.com/tutorial/fastapi/) da bulunuyor. 🚀 **SQLModel** dokümantasyonunda çok daha fazlasını öğrenebilirsiniz; **FastAPI** ile SQLModel kullanımı için daha uzun bir mini [tutorial](https://sqlmodel.tiangolo.com/tutorial/fastapi/) da bulunuyor. 🚀

8
docs/tr/docs/tutorial/static-files.md

@ -2,6 +2,14 @@
`StaticFiles` kullanarak bir dizindeki statik dosyaları otomatik olarak sunabilirsiniz. `StaticFiles` kullanarak bir dizindeki statik dosyaları otomatik olarak sunabilirsiniz.
/// tip | İpucu
Bir frontend host etmeniz gerekiyorsa, bunun yerine `app.frontend()` kullanın; bununla ilgili bilgileri [Frontend](frontend.md) bölümünde okuyabilirsiniz.
`app.frontend()`, altında `StaticFiles` kullanır ve frontend'ler için client-side routing'i handle etmek gibi ek avantajlar sağlar.
///
## `StaticFiles` Kullanımı { #use-staticfiles } ## `StaticFiles` Kullanımı { #use-staticfiles }
* `StaticFiles`'ı import edin. * `StaticFiles`'ı import edin.

3
docs/tr/docs/tutorial/testing.md

@ -75,6 +75,7 @@ Ayrıca **FastAPI** uygulamanız birden fazla dosya/modül vb. ile de oluşturul
`main.py` dosyasında **FastAPI** uygulamanız bulunuyor olsun: `main.py` dosyasında **FastAPI** uygulamanız bulunuyor olsun:
{* ../../docs_src/app_testing/app_a_py310/main.py *} {* ../../docs_src/app_testing/app_a_py310/main.py *}
### Test Dosyası { #testing-file } ### Test Dosyası { #testing-file }
@ -93,6 +94,7 @@ Bu dosya aynı package içinde olduğu için, `main` modülünden (`main.py`) `a
{* ../../docs_src/app_testing/app_a_py310/test_main.py hl[3] *} {* ../../docs_src/app_testing/app_a_py310/test_main.py hl[3] *}
...ve test kodunu da öncekiyle aynı şekilde yazabilirsiniz. ...ve test kodunu da öncekiyle aynı şekilde yazabilirsiniz.
## Test Etme: Genişletilmiş Örnek { #testing-extended-example } ## Test Etme: Genişletilmiş Örnek { #testing-extended-example }
@ -127,6 +129,7 @@ Sonrasında `test_main.py` dosyanızı genişletilmiş testlerle güncelleyebili
{* ../../docs_src/app_testing/app_b_an_py310/test_main.py *} {* ../../docs_src/app_testing/app_b_an_py310/test_main.py *}
Client'ın request içinde bir bilgi göndermesi gerektiğinde ve bunu nasıl yapacağınızı bilemediğinizde, `httpx` ile nasıl yapılacağını aratabilirsiniz (Google) ya da HTTPX’in tasarımı Requests’e dayandığı için `requests` ile nasıl yapıldığını da arayabilirsiniz. Client'ın request içinde bir bilgi göndermesi gerektiğinde ve bunu nasıl yapacağınızı bilemediğinizde, `httpx` ile nasıl yapılacağını aratabilirsiniz (Google) ya da HTTPX’in tasarımı Requests’e dayandığı için `requests` ile nasıl yapıldığını da arayabilirsiniz.
Sonra testlerinizde aynısını uygularsınız. Sonra testlerinizde aynısını uygularsınız.

6
docs/tr/docs/virtual-environments.md

@ -53,7 +53,7 @@ $ cd awesome-project
## Virtual Environment Oluşturun { #create-a-virtual-environment } ## Virtual Environment Oluşturun { #create-a-virtual-environment }
Bir Python projesi üzerinde **ilk kez** çalışmaya başladığınızda, **virtual environment**'i <dfn title="başka seçenekler de var, bu basit bir yönergedir">projenizin içinde</dfn> oluşturun. Bir Python projesi üzerinde **ilk kez** çalışmaya başladığınızda, virtual environment'i **<dfn title="başka seçenekler de var, bu basit bir yönergedir">projenizin içinde</dfn>** oluşturun.
/// tip | İpucu /// tip | İpucu
@ -443,6 +443,8 @@ Böylece `python` çalıştırdığınızda, o virtual environment içinden (ve
Artık projeniz üzerinde çalışmaya başlayabilirsiniz. Artık projeniz üzerinde çalışmaya başlayabilirsiniz.
/// tip | İpucu /// tip | İpucu
Yukarıdaki her şeyin aslında ne olduğunu anlamak ister misiniz? Yukarıdaki her şeyin aslında ne olduğunu anlamak ister misiniz?
@ -517,7 +519,7 @@ $ pip install "harry==3"
Sonuç olarak global Python environment'ınızda `harry` versiyon `3` kurulu olur. Sonuç olarak global Python environment'ınızda `harry` versiyon `3` kurulu olur.
Ve `philosophers-stone`'u tekrar çalıştırmaya kalkarsanız, `harry` versiyon `1`e ihtiyaç duyduğu için **çalışmama** ihtimali vardır. Ve `philosophers-stone`'u tekrar çalıştırmaya kalkarsanız, `harry` versiyon `1`'e ihtiyaç duyduğu için **çalışmama** ihtimali vardır.
```mermaid ```mermaid
flowchart LR flowchart LR

Loading…
Cancel
Save