From b83c8ff874dfa31cfde6a318aaf4fca8cc3c0140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Soyta=C5=9F?= Date: Fri, 23 Feb 2024 14:27:09 +0300 Subject: [PATCH 1/4] Add Turkish translation for `docs/tr/docs/tutorial/path-params-numeric-validations.md` --- .../path-params-numeric-validations.md | 294 ++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 docs/tr/docs/tutorial/path-params-numeric-validations.md diff --git a/docs/tr/docs/tutorial/path-params-numeric-validations.md b/docs/tr/docs/tutorial/path-params-numeric-validations.md new file mode 100644 index 000000000..f1ef20ae8 --- /dev/null +++ b/docs/tr/docs/tutorial/path-params-numeric-validations.md @@ -0,0 +1,294 @@ +# Yol Parametreleri ve Sayısal Doğrulamalar + +`Query` ifadesi ile sorgu parametreleri için tanımladığınız doğrulamalar ve üstverileri aynı şekilde `Path` ifadesi için de tanımlayabilirsiniz. + +## Path İfadesini İçeri Aktaralım + +Öncelikle, `fastapi` paketinden `Path` ifadesini ve sonra `Annotated` ifadesini içeri aktaralım: + +=== "Python 3.10+" + + ```Python hl_lines="1 3" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="1 3" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="3-4" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an.py!} + ``` + +=== "Python 3.10+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="1" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!} + ``` + +=== "Python 3.8+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="3" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!} + ``` + +!!! info "Bilgi" + FastAPI, 0.95.0 versiyonu ile birlikte `Annotated` ifadesini desteklemeye (ve önermeye) başladı. + + Daha eski bir sürüme sahipseniz `Annotated` ifadesini kullanırken hata alacaksınızdır. + + `Annotated` ifadesini kullanmadan önce [FastAPI versiyon güncellemesini](../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} en az 0.95.1 sürümüne getirdiğinizden emin olunuz. + +## Üstveri Tanımlayalım + +`Query` ifadesinde geçerli olan tüm parametreleri kullanabilirsiniz. + +Örneğin, `item_id` yol parametresi için `title` üstverisi tanımlamak adına şunu yazabilirsiniz: + +=== "Python 3.10+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="11" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_an.py!} + ``` + +=== "Python 3.10+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="8" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!} + ``` + +=== "Python 3.8+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!} + ``` + +!!! note "Not" + Yol parametreleri, yolun bir parçası olduklarından dolayı her zaman zorunlu haldedirlerdir. + + Bu nedenle, `...` ifadesini kullanarak onları zorunlu olarak damgalayabilirsiniz. + + Yine de, parametreyi `None` ile tanımlamanıza veya parametreye varsayılan bir değer atamanıza rağmen parametre bunlardan etkilenmeyip her koşulda zorunlu kılınacaktır. + +## İhtiyaca Göre Parametreleri Sıralayalım + +!!! tip "İpucu" + Bu durum, `Annotated` kullandığınız şartlarda çok da önemli veya gerekli olmayacaktır. + +Diyelim ki `q` sorgu parametresini zorunlu bir `str` olarak tanımlamak istiyorsunuz. + +Ve o parametre için farklı bir tanımlama da yapmanıza gerek olmadığından dolayı `Query` ifadesine çok da gerek duymuyorsunuz. + +Ama yine de, `item_id` yol parametresi için `Path` ifadesini kullanma ihtiyacı duyuyorsunuz ve bazı nedenlerden dolayı `Annotated` ifadesini kullanmak istemiyorsunuz. + +Bu durumda, "varsayılan" değeri olmayan bir parametrenin önüne "varsayılan" değere sahip bir parametre koyarsanız Python huysuzlanacaktır. + +Buna rağmen, varsayılan değersiz parametreyi (`q` sorgu parametresini) başa alacak şekilde yeniden sıralayabilirsiniz. + +**FastAPI** için bu durumun bir önemi yoktur ve parametreleri isimlerine, tiplerine ve varsayılan tanımlamalarına (`Query`, `Path`, vb) göre sıra fark etmeksizin ayırt edecektir. + +Yani, fonksiyonunuzu bu şekilde tanımlayabilirsiniz: + +=== "Python 3.8 Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="7" + {!> ../../../docs_src/path_params_numeric_validations/tutorial002.py!} + ``` + +Unutmamanız gerekir ki, bu tür bir problemi `Annotated` ifadesini kullanmayı tercih ederseniz `Query()` veya `Path()` ifadeleri için fonksiyon parametrelerinin varsayılan değerlerini kullanmadığınızdan dolayı yaşamayacaksınızdır. + +=== "Python 3.9+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial002_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="9" + {!> ../../../docs_src/path_params_numeric_validations/tutorial002_an.py!} + ``` + +## İhtiyaca Göre Parametre Sıralamada Püf Noktalar + +!!! tip "İpucu" + Bu durum, `Annotated` kullandığınız şartlarda çok da önemli veya gerekli olmayacaktır. + +İşte, kullanışlı olabilecek fakat sıkça kullanmayacağınız **küçük bir püf nokta**. + +Eğer: + +* `q` sorgu parametresini `Query` ifadesi veya herhangi bir varsayılan değer olmadan tanımlamak, +* `item_id` yol parametresini `Path` ifadesi ile tanımlamak, +* bu parametrelere farklı sıralamayla sahip olmak, +* ve `Annotated` ifadesini kullanmamak istiyorsanız + +...Python'ın bu durum için özel bir sözdizimi vardır. + +`*` simgesini, fonksiyonun ilk parametresi olarak geçebilirsiniz. + +Python, `*` simgesi ile özel bir şey yapmayıp varsayılan değerleri olmasa bile ardından gelen parametrelerin, anahtar kelime argümanları (anahtar-değer eşleri) diğer bir deyişle kwargs olarak çağırılması gerektiğinin farkında olacaktır. + +```Python hl_lines="7" +{!../../../docs_src/path_params_numeric_validations/tutorial003.py!} +``` + +### `Annotated` ile Daha İyi + +Eğer `Annotated` ifadesini kullanıyorsanız fonksiyon parametrelerinin varsayılan değerlerini kullanmayacağınızdan dolayı bu tarz bir probleme ve `*` simgesini kullanmaya ihtiyacınız kalmayacağını aklınızda bulundurabilirsiniz. + +=== "Python 3.9+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial003_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="9" + {!> ../../../docs_src/path_params_numeric_validations/tutorial003_an.py!} + ``` + +## Sayı Doğrulamaları: -dan Büyük veya Eşit + +`Query` ve `Path` ifadeleri (ve ileride göreceğiniz diğerleri) ile sayı kısıtlamaları tanımlayabilirsiniz. + +Burada, `ge=1` ifadesi sayesinde `item_id` değeri, `1`'den "büyük veya eşit" olmak zorunda kalacaktır. + +=== "Python 3.9+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="9" + {!> ../../../docs_src/path_params_numeric_validations/tutorial004_an.py!} + ``` + +=== "Python 3.8+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="8" + {!> ../../../docs_src/path_params_numeric_validations/tutorial004.py!} + ``` + +## Sayı Doğrulamaları: -dan Büyük ve -dan Küçük veya Eşit + +Aynı kural şu ifadeler için de geçerlidir: + +* `gt`: -dan büyük +* `le`: -dan küçük veya eşit + +=== "Python 3.9+" + + ```Python hl_lines="10" + {!> ../../../docs_src/path_params_numeric_validations/tutorial005_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="9" + {!> ../../../docs_src/path_params_numeric_validations/tutorial005_an.py!} + ``` + +=== "Python 3.8+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="9" + {!> ../../../docs_src/path_params_numeric_validations/tutorial005.py!} + ``` + +## Sayı Doğrulamaları: Float Sayılar, -dan Büyük ve -dan Küçük + +Sayı doğrulamaları `float` değerler ile de kullanılabilir. + +Sadece ge değil gt tanımlamasının da yapılabilmesinin önemli olduğu asıl kısım burasıdır. Örneğin, bu tanımlama ile birlikte bir değerin `1`'den küçük olmasına rağmen `0`'dan büyük olmasını zorunlu kılabilirsiniz. + +Bu sayede, `0.5` değeri geçerli olurken `0.0` veya `0` değerleri olmayacaktır. + +Aynı durum lt (-dan küçük) için de geçerlidir. + +=== "Python 3.9+" + + ```Python hl_lines="13" + {!> ../../../docs_src/path_params_numeric_validations/tutorial006_an_py39.py!} + ``` + +=== "Python 3.8+" + + ```Python hl_lines="12" + {!> ../../../docs_src/path_params_numeric_validations/tutorial006_an.py!} + ``` + +=== "Python 3.8+ Annotated'sız" + + !!! tip "İpucu" + Mümkün oldukça `Annotated`'lı versiyonu kullanmaya özen gösteriniz. + + ```Python hl_lines="11" + {!> ../../../docs_src/path_params_numeric_validations/tutorial006.py!} + ``` + +## Özet + +`Query`, `Path` ifadeleri (ve henüz görmediğiniz diğer ifadeler) ile birlikte [Sorgu Parametreleri ve String Doğrulamaları](query-params-str-validations.md){.internal-link target=_blank}'nda da olduğu gibi üstveri ve string doğrulamaları tanımlayabilirsiniz. + +Ayrıca, sayısal doğrulamalar için de tanımlama yapabilirsiniz: + +* `gt`: -dan büyük +* `ge`: -dan büyük veya eşit +* `lt`: -dan küçük +* `le`: -dan küçük veya eşit + +!!! info "Bilgi" + `Query`, `Path` ifadeleri ve ileride göreceğiniz diğer sınıflar `Param` ortak sınıfının alt sınıflarıdır. + + Bunların hepsi, aşina olmuş olduğunuz ek doğrulama ve üstveri tanımlamaları için aynı parametrelerden faydalanır. + +!!! note "Teknik Detaylar" + `Query`, `Path` ifadeleri ve `fastapi` paketinden içeri aktarılan diğer ifadeler aslında birer fonksiyondur. + + Bu fonksiyonlar çağrıldıkları zaman aynı isime sahip sınıfların örneklerini döndürürler. + + Yani, fonksiyon olan `Query` ifadesini içeri aktarıp çağırdığınızda yine `Query` isminde bir sınıfın örneğini geri döndürür. + + Bu fonksiyonlar (direkt olarak sınıf kullanımı yerine), editörünüzün onların tipleri hakkında hata tespit etmemesi adına mevcutta bulunurlar. + + Bu sayede, bahsedilen hataları görmezden gelmek adına özel düzenlemeler yapmadan editörünüzü ve kod araçlarınızı kullanabilirsiniz. \ No newline at end of file From 43170eb05057f2d00f2a36cc37968c6ad8269ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Soyta=C5=9F?= Date: Fri, 23 Feb 2024 14:30:47 +0300 Subject: [PATCH 2/4] Remove extra whitespace. --- docs/tr/docs/tutorial/path-params-numeric-validations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tr/docs/tutorial/path-params-numeric-validations.md b/docs/tr/docs/tutorial/path-params-numeric-validations.md index f1ef20ae8..f4a78b3f4 100644 --- a/docs/tr/docs/tutorial/path-params-numeric-validations.md +++ b/docs/tr/docs/tutorial/path-params-numeric-validations.md @@ -268,7 +268,7 @@ Aynı durum lt (-dan küçük) için ## Özet -`Query`, `Path` ifadeleri (ve henüz görmediğiniz diğer ifadeler) ile birlikte [Sorgu Parametreleri ve String Doğrulamaları](query-params-str-validations.md){.internal-link target=_blank}'nda da olduğu gibi üstveri ve string doğrulamaları tanımlayabilirsiniz. +`Query`, `Path` ifadeleri (ve henüz görmediğiniz diğer ifadeler) ile birlikte [Sorgu Parametreleri ve String Doğrulamaları](query-params-str-validations.md){.internal-link target=_blank}'nda da olduğu gibi üstveri ve string doğrulamaları tanımlayabilirsiniz. Ayrıca, sayısal doğrulamalar için de tanımlama yapabilirsiniz: From 6ba5f62901e0861134f0a78f4929c3506d27622a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 11:33:42 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20for?= =?UTF-8?q?mat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tr/docs/tutorial/path-params-numeric-validations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tr/docs/tutorial/path-params-numeric-validations.md b/docs/tr/docs/tutorial/path-params-numeric-validations.md index f4a78b3f4..966c42911 100644 --- a/docs/tr/docs/tutorial/path-params-numeric-validations.md +++ b/docs/tr/docs/tutorial/path-params-numeric-validations.md @@ -280,7 +280,7 @@ Ayrıca, sayısal doğrulamalar için de tanımlama yapabilirsiniz: !!! info "Bilgi" `Query`, `Path` ifadeleri ve ileride göreceğiniz diğer sınıflar `Param` ortak sınıfının alt sınıflarıdır. - Bunların hepsi, aşina olmuş olduğunuz ek doğrulama ve üstveri tanımlamaları için aynı parametrelerden faydalanır. + Bunların hepsi, aşina olmuş olduğunuz ek doğrulama ve üstveri tanımlamaları için aynı parametrelerden faydalanır. !!! note "Teknik Detaylar" `Query`, `Path` ifadeleri ve `fastapi` paketinden içeri aktarılan diğer ifadeler aslında birer fonksiyondur. @@ -291,4 +291,4 @@ Ayrıca, sayısal doğrulamalar için de tanımlama yapabilirsiniz: Bu fonksiyonlar (direkt olarak sınıf kullanımı yerine), editörünüzün onların tipleri hakkında hata tespit etmemesi adına mevcutta bulunurlar. - Bu sayede, bahsedilen hataları görmezden gelmek adına özel düzenlemeler yapmadan editörünüzü ve kod araçlarınızı kullanabilirsiniz. \ No newline at end of file + Bu sayede, bahsedilen hataları görmezden gelmek adına özel düzenlemeler yapmadan editörünüzü ve kod araçlarınızı kullanabilirsiniz. From 348fa3ff6d95d4739c98c4ff0821d206d9191670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Soyta=C5=9F?= Date: Tue, 27 Feb 2024 12:29:58 +0300 Subject: [PATCH 4/4] Update path-params-numeric-validations.md --- docs/tr/docs/tutorial/path-params-numeric-validations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tr/docs/tutorial/path-params-numeric-validations.md b/docs/tr/docs/tutorial/path-params-numeric-validations.md index 966c42911..47908790c 100644 --- a/docs/tr/docs/tutorial/path-params-numeric-validations.md +++ b/docs/tr/docs/tutorial/path-params-numeric-validations.md @@ -113,7 +113,7 @@ Bu durumda, "varsayılan" değeri olmayan bir parametrenin önüne "varsayılan" Buna rağmen, varsayılan değersiz parametreyi (`q` sorgu parametresini) başa alacak şekilde yeniden sıralayabilirsiniz. -**FastAPI** için bu durumun bir önemi yoktur ve parametreleri isimlerine, tiplerine ve varsayılan tanımlamalarına (`Query`, `Path`, vb) göre sıra fark etmeksizin ayırt edecektir. +**FastAPI** için bu durumun bir önemi yoktur ve parametreleri isimlerine, tiplerine ve varsayılan tanımlamalarına (`Query`, `Path`, vb.) göre sıra fark etmeksizin ayırt edecektir. Yani, fonksiyonunuzu bu şekilde tanımlayabilirsiniz: