REST API nedir?
REST (Representational State Transfer), Roy Fielding'in 2000 tarihli doktora tezinde tanımladığı, ağ üzerinden çalışan uygulamalar için bir mimari stildir. Teoride bu kısıtlar protokolden bağımsızdır; pratikte ise REST API, bir sistemi URL'lerle tanımlanan kaynaklar (resource) olarak modelleyen, bu kaynakları standart HTTP metotlarıyla işleyen ve genellikle JSON alışverişi yapan bir HTTP API'sidir.
REST Kısıtları
İstemci–Sunucu Ayrımı
İstemci sunum katmanını, sunucu ise veriyi ve iş mantığını üstlenir. Arayüz sabit kaldığı sürece iki taraf birbirinden bağımsız olarak evrilebilir ve ayrı ayrı deploy edilebilir.
Statelessness (Durumsuzluk)
Her istek, sunucunun onu işlemek için ihtiyaç duyduğu her şeyi taşır — kimlik doğrulama token'ı, kaynak tanımlayıcısı, parametreler. Sunucu istekler arasında istemciye özel oturum durumu tutmaz; load balancer arkasındaki herhangi bir instance'ın herhangi bir isteği karşılayabilmesini ve yatay ölçeklemenin bu kadar kolay olmasını sağlayan da tam olarak budur.
Cache'lenebilirlik
Yanıtlar, Cache-Control ve ETag gibi header'lar aracılığıyla cache'lenip cache'lenemeyeceklerini kendileri bildirir. Böylece tarayıcılar, CDN'ler ve gateway'ler tekrarlanan GET isteklerini origin'e hiç dokunmadan karşılayabilir — REST'in RPC tarzı API'lere karşı en somut pratik avantajlarından biri.
Uniform Interface (Tekdüzen Arayüz)
Kaynaklar URI'larla tanımlanır, temsiller (bugün için JSON) üzerinden işlenir ve semantiği standartlaştırılmış küçük bir metot kümesiyle erişilir: GET güvenli ve tekrarlanabilirdir, PUT ve DELETE idempotent'tır, POST ise ikisi de değildir. Genel amaçlı araçların — istemciler, proxy'ler, API gateway'ler — herhangi bir REST API'ye karşı çalışabilmesinin nedeni bu tekdüzenliktir. (Fielding'in kısıtının tam hali, yanıtlarda hypermedia linkleri, yani HATEOAS'ı da içerir; gerçek dünyadaki API'lerin çoğu bunu atlar.)
Katmanlı Sistem
Bir istemci, origin sunucusuyla mı yoksa aradaki bir load balancer, cache ya da gateway ile mi konuştuğunu ayırt edemez. Bu da istemcileri değiştirmeden araya katman eklemenizi — TLS sonlandırma, rate limiting, cache'leme — mümkün kılar ve sistemi modüler ve bakımı kolay tutar.
CRUD İşlemleri
REST API'ler CRUD işlemlerini (Create, Read, Update, Delete) tipik olarak HTTP metotlarına eşler. Bir kitapçı uygulaması için:
- Create: yeni bir kitap eklemek için
POST /books - Read: belirli bir kitabı görüntülemek için
GET /books/42 - Update: tamamen değiştirmek için
PUT /books/42, alanları güncellemek içinPATCH /books/42 - Delete: silmek için
DELETE /books/42
Sık Kullanılan Durum Kodları
| Kod | Anlamı | Açıklama |
|---|---|---|
| 200 | OK | İstek başarıyla işlendi |
| 201 | Created | Kaynak başarıyla oluşturuldu |
| 204 | No Content | Yanıt gövdesi olmadan başarı; tipik olarak DELETE sonrasında |
| 400 | Bad Request | İstek hatalı biçimlendirilmiş ya da doğrulamadan geçememiş |
| 401 | Unauthorized | Kimlik doğrulama eksik veya geçersiz |
| 403 | Forbidden | Kimlik doğrulanmış, ancak kaynağa erişim izni yok |
| 404 | Not Found | İstenen kaynak bulunamadı |
| 429 | Too Many Requests | İstemci bir rate limit'i aştı |
| 500 | Internal Server Error | Sunucuda beklenmeyen bir hata oluştu |
REST vs GraphQL vs gRPC
REST, herkese açık ve kaynak odaklı API'ler için varsayılan tercihtir: cache'lenebilir, curl ile debug edilebilir ve her gateway ve araç tarafından desteklenir. GraphQL, farklı türde istemcilerin tek bir round trip'te birçok kaynağı bir araya getiren esnek sorgulara ihtiyaç duyduğu durumlara uyar — mobil uygulamalar ve backend-for-frontend katmanları için tipiktir — bedeli ise HTTP cache semantiğini kaybetmektir. gRPC, iç servisler arası çağrılarda öne çıkar: binary Protocol Buffers, streaming ve contract-first kod üretimi. Bunlar rakip değil, birbirini tamamlayan yaklaşımlardır; 2026'nın yaygın kurulumu, dış dünyaya açılan uçta REST, servisler arasında gRPC şeklindedir.
Hangi stili dışa açarsanız açın, uçtaki (edge) dertler aynıdır — kimlik doğrulama, TLS, rate limiting, girdi doğrulama. API güvenliği rehberimiz bu kontrol listesini derinlemesine ele alıyor; production API platformları tasarlamak ve işletmek ise DevOps mühendislik ekibimizin ana işlerinden biridir.
Bunu production'da mı çalıştırıyorsunuz? AWS Yönetilen Hizmetler ekibimiz bu tür ortamları 7/24 işletir — izleme, olay müdahalesi, yamalama ve maliyet kontrolü, ismen bildiğiniz kıdemli mühendisler tarafından, aylık 3.000 €'dan başlayan fiyatlarla.