From 77c61b333d62c554a46e88a50c1f58728aa33eb3 Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Fri, 20 Mar 2026 08:50:25 +0100 Subject: [PATCH] Convert links to markdown style using script from PR#15061 --- .../tr/docs/advanced/advanced-dependencies.md | 2 +- docs/tr/docs/advanced/dataclasses.md | 2 +- docs/tr/docs/advanced/response-directly.md | 2 +- .../docs/advanced/security/oauth2-scopes.md | 4 +- docs/tr/docs/deployment/concepts.md | 8 +- docs/tr/docs/deployment/docker.md | 38 ++++---- docs/tr/docs/deployment/https.md | 2 +- .../docs/how-to/custom-request-and-route.md | 4 +- docs/tr/docs/index.md | 94 +++++++++---------- docs/tr/docs/tutorial/handling-errors.md | 2 +- docs/tr/docs/tutorial/metadata.md | 4 +- 11 files changed, 81 insertions(+), 81 deletions(-) diff --git a/docs/tr/docs/advanced/advanced-dependencies.md b/docs/tr/docs/advanced/advanced-dependencies.md index 0e2c6c7c40..24453f6895 100644 --- a/docs/tr/docs/advanced/advanced-dependencies.md +++ b/docs/tr/docs/advanced/advanced-dependencies.md @@ -132,7 +132,7 @@ SQLModel (veya SQLAlchemy) kullanarak bu spesifik senaryoya sahipseniz, session' Böylece session veritabanı bağlantısını serbest bırakır ve diğer request'ler bunu kullanabilir. -`yield` kullanan bir dependency'den erken çıkış gerektiren farklı bir kullanım senaryonuz varsa, lütfen kullanım senaryonuzla birlikte ve `yield` kullanan dependency'ler için erken kapatmadan neden fayda göreceğinizi açıklayarak bir GitHub Discussion Sorusu oluşturun. +`yield` kullanan bir dependency'den erken çıkış gerektiren farklı bir kullanım senaryonuz varsa, lütfen kullanım senaryonuzla birlikte ve `yield` kullanan dependency'ler için erken kapatmadan neden fayda göreceğinizi açıklayarak bir [GitHub Discussion Sorusu](https://github.com/fastapi/fastapi/discussions/new?category=questions) oluşturun. `yield` kullanan dependency'lerde erken kapatma için ikna edici kullanım senaryoları varsa, erken kapatmayı seçmeli (opt-in) hale getiren yeni bir yöntem eklemeyi düşünebilirim. diff --git a/docs/tr/docs/advanced/dataclasses.md b/docs/tr/docs/advanced/dataclasses.md index 15e4623906..998ccea8a2 100644 --- a/docs/tr/docs/advanced/dataclasses.md +++ b/docs/tr/docs/advanced/dataclasses.md @@ -74,7 +74,7 @@ Bu durumda standart `dataclasses` yerine, drop-in replacement olan `pydantic.dat Her zaman olduğu gibi, FastAPI'de ihtiyaca göre `def` ve `async def`’i birlikte kullanabilirsiniz. - Hangisini ne zaman kullanmanız gerektiğine dair hızlı bir hatırlatma isterseniz, [`async` ve `await`](../async.md#in-a-hurry){.internal-link target=_blank} dokümanındaki _"In a hurry?"_ bölümüne bakın. + Hangisini ne zaman kullanmanız gerektiğine dair hızlı bir hatırlatma isterseniz, [`async` ve `await`](../async.md#in-a-hurry) dokümanındaki _"In a hurry?"_ bölümüne bakın. 9. Bu *path operation function* dataclass döndürmüyor (isterse döndürebilir), onun yerine dahili verilerle bir dictionary listesi döndürüyor. diff --git a/docs/tr/docs/advanced/response-directly.md b/docs/tr/docs/advanced/response-directly.md index cec9abb580..8db51e3513 100644 --- a/docs/tr/docs/advanced/response-directly.md +++ b/docs/tr/docs/advanced/response-directly.md @@ -56,7 +56,7 @@ Yukarıdaki örnek ihtiyaç duyduğunuz tüm parçaları gösteriyor, ancak hen Şimdi bunu kullanarak nasıl özel bir response döndürebileceğinize bakalım. -Diyelim ki XML response döndürmek istiyorsunuz. +Diyelim ki [XML](https://en.wikipedia.org/wiki/XML) response döndürmek istiyorsunuz. XML içeriğinizi bir string içine koyabilir, onu bir `Response` içine yerleştirip döndürebilirsiniz: diff --git a/docs/tr/docs/advanced/security/oauth2-scopes.md b/docs/tr/docs/advanced/security/oauth2-scopes.md index ecba7851b0..6ac6ea6c1e 100644 --- a/docs/tr/docs/advanced/security/oauth2-scopes.md +++ b/docs/tr/docs/advanced/security/oauth2-scopes.md @@ -60,7 +60,7 @@ OAuth2 için bunlar sadece string'dir. ## Genel görünüm { #global-view } -Önce, ana **Tutorial - User Guide** içindeki [Password (ve hashing) ile OAuth2, JWT token'lı Bearer](../../tutorial/security/oauth2-jwt.md){.internal-link target=_blank} örneklerinden, OAuth2 scope'larına geçince hangi kısımların değiştiğine hızlıca bakalım: +Önce, ana **Tutorial - User Guide** içindeki [Password (ve hashing) ile OAuth2, JWT token'lı Bearer](../../tutorial/security/oauth2-jwt.md) örneklerinden, OAuth2 scope'larına geçince hangi kısımların değiştiğine hızlıca bakalım: {* ../../docs_src/security/tutorial005_an_py310.py hl[5,9,13,47,65,106,108:116,122:126,130:136,141,157] *} @@ -271,4 +271,4 @@ Ama sonuçta aynı OAuth2 standardını implement ediyorlar. ## Decorator `dependencies` içinde `Security` { #security-in-decorator-dependencies } -Decorator'ın `dependencies` parametresinde bir `list` `Depends` tanımlayabildiğiniz gibi ( [Path operation decorator'larında Dependencies](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} bölümünde açıklandığı üzere), burada `scopes` ile birlikte `Security` de kullanabilirsiniz. +Decorator'ın `dependencies` parametresinde bir `list` `Depends` tanımlayabildiğiniz gibi ( [Path operation decorator'larında Dependencies](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md) bölümünde açıklandığı üzere), burada `scopes` ile birlikte `Security` de kullanabilirsiniz. diff --git a/docs/tr/docs/deployment/concepts.md b/docs/tr/docs/deployment/concepts.md index f5ee988c9a..211e2ab51b 100644 --- a/docs/tr/docs/deployment/concepts.md +++ b/docs/tr/docs/deployment/concepts.md @@ -25,7 +25,7 @@ Ama şimdilik, bu önemli **kavramsal fikirleri** inceleyelim. Bu kavramlar diğ ## Güvenlik - HTTPS { #security-https } -[HTTPS hakkındaki önceki bölümde](https.md){.internal-link target=_blank} HTTPS'in API'niz için nasıl şifreleme sağladığını öğrenmiştik. +[HTTPS hakkındaki önceki bölümde](https.md) HTTPS'in API'niz için nasıl şifreleme sağladığını öğrenmiştik. Ayrıca HTTPS'in genellikle uygulama server'ınızın **dışında** yer alan bir bileşen tarafından sağlandığını, yani bir **TLS Termination Proxy** ile yapıldığını da görmüştük. @@ -190,7 +190,7 @@ Aynı API programının **birden fazla process**'ini çalıştırdığınızda, ### Worker Process'ler ve Port'lar { #worker-processes-and-ports } -[HTTPS hakkındaki dokümanda](https.md){.internal-link target=_blank} bir server'da aynı port ve IP adresi kombinasyonunu yalnızca tek bir process'in dinleyebileceğini hatırlıyor musunuz? +[HTTPS hakkındaki dokümanda](https.md) bir server'da aynı port ve IP adresi kombinasyonunu yalnızca tek bir process'in dinleyebileceğini hatırlıyor musunuz? Bu hâlâ geçerli. @@ -243,7 +243,7 @@ Olası kombinasyonlar ve stratejiler: **Container**, Docker veya Kubernetes ile ilgili bazı maddeler şimdilik çok anlamlı gelmiyorsa dert etmeyin. -Container image'ları, Docker, Kubernetes vb. konuları ilerideki bir bölümde daha detaylı anlatacağım: [Container'larda FastAPI - Docker](docker.md){.internal-link target=_blank}. +Container image'ları, Docker, Kubernetes vb. konuları ilerideki bir bölümde daha detaylı anlatacağım: [Container'larda FastAPI - Docker](docker.md). /// @@ -281,7 +281,7 @@ Bazı olası fikirler: /// tip | İpucu -Bunu container'larla nasıl yapabileceğinize dair daha somut örnekleri ilerideki bir bölümde anlatacağım: [Container'larda FastAPI - Docker](docker.md){.internal-link target=_blank}. +Bunu container'larla nasıl yapabileceğinize dair daha somut örnekleri ilerideki bir bölümde anlatacağım: [Container'larda FastAPI - Docker](docker.md). /// diff --git a/docs/tr/docs/deployment/docker.md b/docs/tr/docs/deployment/docker.md index 0dd75e252c..0b2da213c3 100644 --- a/docs/tr/docs/deployment/docker.md +++ b/docs/tr/docs/deployment/docker.md @@ -1,6 +1,6 @@ # Container'larda FastAPI - Docker { #fastapi-in-containers-docker } -FastAPI uygulamalarını deploy ederken yaygın bir yaklaşım, bir **Linux container image** oluşturmaktır. Bu genellikle **Docker** kullanılarak yapılır. Ardından bu container image'ı birkaç farklı yöntemden biriyle deploy edebilirsiniz. +FastAPI uygulamalarını deploy ederken yaygın bir yaklaşım, bir **Linux container image** oluşturmaktır. Bu genellikle [**Docker**](https://www.docker.com/) kullanılarak yapılır. Ardından bu container image'ı birkaç farklı yöntemden biriyle deploy edebilirsiniz. Linux container'ları kullanmanın **güvenlik**, **tekrarlanabilirlik**, **basitlik** gibi birçok avantajı vardır. @@ -60,16 +60,16 @@ Ve **container**'ın kendisi (container image'a karşıt olarak) image'ın gerç Docker, **container image** ve **container** oluşturup yönetmek için kullanılan başlıca araçlardan biri olmuştur. -Ayrıca birçok araç, ortam, veritabanı ve uygulama için önceden hazırlanmış **resmi container image**'ların bulunduğu herkese açık bir Docker Hub vardır. +Ayrıca birçok araç, ortam, veritabanı ve uygulama için önceden hazırlanmış **resmi container image**'ların bulunduğu herkese açık bir [Docker Hub](https://hub.docker.com/) vardır. -Örneğin, resmi bir Python Image bulunur. +Örneğin, resmi bir [Python Image](https://hub.docker.com/_/python) bulunur. Ve veritabanları gibi farklı şeyler için de birçok image vardır; örneğin: -* PostgreSQL -* MySQL -* MongoDB -* Redis, vb. +* [PostgreSQL](https://hub.docker.com/_/postgres) +* [MySQL](https://hub.docker.com/_/mysql) +* [MongoDB](https://hub.docker.com/_/mongo) +* [Redis](https://hub.docker.com/_/redis), vb. Hazır bir container image kullanarak farklı araçları **birleştirmek** ve birlikte kullanmak çok kolaydır. Örneğin yeni bir veritabanını denemek için. Çoğu durumda **resmi image**'ları kullanıp sadece environment variable'lar ile yapılandırmanız yeterlidir. @@ -238,7 +238,7 @@ Aşağıda açıklandığı gibi `CMD` talimatının **her zaman** **exec form** #### `CMD` Kullanımı - Exec Form { #use-cmd-exec-form } -`CMD` Docker talimatı iki formda yazılabilir: +[`CMD`](https://docs.docker.com/reference/dockerfile/#cmd) Docker talimatı iki formda yazılabilir: ✅ **Exec** form: @@ -256,9 +256,9 @@ CMD fastapi run app/main.py --port 80 FastAPI'nin düzgün şekilde kapanabilmesi ve [lifespan event](../advanced/events.md)'lerinin tetiklenmesi için her zaman **exec** formunu kullanın. -Detaylar için shell ve exec form için Docker dokümanlarına bakabilirsiniz. +Detaylar için [shell ve exec form için Docker dokümanlarına](https://docs.docker.com/reference/dockerfile/#shell-and-exec-form) bakabilirsiniz. -Bu durum `docker compose` kullanırken oldukça belirgin olabilir. Daha teknik detaylar için şu Docker Compose FAQ bölümüne bakın: Hizmetlerimin yeniden oluşturulması veya durması neden 10 saniye sürüyor?. +Bu durum `docker compose` kullanırken oldukça belirgin olabilir. Daha teknik detaylar için şu Docker Compose FAQ bölümüne bakın: [Hizmetlerimin yeniden oluşturulması veya durması neden 10 saniye sürüyor?](https://docs.docker.com/compose/faq/#why-do-my-services-take-10-seconds-to-recreate-or-stop). #### Dizin Yapısı { #directory-structure } @@ -352,7 +352,7 @@ $ docker run -d --name mycontainer -p 80:80 myimage ## Kontrol Edin { #check-it } -Docker container'ınızın URL'inden kontrol edebilmelisiniz. Örneğin: http://192.168.99.100/items/5?q=somequery veya http://127.0.0.1/items/5?q=somequery (ya da Docker host'unuzu kullanarak eşdeğeri). +Docker container'ınızın URL'inden kontrol edebilmelisiniz. Örneğin: [http://192.168.99.100/items/5?q=somequery](http://192.168.99.100/items/5?q=somequery) veya [http://127.0.0.1/items/5?q=somequery](http://127.0.0.1/items/5?q=somequery) (ya da Docker host'unuzu kullanarak eşdeğeri). Şuna benzer bir şey görürsünüz: @@ -362,17 +362,17 @@ Docker container'ınızın URL'inden kontrol edebilmelisiniz. Örneğin: http://192.168.99.100/docs veya http://127.0.0.1/docs adresine gidebilirsiniz (ya da Docker host'unuzla eşdeğeri). +Şimdi [http://192.168.99.100/docs](http://192.168.99.100/docs) veya [http://127.0.0.1/docs](http://127.0.0.1/docs) adresine gidebilirsiniz (ya da Docker host'unuzla eşdeğeri). -Otomatik etkileşimli API dokümantasyonunu görürsünüz ( Swagger UI tarafından sağlanır): +Otomatik etkileşimli API dokümantasyonunu görürsünüz ( [Swagger UI](https://github.com/swagger-api/swagger-ui) tarafından sağlanır): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) ## Alternatif API Dokümanları { #alternative-api-docs } -Ayrıca http://192.168.99.100/redoc veya http://127.0.0.1/redoc adresine de gidebilirsiniz (ya da Docker host'unuzla eşdeğeri). +Ayrıca [http://192.168.99.100/redoc](http://192.168.99.100/redoc) veya [http://127.0.0.1/redoc](http://127.0.0.1/redoc) adresine de gidebilirsiniz (ya da Docker host'unuzla eşdeğeri). -Alternatif otomatik dokümantasyonu görürsünüz (ReDoc tarafından sağlanır): +Alternatif otomatik dokümantasyonu görürsünüz ([ReDoc](https://github.com/Rebilly/ReDoc) tarafından sağlanır): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) @@ -432,7 +432,7 @@ Bu **deployment kavramları**nı container'lar açısından gözden geçirelim: Bir FastAPI uygulamasının sadece **container image**'ına (ve sonra çalışan **container**'a) odaklanırsak, HTTPS genellikle **haricen** başka bir araçla ele alınır. -Örneğin Traefik kullanan başka bir container olabilir; **HTTPS** ve **sertifika**ların **otomatik** alınmasını o yönetebilir. +Örneğin [Traefik](https://traefik.io/) kullanan başka bir container olabilir; **HTTPS** ve **sertifika**ların **otomatik** alınmasını o yönetebilir. /// tip | İpucu @@ -558,7 +558,7 @@ Container kullanıyorsanız (örn. Docker, Kubernetes), temelde iki yaklaşım v /// info | Bilgi -Kubernetes kullanıyorsanız, bu muhtemelen bir Init Container olur. +Kubernetes kullanıyorsanız, bu muhtemelen bir [Init Container](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) olur. /// @@ -570,7 +570,7 @@ Basit bir kurulumda; **tek bir container** olup onun içinde birden fazla **work ### Base Docker Image { #base-docker-image } -Eskiden resmi bir FastAPI Docker image'ı vardı: tiangolo/uvicorn-gunicorn-fastapi. Ancak artık kullanımdan kaldırıldı (deprecated). ⛔️ +Eskiden resmi bir FastAPI Docker image'ı vardı: [tiangolo/uvicorn-gunicorn-fastapi](https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker). Ancak artık kullanımdan kaldırıldı (deprecated). ⛔️ Muhtemelen bu base Docker image'ını (veya benzeri başka bir image'ı) kullanmamalısınız. @@ -600,7 +600,7 @@ Bir Container (Docker) Image'ınız olduktan sonra bunu deploy etmenin birkaç y ## `uv` ile Docker Image { #docker-image-with-uv } -Projenizi yüklemek ve yönetmek için uv kullanıyorsanız, onların uv Docker rehberini takip edebilirsiniz. +Projenizi yüklemek ve yönetmek için [uv](https://github.com/astral-sh/uv) kullanıyorsanız, onların [uv Docker rehberini](https://docs.astral.sh/uv/guides/integration/docker/) takip edebilirsiniz. ## Özet { #recap } diff --git a/docs/tr/docs/deployment/https.md b/docs/tr/docs/deployment/https.md index 41961d17c4..1b8f34e5c5 100644 --- a/docs/tr/docs/deployment/https.md +++ b/docs/tr/docs/deployment/https.md @@ -218,7 +218,7 @@ Bu, örneğin redirect’leri doğru şekilde yönetmek için faydalıdır. /// tip | İpucu -Bununla ilgili daha fazlasını [Bir Proxy Arkasında - Proxy Forwarded Headers'ı Etkinleştir](../advanced/behind-a-proxy.md#enable-proxy-forwarded-headers){.internal-link target=_blank} dokümantasyonunda öğrenebilirsiniz. +Bununla ilgili daha fazlasını [Bir Proxy Arkasında - Proxy Forwarded Headers'ı Etkinleştir](../advanced/behind-a-proxy.md#enable-proxy-forwarded-headers) dokümantasyonunda öğrenebilirsiniz. /// diff --git a/docs/tr/docs/how-to/custom-request-and-route.md b/docs/tr/docs/how-to/custom-request-and-route.md index 3f8a2133d5..1c17098ae7 100644 --- a/docs/tr/docs/how-to/custom-request-and-route.md +++ b/docs/tr/docs/how-to/custom-request-and-route.md @@ -32,7 +32,7 @@ Ayrıca, o özel request sınıfını kullanmak için bir `APIRoute` alt sınıf /// tip | İpucu -Bu, nasıl çalıştığını göstermek için hazırlanmış basit bir örnektir; Gzip desteğine ihtiyacınız varsa sağlanan [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank} bileşenini kullanabilirsiniz. +Bu, nasıl çalıştığını göstermek için hazırlanmış basit bir örnektir; Gzip desteğine ihtiyacınız varsa sağlanan [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware) bileşenini kullanabilirsiniz. /// @@ -82,7 +82,7 @@ Ancak `GzipRequest.body` içindeki değişikliklerimiz sayesinde, request body g /// tip | İpucu -Aynı problemi çözmek için, muhtemelen `RequestValidationError` için özel bir handler içinde `body` kullanmak çok daha kolaydır ([Hataları Ele Alma](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}). +Aynı problemi çözmek için, muhtemelen `RequestValidationError` için özel bir handler içinde `body` kullanmak çok daha kolaydır ([Hataları Ele Alma](../tutorial/handling-errors.md#use-the-requestvalidationerror-body)). Yine de bu örnek geçerlidir ve dahili bileşenlerle nasıl etkileşime geçileceğini gösterir. diff --git a/docs/tr/docs/index.md b/docs/tr/docs/index.md index a6ad2e97f6..d2b24002f8 100644 --- a/docs/tr/docs/index.md +++ b/docs/tr/docs/index.md @@ -11,16 +11,16 @@ FastAPI framework, yüksek performanslı, öğrenmesi kolay, kodlaması hızlı, production'a hazır

