
Günümüz dijital dünyasında web siteleri, mobil uygulamalar ve bulut servisleri birbirleriyle sürekli iletişim halindedir. Peki, farklı platformlar ve teknolojiler kullanarak geliştirilmiş bu sistemlerin birbiriyle sorunsuz bir şekilde konuşmasını sağlayan mekanizma tam olarak nedir? İşte bu noktada rest api nedir sorusu modern yazılım mimarisinin en temel başlıklarından biri olarak karşımıza çıkar. REST API (Representational State Transfer Application Programming Interface), istemci ile sunucu arasındaki veri alışverişini standart bir düzene sokan, hafif, esnek ve ölçeklenebilir bir mimari tarzıdır. Bu rehberde, REST API kavramının ne olduğunu, nasıl çalıştığını, mimari prensiplerini, kullanılan HTTP metotlarını ve durum kodlarını en ince ayrıntısına kadar inceleyeceğiz.
REST API (Representational State Transfer) Nedir?
REST API (Representational State Transfer – Temsili Durum Transferi), web servisleri tasarlamak için kullanılan mimari bir stildir. REST’in en önemli özelliği bir protokol (protocol) olmaması, bunun yerine sistemlerin haberleşmesini düzenleyen bir mimari ilkeler dizisi (architectural style) olmasıdır. Roy Fielding tarafından 2000 yılında doktora tezinde ortaya atılan bu kavram, internet üzerindeki veri transferini standardize etmeyi amaçlar.
REST mimarisini kullanan ve onun prensiplerine tam uyum sağlayan servisler “RESTful API” veya “RESTful Web Servisleri” olarak adlandırılır. Bir REST API, istemciden (örneğin bir web tarayıcısı veya mobil uygulama) aldığı HTTP isteklerini (requests) işler ve sunucudaki kaynakları (resources) uygun biçimde temsil ederek bir yanıt (response) olarak geri döner. Günümüzde bu yanıtlar çoğunlukla metin tabanlı, okunması kolay ve hafif bir format olan JSON (JavaScript Object Notation) ile iletilir.
API Kavramı ve Garson-Mutfak Analojisi
REST API’yi zihninizde somutlaştırmak için klasik ve oldukça etkili olan “Garson-Mutfak” analojisini kullanabiliriz. Bir restorana gittiğinizi hayal edin:
Siz (İstemci / Client): Yiyecek siparişi vermek isteyen müşterisiniz.
Mutfak (Sunucu / Server): Yemeklerin hazırlandığı, verilerin ve kaynakların bulunduğu arka plan sistemidir.
Garson (API): Sizinle mutfak arasındaki iletişimi sağlayan köprüdür.
Restoranda masaya oturduğunuzda doğrudan mutfağa girip yemeğinizi hazırlamazsınız. Menüden seçiminizi yapar ve siparişinizi garsona iletirsiniz. Garson siparişinizi alır, anlayabileceği standart bir dille mutfağa iletir. Mutfak yemeği hazırlar ve garson yemeği size geri getirir. İşte bir API tam olarak bu görevi üstlenir. İstemcinin talebini sunucuya taşır, işlenmesini sağlar ve sonucu istemciye geri getirir. Bu süreçte ön yüzü geliştiren bir Frontend Developer Nedir konusuna hakim yazılımcı, arka plandaki karmaşık veri tabanı sorgularıyla uğraşmadan yalnızca API aracılığıyla veriyi talep eder.
RESTful Mimarinin Temel Prensipleri ve Kuralları
Bir web servisinin “RESTful” olarak tanımlanabilmesi için belirli standartları ve kısıtlamaları yerine getirmesi gerekir. REST mimarisi toplamda 6 temel kısıtlamaya dayanır. Bunlardan en kritik olanları şunlardır:
Durumsuzluk (Statelessness)
REST mimarisinin en temel kuralı durumsuzluk yani “Stateless” olmasıdır. Durumsuzluk prensibine göre, istemciden sunucuya gönderilen her bir HTTP isteği tamamen bağımsızdır. Sunucu, istemcinin geçmişte yaptığı istekleri veya oturum durumunu hafızasında (session/state) saklamaz.
Her istek, sunucunun o isteği anlayabilmesi ve işleyebilmesi için gerekli tüm bilgileri (kimlik doğrulama bilgileri, parametreler, başlıklar) içermek zorundadır. Örneğin, bir kullanıcının sepetine ürün eklemesi istendiğinde, isteğin içerisinde kullanıcının kim olduğu (token) ve eklemek istediği ürün ID’si açıkça belirtilmelidir. Bu yaklaşım, sunucu üzerindeki yükü ciddi oranda azaltır ve uygulamanın kolayca ölçeklenmesini (scalability) sağlar.
İstemci-Sunucu (Client-Server) Ayrımı ve Önbelleklenebilirlik
REST mimarisi, kullanıcı arayüzü (Client) ile veri depolama ve işleme mantığını (Server) birbirinden kesin çizgilerle ayırır. Bu ayrımın sağladığı en büyük avantajlar:
Bağımsız Geliştirme: Kullanıcı arayüzü geliştiricileri (Frontend) ile veri tabanı ve iş mantığı geliştiren Backend Developer Nedir rolündeki uzmanlar birbirlerinden bağımsız olarak çalışabilirler.
Taşınabilirlik: Aynı REST API servisi, bir web sitesi, iOS uygulaması veya Android uygulaması tarafından ortaklaşa tüketilebilir.
Önbelleklenebilirlik (Cacheability): REST standartlarında, sunucudan dönen yanıtların önbelleğe alınıp alınamayacağı (cacheable) açıkça belirtilmelidir. HTTP başlıklarında (Cache-Control) belirtilen kurallar sayesinde istemciler, sık değişmeyen verileri (örneğin kategori listeleri) yerel hafızalarında saklayarak sunucuya tekrar tekrar istek atmazlar. Bu durum performans artışı ve bant genişliği tasarrufu sağlar.
En Çok Kullanılan REST API HTTP Metotları
REST mimarisinde her bir kaynak bir URL (Uniform Resource Identifier) ile temsil edilir ve bu kaynaklar üzerinde işlem yapmak için standart HTTP metotları (verbs) kullanılır. HTTP metotları, yapılmak istenen işlemin amacını sunucuya bildirir.
GET, POST, PUT, PATCH ve DELETE Kullanım Senaryoları
GET: Sunucudan bir kaynağı Okumak (Read) için kullanılır. Veriler üzerinde herhangi bir değişiklik yapmaz, güvenli ve “idempotent” (aynı isteğin defalarca atılması durumunda sonucun değişmemesi) bir metottur.
POST: Sunucuda Yeni Bir Kaynak Oluşturmak (Create) için kullanılır. Gönderilen veri HTTP isteğinin gövdesinde (body) taşınır.
PUT: Var olan bir kaynağı Tamamen Güncellemek (Update) veya yoksa oluşturmak için kullanılır. Kaynağın tüm alanları gönderilen yeni verilerle değiştirilir.
PATCH: Var olan bir kaynağın Yalnızca Belirli Alanlarını Güncellemek (Partial Update) için kullanılır.
DELETE: Sunucudaki bir kaynağı Silmek (Delete) için kullanılır.
Aşağıdaki somut örnekte, bir e-ticaret sisteminde ürün verilerini yönetmek için kullanılan bir HTTP GET isteği ve sunucudan dönen JSON yanıtı yer almaktadır:
HTTP
GET /api/v1/products/123 HTTP/1.1
Host: api.eticaret.com
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Sunucudan dönen JSON yanıtı:
JSON
{
“status”: “success”,
“data”: {
“id”: 123,
“title”: “Kablosuz Kulaklık”,
“category”: “Elektronik”,
“price”: 1499.99,
“currency”: “TRY”,
“stock”: 45,
“created_at”: “2026-01-15T10:30:00Z”
}
}
REST API Yanıt Kodları (HTTP Status Codes) Nelerdir?
Bir REST API’ye istek gönderildiğinde, sunucu işlemin durumunu bildirmek için 3 haneli standart HTTP durum kodları yanıt verir. Bu kodlar istemcinin dönen yanıtı doğru şekilde işlemesini sağlar.
200, 201, 400, 401, 404 ve 500 Kodlarının Anlamları
HTTP durum kodları genel işlevlerine göre 5 ana gruba ayrılır. Aşağıdaki referans tablosunda en çok kullanılan yanıt kodlarını bulabilirsiniz:
| Kod Aralığı | Sınıfı | Kod | Anlamı ve Kullanım Senaryosu |
|---|---|---|---|
| 2xx | Başarılı (Success) | 200 OK | İstek başarılı bir şekilde işlendi ve veri döndü (Örn: GET). |
| 201 Created | Yeni bir kaynak başarıyla oluşturuldu (Örn: POST ile kayıt). | ||
| 204 No Content | İstek başarılı ama dönecek veri yok (Örn: DELETE sonrası). | ||
| 4xx | İstemci Hatası (Client Error) | 400 Bad Request | Geçersiz veya hatalı istek formatı (Eksik parametre vb.). |
| 401 Unauthorized | Kimlik doğrulama yapılmamış veya token geçersiz/eksik. | ||
| 403 Forbidden | Kimlik doğrulanmış ancak yetki yetersiz (Erişim engellendi). | ||
| 404 Not Found | İstenen kaynak veya URL sunucuda bulunamadı. | ||
| 5xx | Sunucu Hatası (Server Error) | 500 Internal Error | Sunucu tarafında beklenmeyen bir kod hatası veya çökme oluştu. |
| 503 Unavailable | Sunucu şu an aşırı yüklü veya bakımda. | ||
| ## REST API ile SOAP Arasındaki Farklar |
Web servisleri dünyasında en çok karşılaştırılan iki yaklaşım REST ve SOAP (Simple Object Access Protocol)’tır. İki teknoloji arasındaki temel farkları anlamak, proje gereksinimlerinize doğru aracı seçmenize yardımcı olur:
Mimari vs Protokol: REST bir mimari stil iken, SOAP katı kuralları ve standartları olan bir protokoldür.
Veri Formatı: REST; JSON, XML, HTML ve hatta düz metin gibi birden fazla formatı destekler ancak performansı nedeniyle çoğunlukla JSON tercih eder. SOAP ise yalnızca XML formatını destekler.
Esneklik ve Hız: REST hafif yapısı ve esnekliği sayesinde yüksek performans sağlar ve mobil cihazlar için idealdir. SOAP ise yüksek güvenlik (WS-Security) ve ACID işlem garantisi sunduğu için genellikle bankacılık ve kurumsal finans sistemlerinde tercih edilir.
Bant Genişliği: SOAP istekleri büyük XML başlıkları taşıdığı için daha çok bant genişliği tüketirken, REST JSON yapısıyla hafif ve hızlıdır.
Projelerinizde hem veritabanını ve servis yapısını tasarlayıp hem de ön yüzde kullanıcıya sunan bir Full Stack Developer Nedir sorusunun yanıtı niteliğindeki uzmanlar, genellikle geliştirme hızı ve hafifliği sebebiyle RESTful mimariyi öncelikli olarak tercih ederler.
Sıkça Sorulan Sorular (SSS)
REST API ile RESTful API aynı şey midir?
REST, sistemler arasındaki iletişimi düzenleyen mimari prensipler bütünüdür. RESTful API ise bu mimari ilkeleri ve kısıtlamaları (statelessness, client-server ayrımı vb.) tam olarak uygulayan ve hayata geçiren web servislerine verilen isimdir. Yani REST kavramın teorisi, RESTful ise bu teorinin pratiğe dökülmüş halidir.
REST API yanıtlarında neden genellikle JSON kullanılır?
JSON (JavaScript Object Notation), hafif yapısı, insan tarafından kolayca okunabilir olması ve neredeyse tüm modern programlama dilleri tarafından yerel olarak desteklenmesi nedeniyle standart hale gelmiştir. XML’e kıyasla daha az karakter içerdiğinden bant genişliğini verimli kullanır ve veri ayrıştırma (parsing) hızı çok daha yüksektir.
Bir REST API güvenliği nasıl sağlanır (Bearer Token, API Key)?
REST API güvenliği genellikle standart protokoller ve şifreleme yöntemleriyle sağlanır. İletişim öncelikle HTTPS (SSL/TLS) üzerinden şifrelenir. Kullanıcı kimlik doğrulaması için istek başlıklarında (Headers) taşınan API Key’ler veya OAuth 2.0 standartlarına dayalı JWT (JSON Web Token) içeren Bearer Token yapısı kullanılır. Ayrıca IP kısıtlaması ve Rate Limiting (istek sınırlama) yöntemleriyle API koruma altına alınır.
REST API test etmek için hangi araçlar kullanılır (Postman vb.)?
REST API’leri geliştirmek, test etmek ve belgelemek için en popüler araç Postman’dir. Ayrıca Swagger (OpenAPI), Insomnia, Bruno, cURL komut satırı aracı ve Paw gibi yazılımlar da HTTP istekleri oluşturmak, parametreleri kontrol etmek ve sunucu yanıtlarını detaylıca incelemek amacıyla yaygın şekilde kullanılmaktadır.
Upnext ile Bir Sonraki Adım
Modern web mimarilerini ve API entegrasyonlarını öğrenerek yazılım projelerinizi güçlendirmek için Upnext kaynaklarını takip edin.