From 1021152f0a35a78954b36c7e6b534c4eeb9ff45b Mon Sep 17 00:00:00 2001
From: =?utf8?q?Hasan=20Sezer=20Ta=C5=9Fan?=
<13135006+hasansezertasan@users.noreply.github.com>
Date: Tue, 9 Jan 2024 18:35:44 +0300
Subject: [PATCH] =?utf8?q?=F0=9F=8C=90=20Update=20Turkish=20translation=20?=
=?utf8?q?for=20`docs/tr/docs/index.md`=20(#10444)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
---
docs/tr/docs/index.md | 281 +++++++++++++++++++++---------------------
1 file changed, 141 insertions(+), 140 deletions(-)
diff --git a/docs/tr/docs/index.md b/docs/tr/docs/index.md
index e61f5b82cd..ac8830880b 100644
--- a/docs/tr/docs/index.md
+++ b/docs/tr/docs/index.md
@@ -2,45 +2,47 @@
@@ -148,9 +148,9 @@ $ pip install "uvicorn[standard]"
## Ãrnek
-### Åimdi dene
+### Kodu OluÅturalım
-* `main.py` adında bir dosya oluÅtur :
+* `main.py` adında bir dosya oluÅturup içine Åu kodu yapıÅtıralım:
```Python
from typing import Union
@@ -173,9 +173,9 @@ def read_item(item_id: int, q: Union[str, None] = None):
Ya da async def
...
-EÄer kodunda `async` / `await` var ise, `async def` kullan:
+EÄer kodunuzda `async` / `await` varsa, `async def` kullanalım:
-```Python hl_lines="9 14"
+```Python hl_lines="9 14"
from typing import Union
from fastapi import FastAPI
@@ -195,13 +195,13 @@ async def read_item(item_id: int, q: Union[str, None] = None):
**Not**:
-EÄer ne olduÄunu bilmiyor isen _"Acelen mi var?"_ kısmını oku `async` ve `await`.
+EÄer bu konu hakkında bilginiz yoksa `async` ve `await` dokümantasyonundaki _"Aceleniz mi var?"_ kısmını kontrol edebilirsiniz.
-### ÃalıÅtır
+### Kodu ÃalıÅtıralım
-Serverı aÅaÄıdaki komut ile çalıÅtır:
+Sunucuyu aÅaÄıdaki komutla çalıÅtıralım:
@@ -218,56 +218,56 @@ INFO: Application startup complete.
-ÃalıÅtırdıÄımız uvicorn main:app --reload
hakkında...
+uvicorn main:app --reload
komutuyla ilgili...
-`uvicorn main:app` Åunları ifade ediyor:
+`uvicorn main:app` komutunu Åu Åekilde açıklayabiliriz:
* `main`: dosya olan `main.py` (yani Python "modülü").
-* `app`: ise `main.py` dosyasının içerisinde oluÅturduÄumuz `app = FastAPI()` 'a denk geliyor.
-* `--reload`: ise kodda herhangi bir deÄiÅiklik yaptıÄımızda serverın yapılan deÄiÅiklerileri algılayıp, deÄiÅiklikleri siz herhangi bir Åey yapmadan uygulamasını saÄlıyor.
+* `app`: ise `main.py` dosyasının içerisinde `app = FastAPI()` satırında oluÅturduÄumuz `FastAPI` nesnesi.
+* `--reload`: kod deÄiÅikliklerinin ardından sunucuyu otomatik olarak yeniden baÅlatır. Bu parameteyi sadece geliÅtirme aÅamasında kullanmalıyız.
-### Dokümantasyonu kontrol et
+### Åimdi de Kontrol Edelim
-Browserını aç ve Åu linke git
http://127.0.0.1:8000/items/5?q=somequery.
+Tarayıcımızda Åu baÄlantıyı açalım
http://127.0.0.1:8000/items/5?q=somequery.
-Bir JSON yanıtı göreceksin:
+AÅaÄıdaki gibi bir JSON yanıtıyla karÅılaÅacaÄız:
```JSON
{"item_id": 5, "q": "somequery"}
```
-Az önce oluÅturduÄun API:
+Az önce oluÅturduÄumuz API:
-* `/` ve `/items/{item_id}` adreslerine HTTP talebi alabilir hale geldi.
-* İki _adresde_ `GET`
operasyonlarını (HTTP _metodları_ olarakta bilinen) yapabilir hale geldi.
-* `/items/{item_id}` _adresi_ ayrıca bir `item_id` _adres parametresine_ sahip ve bu bir `int` olmak zorunda.
-* `/items/{item_id}` _adresi_ opsiyonel bir `str` _sorgu paramtersine_ sahip bu da `q`.
+* `/` ve `/items/{item_id}`
_yollarına_ HTTP isteÄi alabilir.
+* İki _yolda_ `GET`
operasyonlarını (HTTP _metodları_ olarak da bilinen) kabul ediyor.
+* `/items/{item_id}` _yolu_ `item_id` adında bir _yol parametresine_ sahip ve bu parametre `int` deÄer almak zorundadır.
+* `/items/{item_id}` _yolu_ `q` adında bir _yol parametresine_ sahip ve bu parametre opsiyonel olmakla birlikte, `str` deÄer almak zorundadır.
-### İnteraktif API dokümantasyonu
+### EtkileÅimli API Dokümantasyonu
-Åimdi
http://127.0.0.1:8000/docs adresine git.
+Åimdi
http://127.0.0.1:8000/docs baÄlantısını açalım.
-Senin için otomatik oluÅturulmuÅ(
Swagger UI tarafından saÄlanan) interaktif bir API dokümanı göreceksin:
+
Swagger UI tarafından saÄlanan otomatik etkileÅimli bir API dokümantasyonu göreceÄiz:

-### Alternatif API dokümantasyonu
+### Alternatif API Dokümantasyonu
-Åimdi
http://127.0.0.1:8000/redoc adresine git.
+Åimdi
http://127.0.0.1:8000/redoc baÄlantısını açalım.
-Senin için alternatif olarak (
ReDoc tarafından saÄlanan) bir API dokümantasyonu daha göreceksin:
+
ReDoc tarafından saÄlanan otomatik dokümantasyonu göreceÄiz:

-## Ãrnek bir deÄiÅiklik
+## ÃrneÄi Güncelleyelim
-Åimdi `main.py` dosyasını deÄiÅtirelim ve body ile `PUT` talebi alabilir hale getirelim.
+Åimdi `main.py` dosyasını, `PUT` isteÄiyle birlikte bir gövde alacak Åekilde deÄiÅtirelim.
-Åimdi Pydantic sayesinde, Python'un standart tiplerini kullanarak bir body tanımlayacaÄız.
+
Gövdeyi Pydantic sayesinde standart python tiplerini kullanarak tanımlayalım.
-```Python hl_lines="4 9 10 11 12 25 26 27"
+```Python hl_lines="4 9-12 25-27"
from typing import Union
from fastapi import FastAPI
@@ -297,41 +297,41 @@ def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
```
-Server otomatik olarak yeniden baÅlamalı (çünkü yukarıda `uvicorn`'u çalıÅtırırken `--reload` parametresini kullandık.).
+Sunucu otomatik olarak yeniden baÅlamıŠolmalı (çünkü yukarıda `uvicorn` komutuyla birlikte `--reload` parametresini kullandık).
-### İnteraktif API dokümantasyonu'nda deÄiÅtirme yapmak
+### EtkileÅimli API Dokümantasyonundaki DeÄiÅimi Görelim
-Åimdi
http://127.0.0.1:8000/docs baÄlantısına tekrar git.
+Åimdi
http://127.0.0.1:8000/docs baÄlantısına tekrar gidelim.
-* İnteraktif API dokümantasyonu, yeni body ile beraber çoktan yenilenmiŠolması lazım:
+* EtkileÅimli API dokümantasyonu, yeni gövdede dahil olmak üzere otomatik olarak güncellenmiÅ olacak:

-* "Try it out"a tıkla, bu senin API parametleri üzerinde deneme yapabilmene izin veriyor:
+* "Try it out" butonuna tıklayalım, bu iÅlem API parametleri üzerinde deÄiÅiklik yapmamıza ve doÄrudan API ile etkileÅime geçmemize imkan saÄlayacak:

-* Åimdi "Execute" butonuna tıkla, kullanıcı arayüzü otomatik olarak API'ın ile baÄlantı kurarak ona bu parametreleri gönderecek ve sonucu karÅına getirecek.
+* Åimdi "Execute" butonuna tıklayalım, kullanıcı arayüzü API'ımız ile baÄlantı kurup parametreleri gönderecek ve sonucu ekranımıza getirecek:

-### Alternatif API dokümantasyonunda deÄiÅtirmek
+### Alternatif API Dokümantasyonundaki DeÄiÅimi Görelim
-Åimdi ise
http://127.0.0.1:8000/redoc adresine git.
+Åimdi ise
http://127.0.0.1:8000/redoc baÄlantısına tekrar gidelim.
-* Alternatif dokümantasyonda koddaki deÄiÅimler ile beraber kendini yeni query ve body ile güncelledi.
+* Alternatif dokümantasyonda yaptıÄımız deÄiÅiklikler ile birlikte yeni sorgu parametresi ve gövde bilgisi ile güncelemiÅ olacak:

### Ãzet
-Ãzetleyecek olursak, URL, sorgu veya request body'deki parametrelerini fonksiyon parametresi olarak kullanıyorsun. Bu parametrelerin veri tiplerini bir kere belirtmen yeterli.
+Ãzetlemek gerekirse, parametrelerin, gövdenin, vb. veri tiplerini fonksiyon parametreleri olarak **bir kere** tanımlıyoruz.
-Type-hinting iÅlemini Python dilindeki standart veri tipleri ile yapabilirsin
+Bu iÅlemi standart modern Python tipleriyle yapıyoruz.
-Yeni bir syntax'e alıÅmana gerek yok, metodlar ve classlar zaten spesifik kütüphanelere ait.
+Yeni bir sözdizimi yapısını, bir kütüphane özel metod veya sınıfları öÄrenmeye gerek yoktur.
-Sadece standart **Python 3.8+**.
+Hepsi sadece **Python 3.8+** standartlarına dayalıdır.
Ãrnek olarak, `int` tanımlamak için:
@@ -339,64 +339,64 @@ Sadece standart **Python 3.8+**.
item_id: int
```
-ya da daha kompleks `Item` tipi:
+ya da daha kompleks herhangi bir python modelini tanımlayabiliriz, örneÄin `Item` modeli için:
```Python
item: Item
```
-...sadece kısa bir parametre tipi belirtmekle beraber, sahip olacakların:
+...ve sadece kısa bir parametre tipi belirterek elde ettiklerimiz:
-* Editör desteÄi dahil olmak üzere:
+* Editör desteÄiyle birlikte:
* Otomatik tamamlama.
- * Tip sorguları.
-* Datanın tipe uyumunun sorgulanması:
- * EÄer data geçersiz ise, otomatik olarak hataları ayıklar.
- * Ãok derin JSON objelerinde bile veri tipi sorgusu yapar.
-* Gelen verinin
dönüÅümünü aÅaÄıdaki veri tiplerini kullanarak gerçekleÅtirebiliyor.
+ * Tip kontrolü.
+* Veri DoÄrulama:
+ * Veri geçerli deÄilse, otomatik olarak açıklayıcı hatalar gösterir.
+ * Ãok
derin JSON nesnelerinde bile doÄrulama yapar.
+* Gelen verinin
dönüÅümünü aÅaÄıdaki veri tiplerini kullanarak gerçekleÅtirir:
* JSON.
- * Path parametreleri.
- * Query parametreleri.
- * Cookies.
+ * Yol parametreleri.
+ * Sorgu parametreleri.
+ * Ãerezler.
* Headers.
- * Forms.
- * Files.
-* Giden verinin
dönüÅümünü aÅaÄıdaki veri tiplerini kullanarak gerçekleÅtirebiliyor (JSON olarak):
- * Python tiplerinin (`str`, `int`, `float`, `bool`, `list`, vs) çevirisi.
- * `datetime` objesi.
- * `UUID` objesi.
+ * Formlar.
+ * Dosyalar.
+* Giden verinin
dönüÅümünü aÅaÄıdaki veri tiplerini kullanarak gerçekleÅtirir (JSON olarak):
+ * Python tiplerinin (`str`, `int`, `float`, `bool`, `list`, vb) dönüÅümü.
+ * `datetime` nesnesi.
+ * `UUID` nesnesi.
* Veritabanı modelleri.
- * ve daha fazlası...
-* 2 alternatif kullanıcı arayüzü dahil olmak üzere, otomatik interaktif API dokümanu:
+ * ve çok daha fazlası...
+* 2 alternatif kullanıcı arayüzü dahil olmak üzere, otomatik etkileÅimli API dokümantasyonu saÄlar:
* Swagger UI.
* ReDoc.
---
-Az önceki kod örneÄine geri dönelim, **FastAPI**'ın yapacaklarına bir bakıŠatalım:
+Az önceki örneÄe geri dönelim, **FastAPI**'ın yapacaklarına bir bakıŠatalım:
-* `item_id`'nin `GET` ve `PUT` talepleri içinde olup olmadıÄının doÄruluÄunu kontol edecek.
-* `item_id`'nin tipinin `int` olduÄunu `GET` ve `PUT` talepleri içinde olup olmadıÄının doÄruluÄunu kontol edecek.
- * EÄer `GET` ve `PUT` içinde yok ise ve `int` deÄil ise, sebebini belirten bir hata mesajı gösterecek
-* Opsiyonel bir `q` parametresinin `GET` talebi için (`http://127.0.0.1:8000/items/foo?q=somequery` içinde) olup olmadıÄını kontrol edecek
+* `item_id`'nin `GET` ve `PUT` istekleri için, yolda olup olmadıÄının kontol edecek.
+* `item_id`'nin `GET` ve `PUT` istekleri için, tipinin `int` olduÄunu doÄrulayacak.
+ * EÄer deÄilse, sebebini belirten bir hata mesajı gösterecek.
+* Opsiyonel bir `q` parametresinin `GET` isteÄi içinde (`http://127.0.0.1:8000/items/foo?q=somequery` gibi) olup olmadıÄını kontrol edecek
* `q` parametresini `= None` ile oluÅturduÄumuz için, opsiyonel bir parametre olacak.
- * EÄer `None` olmasa zorunlu bir parametre olacak idi (bu yüzden body'de `PUT` parametresi var).
-* `PUT` talebi için `/items/{item_id}`'nin body'sini, JSON olarak okuyor:
- * `name` adında bir parametetre olup olmadıÄını ve var ise onun `str` olup olmadıÄını kontol ediyor.
- * `price` adında bir parametetre olup olmadıÄını ve var ise onun `float` olup olmadıÄını kontol ediyor.
- * `is_offer` adında bir parametetre olup olmadıÄını ve var ise onun `bool` olup olmadıÄını kontol ediyor.
- * Bunların hepsini en derin JSON modellerinde bile yapacaktır.
-* Bütün veri tiplerini otomatik olarak JSON'a çeviriyor veya tam tersi.
-* Her Åeyi dokümanlayıp, çeÅitli yerlerde:
- * İnteraktif dokümantasyon sistemleri.
- * Otomatik alıcı kodu üretim sistemlerinde ve çeÅitli dillerde.
-* İki ayrı web arayüzüyle direkt olarak interaktif bir dokümantasyon sunuyor.
+ * EÄer `None` olmasa zorunlu bir parametre olacaktı (`PUT` metodunun gövdesinde olduÄu gibi).
+* `PUT` isteÄi için `/items/{item_id}`'nin gövdesini, JSON olarak doÄrulayıp okuyacak:
+ * `name` adında zorunlu bir parametre olup olmadıÄını ve varsa tipinin `str` olup olmadıÄını kontol edecek.
+ * `price` adında zorunlu bir parametre olup olmadıÄını ve varsa tipinin `float` olup olmadıÄını kontol edecek.
+ * `is_offer` adında opsiyonel bir parametre olup olmadıÄını ve varsa tipinin `float` olup olmadıÄını kontol edecek.
+ * Bunların hepsi en derin JSON nesnelerinde bile çalıÅacak.
+* Verilerin JSON'a ve JSON'ın python nesnesine dönüÅümü otomatik olarak yapılacak.
+* Her Åeyi OpenAPI ile uyumlu bir Åekilde otomatik olarak dokümanlayacak ve bunlarda aÅaÄıdaki gibi kullanılabilecek:
+ * EtkileÅimli dokümantasyon sistemleri.
+ * Bir çok programlama dili için otomatik istemci kodu üretim sistemleri.
+* İki ayrı etkileÅimli dokümantasyon arayüzünü doÄrudan saÄlayacak.
---
-Henüz yüzeysel bir bakıŠattık, fakat sen çoktan çalıÅma mantıÄını anladın.
+Daha yeni baÅladık ama çalıÅma mantıÄını çoktan anlamıŠoldunuz.
-Åimdi aÅaÄıdaki satırı deÄiÅtirmeyi dene:
+Åimdi aÅaÄıdaki satırı deÄiÅtirmeyi deneyin:
```Python
return {"item_name": item.name, "item_id": item_id}
@@ -414,22 +414,22 @@ Henüz yüzeysel bir bakıŠattık, fakat sen çoktan çalıÅma mantıÄını
... "item_price": item.price ...
```
-...Åimdi editör desteÄinin nasıl veri tiplerini bildiÄini ve otomatik tamamladıÄını gör:
+...ve editörünün veri tiplerini bildiÄini ve otomatik tamamladıÄını göreceksiniz:

-Daha fazla örnek ve özellik için
Tutorial - User Guide sayfasını git.
+Daha fazal özellik içeren, daha eksiksiz bir örnek için
ÃÄretici - Kullanıcı Rehberi sayfasını ziyaret edebilirsin.
-**Spoiler**: ÃÄretici - Kullanıcı rehberi Åunları içeriyor:
+**Spoiler**: ÃÄretici - Kullanıcı rehberi Åunları içerir:
-* **Parameterlerini** nasıl **headers**, **cookies**, **form fields** ve **files** olarak deklare edebileceÄini.
-* `maximum_length` ya da `regex` gibi Åeylerle nasıl **doÄrulama** yapabileceÄini.
-* Ãok güçlü ve kullanımı kolay **
Zorunluluk Entegrasyonu** oluÅturmayı.
-* Güvenlik ve kimlik doÄrulama, **JWT tokenleri**'yle beraber **OAuth2** desteÄi, ve **HTTP Basic** doÄrulaması.
-* İleri seviye fakat ona göre oldukça basit olan **derince oluÅturulmuÅ JSON modelleri** (Pydantic sayesinde).
+* **Parameterlerin**, **headers**, **çerezler**, **form alanları** ve **dosyalar** olarak tanımlanması.
+* `maximum_length` ya da `regex` gibi **doÄrulama kısıtlamalarının** nasıl yapılabileceÄi.
+* Ãok güçlü ve kullanımı kolay **
BaÄımlılık Enjeksiyonu** sistemi oluÅturmayı.
+* Güvenlik ve kimlik doÄrulama, **JWT tokenleri** ile **OAuth2** desteÄi, ve **HTTP Basic** doÄrulaması.
+* İleri seviye fakat bir o kadarda basit olan **çok derin JSON modelleri** (Pydantic sayesinde).
+* **GraphQL** entegrasyonu:
Strawberry ve diÄer kütüphaneleri kullanarak.
* DiÄer ekstra özellikler (Starlette sayesinde):
- * **WebSockets**
- * **GraphQL**
+ * **WebSocketler**
* HTTPX ve `pytest` sayesinde aÅırı kolay testler.
* **CORS**
* **Cookie Sessions**
@@ -437,33 +437,34 @@ Daha fazla örnek ve özellik için
Python'un en hızlı frameworklerinden birisi , sadece Starlette ve Uvicorn'dan daha yavaŠki FastAPI bunların üzerine kurulu.
+BaÄımsız TechEmpower kıyaslamaları gösteriyor ki, Uvicorn ile çalıÅtırılan **FastAPI** uygulamaları
en hızlı Python framework'lerinden birisi, sadece Starlette ve Uvicorn'dan yavaÅ, ki FastAPI bunların üzerine kurulu bir kütüphanedir.
-Daha fazla bilgi için, bu bölüme bir göz at
Benchmarks.
+Daha fazla bilgi için, bu bölüme bir göz at
Kıyaslamalar.
-## Opsiyonel gereksinimler
+## Opsiyonel Gereksinimler
Pydantic tarafında kullanılan:
*
email_validator
- email doÄrulaması için.
+*
pydantic-settings
- ayar yönetimi için.
+*
pydantic-extra-types
- Pydantic ile birlikte kullanılabilecek ek tipler için.
Starlette tarafında kullanılan:
-*
httpx
- EÄer `TestClient` kullanmak istiyorsan gerekli.
-*
jinja2
- EÄer kendine ait template konfigürasyonu oluÅturmak istiyorsan gerekli
-*
python-multipart
- Form kullanmak istiyorsan gerekli
("dönüÅümü").
+*
httpx
- EÄer `TestClient` yapısını kullanacaksanız gereklidir.
+*
jinja2
- EÄer varsayılan template konfigürasyonunu kullanacaksanız gereklidir.
+*
python-multipart
- EÄer `request.form()` ile form
dönüÅümü desteÄini kullanacaksanız gereklidir.
*
itsdangerous
- `SessionMiddleware` desteÄi için gerekli.
*
pyyaml
- `SchemaGenerator` desteÄi için gerekli (Muhtemelen FastAPI kullanırken ihtiyacınız olmaz).
-*
graphene
- `GraphQLApp` desteÄi için gerekli.
-*
ujson
- `UJSONResponse` kullanmak istiyorsan gerekli.
+*
ujson
- `UJSONResponse` kullanacaksanız gerekli.
Hem FastAPI hem de Starlette tarafından kullanılan:
-*
uvicorn
- oluÅturduÄumuz uygulamayı bir web sunucusuna servis etmek için gerekli
-*
orjson
- `ORJSONResponse` kullanmak istiyor isen gerekli.
+*
uvicorn
- oluÅturduÄumuz uygulamayı servis edecek web sunucusu görevini üstlenir.
+*
orjson
- `ORJSONResponse` kullanacaksanız gereklidir.
Bunların hepsini `pip install fastapi[all]` ile yükleyebilirsin.
## Lisans
-Bu proje, MIT lisansı Åartlarına göre lisanslanmıÅtır.
+Bu proje, MIT lisansı Åartları altında lisanslanmıÅtır.
--
2.47.2