- + Test - + Coverage - + Package version - + Supported Python versions

@@ -44,7 +44,7 @@ Temel özellikleri şunlardır: * **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. * **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 (önceden Swagger olarak biliniyordu) ve JSON Schema. +* **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/). * tahmin, production uygulamalar geliştiren dahili bir geliştirme ekibinin yaptığı testlere dayanmaktadır. @@ -55,16 +55,16 @@ Temel özellikleri şunlardır: ### Keystone Sponsor { #keystone-sponsor } {% for sponsor in sponsors.keystone -%} - + {% endfor -%} ### Gold and Silver Sponsors { #gold-and-silver-sponsors } {% for sponsor in sponsors.gold -%} - + {% endfor -%} {%- for sponsor in sponsors.silver -%} - + {% endfor %} @@ -75,31 +75,31 @@ Temel özellikleri şunlardır: "_[...] Bugünlerde **FastAPI**'ı çok fazla kullanıyorum. [...] Aslında bunu ekibimin **Microsoft'taki ML servislerinin** tamamında kullanmayı planlıyorum. Bunlardan bazıları ana **Windows** ürününe ve bazı **Office** ürünlerine entegre ediliyor._" -
Kabir Khan - Microsoft (ref)
+
Kabir Khan - Microsoft (ref)
--- "_**predictions** almak için sorgulanabilecek bir **REST** server oluşturmak amacıyla **FastAPI** kütüphanesini benimsedik. [Ludwig için]_" -
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
--- "_**Netflix**, **kriz yönetimi** orkestrasyon framework'ümüz: **Dispatch**'in open-source sürümünü duyurmaktan memnuniyet duyar! [**FastAPI** ile geliştirildi]_" -
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
+
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
--- "_**FastAPI** için ayın üzerindeymişcesine heyecanlıyım. Çok eğlenceli!_" -
Brian Okken - Python Bytes podcast host (ref)
+
Brian Okken - [Python Bytes](https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855) podcast host (ref)
--- "_Dürüst olmak gerekirse, inşa ettiğiniz şey gerçekten sağlam ve profesyonel görünüyor. Birçok açıdan, **Hug**'ın olmasını istediğim şey tam da bu - böyle bir şeyi inşa eden birini görmek gerçekten ilham verici._" -
Timothy Crosley - Hug yaratıcısı (ref)
+
Timothy Crosley - [Hug](https://github.com/hugapi/hug) yaratıcısı (ref)
--- @@ -107,27 +107,27 @@ Temel özellikleri şunlardır: "_**API**'larımız için **FastAPI**'a geçtik [...] Bence hoşunuza gidecek [...]_" -
Ines Montani - Matthew Honnibal - Explosion AI kurucuları - spaCy yaratıcıları (ref) - (ref)
+
Ines Montani - Matthew Honnibal - [Explosion AI](https://explosion.ai) kurucuları - [spaCy](https://spacy.io) yaratıcıları (ref) - (ref)
--- "_Production'da Python API geliştirmek isteyen herkese **FastAPI**'ı şiddetle tavsiye ederim. **Harika tasarlanmış**, **kullanımı kolay** ve **yüksek ölçeklenebilir**; API-first geliştirme stratejimizin **kilit bir bileşeni** haline geldi ve Virtual TAC Engineer gibi birçok otomasyon ve servise güç veriyor._" -
Deon Pillsbury - Cisco (ref)
+
Deon Pillsbury - Cisco (ref)
--- ## FastAPI mini belgeseli { #fastapi-mini-documentary } -2025'in sonunda yayınlanan bir FastAPI mini belgeseli var, online olarak izleyebilirsiniz: +2025'in sonunda yayınlanan bir [FastAPI mini belgeseli](https://www.youtube.com/watch?v=mpR8ngthqiE) var, online olarak izleyebilirsiniz: -FastAPI Mini Documentary +FastAPI Mini Documentary ## CLI'ların FastAPI'ı: **Typer** { #typer-the-fastapi-of-clis } - + -Web API yerine terminalde kullanılacak bir CLI uygulaması geliştiriyorsanız **Typer**'a göz atın. +Web API yerine terminalde kullanılacak bir CLI uygulaması geliştiriyorsanız [**Typer**](https://typer.tiangolo.com/)'a göz atın. **Typer**, FastAPI'ın küçük kardeşi. Ve hedefi CLI'ların **FastAPI'ı** olmak. ⌨️ 🚀 @@ -135,12 +135,12 @@ Web API yerine terminalde kullanılacak bir Starlette. -* Data kısımları için Pydantic. +* Web kısımları için [Starlette](https://www.starlette.dev/). +* Data kısımları için [Pydantic](https://docs.pydantic.dev/). ## Kurulum { #installation } -Bir virtual environment oluşturup etkinleştirelim ve ardından FastAPI'ı yükleyelim: +Bir [virtual environment](https://fastapi.tiangolo.com/tr/virtual-environments/) oluşturup etkinleştirelim ve ardından FastAPI'ı yükleyelim:
@@ -199,7 +199,7 @@ async def read_item(item_id: int, q: str | None = None): **Not**: -Eğer bilmiyorsanız, dokümanlardaki `async` ve `await` hakkında _"Aceleniz mi var?"_ bölümüne bakın. +Eğer bilmiyorsanız, dokümanlardaki [`async` ve `await`](https://fastapi.tiangolo.com/tr/async/#in-a-hurry) hakkında _"Aceleniz mi var?"_ bölümüne bakın. @@ -237,17 +237,17 @@ INFO: Application startup complete.
fastapi dev komutu hakkında... -`fastapi dev` komutu, `main.py` dosyanızı okur, içindeki **FastAPI** uygulamasını algılar ve Uvicorn kullanarak bir server başlatır. +`fastapi dev` komutu, `main.py` dosyanızı okur, içindeki **FastAPI** uygulamasını algılar ve [Uvicorn](https://www.uvicorn.dev) kullanarak bir server başlatır. Varsayılan olarak `fastapi dev`, local geliştirme için auto-reload etkin şekilde başlar. -Daha fazla bilgi için FastAPI CLI dokümantasyonu'nu okuyabilirsiniz. +Daha fazla bilgi için [FastAPI CLI dokümantasyonu](https://fastapi.tiangolo.com/tr/fastapi-cli/)'nu okuyabilirsiniz.
### Kontrol Edelim { #check-it } -Tarayıcınızda şu bağlantıyı açın: http://127.0.0.1:8000/items/5?q=somequery. +Tarayıcınızda şu bağlantıyı açın: [http://127.0.0.1:8000/items/5?q=somequery](http://127.0.0.1:8000/items/5?q=somequery). Şu JSON response'unu göreceksiniz: @@ -264,17 +264,17 @@ Artık şunları yapan bir API oluşturdunuz: ### Etkileşimli API dokümantasyonu { #interactive-api-docs } -Şimdi http://127.0.0.1:8000/docs adresine gidin. +Şimdi [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) adresine gidin. -Otomatik etkileşimli API dokümantasyonunu göreceksiniz (Swagger UI tarafından sağlanır): +Otomatik etkileşimli API dokümantasyonunu göreceksiniz ([Swagger UI](https://github.com/swagger-api/swagger-ui) tarafından sağlanır): ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) ### Alternatif API dokümantasyonu { #alternative-api-docs } -Ve şimdi http://127.0.0.1:8000/redoc adresine gidin. +Ve şimdi [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) adresine gidin. -Alternatif otomatik dokümantasyonu göreceksiniz (ReDoc tarafından sağlanır): +Alternatif otomatik dokümantasyonu göreceksiniz ([ReDoc](https://github.com/Rebilly/ReDoc) tarafından sağlanır): ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) @@ -316,7 +316,7 @@ def update_item(item_id: int, item: Item): ### Etkileşimli API dokümantasyonu güncellemesi { #interactive-api-docs-upgrade } -Şimdi http://127.0.0.1:8000/docs adresine gidin. +Şimdi [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) adresine gidin. * Etkileşimli API dokümantasyonu, yeni body dahil olacak şekilde otomatik olarak güncellenecek: @@ -332,7 +332,7 @@ def update_item(item_id: int, item: Item): ### Alternatif API dokümantasyonu güncellemesi { #alternative-api-docs-upgrade } -Ve şimdi http://127.0.0.1:8000/redoc adresine gidin. +Ve şimdi [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) adresine gidin. * Alternatif dokümantasyon da yeni query parameter ve body'yi yansıtacak: @@ -442,7 +442,7 @@ Daha fazla özellik içeren daha kapsamlı bir örnek için Bağımlılık Enjeksiyonu** sistemi. * **JWT tokens** ve **HTTP Basic** auth ile **OAuth2** desteği dahil güvenlik ve kimlik doğrulama. * **Çok derin iç içe JSON modelleri** tanımlamak için daha ileri (ama aynı derecede kolay) teknikler (Pydantic sayesinde). -* Strawberry ve diğer kütüphaneler ile **GraphQL** entegrasyonu. +* [Strawberry](https://strawberry.rocks) ve diğer kütüphaneler ile **GraphQL** entegrasyonu. * Starlette sayesinde gelen birçok ek özellik: * **WebSockets** * HTTPX ve `pytest` tabanlı aşırı kolay testler @@ -452,7 +452,7 @@ Daha fazla özellik içeren daha kapsamlı bir örnek için FastAPI Cloud'a deploy edebilirsiniz; eğer henüz yapmadıysanız gidip bekleme listesine katılın. 🚀 +İsterseniz FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a deploy edebilirsiniz; eğer henüz yapmadıysanız gidip bekleme listesine katılın. 🚀 Zaten bir **FastAPI Cloud** hesabınız varsa (bekleme listesinden sizi davet ettiysek 😉), uygulamanızı tek bir komutla deploy edebilirsiniz. @@ -474,7 +474,7 @@ Hepsi bu! Artık uygulamanıza bu URL'den erişebilirsiniz. ✨ #### FastAPI Cloud hakkında { #about-fastapi-cloud } -**FastAPI Cloud**, **FastAPI**'ın arkasındaki aynı yazar ve ekip tarafından geliştirilmiştir. +**[FastAPI Cloud](https://fastapicloud.com)**, **FastAPI**'ın arkasındaki aynı yazar ve ekip tarafından geliştirilmiştir. **Bir API'ı build etmek**, **deploy etmek** ve **erişmek** süreçlerini minimum eforla kolaylaştırır. @@ -490,9 +490,9 @@ FastAPI uygulamalarını onlarla deploy etmek için cloud sağlayıcınızın re ## Performans { #performance } -Bağımsız TechEmpower kıyaslamaları, Uvicorn altında çalışan **FastAPI** uygulamalarının mevcut en hızlı Python framework'lerinden biri olduğunu gösteriyor; sadece Starlette ve Uvicorn'un kendisinin gerisinde (FastAPI tarafından dahili olarak kullanılır). (*) +Bağımsız TechEmpower kıyaslamaları, Uvicorn altında çalışan **FastAPI** uygulamalarının [mevcut en hızlı Python framework'lerinden biri](https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7) olduğunu gösteriyor; sadece Starlette ve Uvicorn'un kendisinin gerisinde (FastAPI tarafından dahili olarak kullanılır). (*) -Daha iyi anlamak için Kıyaslamalar bölümüne bakın. +Daha iyi anlamak için [Kıyaslamalar](https://fastapi.tiangolo.com/tr/benchmarks/) bölümüne bakın. ## Bağımlılıklar { #dependencies } @@ -504,19 +504,19 @@ FastAPI'ı `pip install "fastapi[standard]"` ile yüklediğinizde, opsiyonel ba Pydantic tarafından kullanılanlar: -* email-validator - email doğrulaması için. +* [`email-validator`](https://github.com/JoshData/python-email-validator) - email doğrulaması için. Starlette tarafından kullanılanlar: -* httpx - `TestClient` kullanmak istiyorsanız gereklidir. -* jinja2 - varsayılan template yapılandırmasını kullanmak istiyorsanız gereklidir. -* python-multipart - `request.form()` ile, form "ayrıştırma" desteği istiyorsanız gereklidir. +* [`httpx`](https://www.python-httpx.org) - `TestClient` kullanmak istiyorsanız gereklidir. +* [`jinja2`](https://jinja.palletsprojects.com) - varsayılan template yapılandırmasını kullanmak istiyorsanız gereklidir. +* [`python-multipart`](https://github.com/Kludex/python-multipart) - `request.form()` ile, form "ayrıştırma" desteği istiyorsanız gereklidir. FastAPI tarafından kullanılanlar: -* uvicorn - uygulamanızı yükleyen ve servis eden server için. Buna, yüksek performanslı servis için gereken bazı bağımlılıkları (örn. `uvloop`) içeren `uvicorn[standard]` dahildir. +* [`uvicorn`](https://www.uvicorn.dev) - uygulamanızı yükleyen ve servis eden server için. Buna, yüksek performanslı servis için gereken bazı bağımlılıkları (örn. `uvloop`) içeren `uvicorn[standard]` dahildir. * `fastapi-cli[standard]` - `fastapi` komutunu sağlamak için. - * Buna, FastAPI uygulamanızı FastAPI Cloud'a deploy etmenizi sağlayan `fastapi-cloud-cli` dahildir. + * Buna, FastAPI uygulamanızı [FastAPI Cloud](https://fastapicloud.com)'a deploy etmenizi sağlayan `fastapi-cloud-cli` dahildir. ### `standard` Bağımlılıkları Olmadan { #without-standard-dependencies } @@ -532,13 +532,13 @@ Yüklemek isteyebileceğiniz bazı ek bağımlılıklar da vardır. Ek opsiyonel Pydantic bağımlılıkları: -* pydantic-settings - ayar yönetimi için. -* pydantic-extra-types - Pydantic ile kullanılacak ek type'lar için. +* [`pydantic-settings`](https://docs.pydantic.dev/latest/usage/pydantic_settings/) - ayar yönetimi için. +* [`pydantic-extra-types`](https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/) - Pydantic ile kullanılacak ek type'lar için. Ek opsiyonel FastAPI bağımlılıkları: -* orjson - `ORJSONResponse` kullanmak istiyorsanız gereklidir. -* ujson - `UJSONResponse` kullanmak istiyorsanız gereklidir. +* [`orjson`](https://github.com/ijl/orjson) - `ORJSONResponse` kullanmak istiyorsanız gereklidir. +* [`ujson`](https://github.com/esnme/ultrajson) - `UJSONResponse` kullanmak istiyorsanız gereklidir. ## Lisans { #license } diff --git a/docs/tr/docs/tutorial/handling-errors.md b/docs/tr/docs/tutorial/handling-errors.md index 347b514afc..b90e186a6a 100644 --- a/docs/tr/docs/tutorial/handling-errors.md +++ b/docs/tr/docs/tutorial/handling-errors.md @@ -81,7 +81,7 @@ Ama ileri seviye bir senaryo için ihtiyaç duyarsanız, özel header’lar ekle ## Özel Exception Handler’ları Kurmak { #install-custom-exception-handlers } -Starlette’in aynı exception yardımcı araçlarıyla özel exception handler’lar ekleyebilirsiniz. +[Starlette’in aynı exception yardımcı araçlarıyla](https://www.starlette.dev/exceptions/) özel exception handler’lar ekleyebilirsiniz. Diyelim ki sizin (ya da kullandığınız bir kütüphanenin) `raise` edebileceği `UnicornException` adında özel bir exception’ınız var. diff --git a/docs/tr/docs/tutorial/metadata.md b/docs/tr/docs/tutorial/metadata.md index 0414c7475d..a8d44570f7 100644 --- a/docs/tr/docs/tutorial/metadata.md +++ b/docs/tr/docs/tutorial/metadata.md @@ -14,7 +14,7 @@ OpenAPI spesifikasyonunda ve otomatik API doküman arayüzlerinde kullanılan ş | `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`. | | `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.
contact alanları
ParametreTipAçıklama
namestrİletişim kişisi/kuruluşunu tanımlayan ad.
urlstrİletişim bilgilerine işaret eden URL. URL formatında OLMALIDIR.
emailstrİletişim kişisi/kuruluşunun e-posta adresi. E-posta adresi formatında OLMALIDIR.
| -| `license_info` | `dict` | Yayınlanan API için lisans bilgileri. Birden fazla alan içerebilir.
license_info alanları
ParametreTipAçıklama
namestrZORUNLU (license_info ayarlanmışsa). API için kullanılan lisans adı.
identifierstrAPI için bir SPDX lisans ifadesi. identifier alanı, url alanıyla karşılıklı olarak dışlayıcıdır (ikisi aynı anda kullanılamaz). OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.
urlstrAPI için kullanılan lisansa ait URL. URL formatında OLMALIDIR.
| +| `license_info` | `dict` | Yayınlanan API için lisans bilgileri. Birden fazla alan içerebilir.
license_info alanları
ParametreTipAçıklama
namestrZORUNLU (license_info ayarlanmışsa). API için kullanılan lisans adı.
identifierstrAPI için bir [SPDX](https://spdx.org/licenses/) lisans ifadesi. identifier alanı, url alanıyla karşılıklı olarak dışlayıcıdır (ikisi aynı anda kullanılamaz). OpenAPI 3.1.0, FastAPI 0.99.0 sürümünden itibaren mevcut.
urlstrAPI için kullanılan lisansa ait URL. URL formatında OLMALIDIR.
| Şu şekilde ayarlayabilirsiniz: @@ -76,7 +76,7 @@ Kullandığınız tüm tag'ler için metadata eklemek zorunda değilsiniz. /// info | Bilgi -Tag'ler hakkında daha fazlası için: [Path Operation Configuration](path-operation-configuration.md#tags){.internal-link target=_blank}. +Tag'ler hakkında daha fazlası için: [Path Operation Configuration](path-operation-configuration.md#tags). ///