# REST API (Representational State Transfer API)

Adres: https://softwaredictionary.org/tr/terimler/rest-api
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-29

Kısaca: REST API, verileri URL'lerle tanımlanan kaynaklar olarak sunan ve istemcilerin onları standart HTTP metotlarıyla okuyup değiştirmesini sağlayan web API'sidir.

## REST API nedir?

REST API, bir uygulamanın verilerini kullanıcılar, siparişler ya da ürünler gibi kaynaklar halinde düzenler ve her birine kendi URL'sini verir. İstemciler bu kaynaklarla HTTP istekleri göndererek çalışır; sunucu ise genellikle `JSON` biçiminde veriyle yanıt verir. REST, Roy Fielding'in 2000 yılında tanımladığı bir mimari stil olan Representational State Transfer'in kısaltmasıdır.

HTTP metodu sunucuya ne yapılacağını söyler: `GET` bir kaynağı okur, `POST` yeni bir tane oluşturur, `PUT` veya `PATCH` günceller, `DELETE` ise siler. Yanıttaki `200 OK`, `201 Created` ya da `404 Not Found` gibi durum kodları sonucu bildirir. Her istek durumsuzdur (stateless); yani sunucunun ihtiyaç duyduğu her şeyi, örneğin bir kimlik doğrulama token'ını, kendisi taşır. Böylece sunucunun önceki istekleri hatırlaması gerekmez.

REST API'yi bir kütüphane kataloğuna benzetebilirsiniz: her kitabın sabit bir raf adresi vardır ve küçük bir standart eylem kümesi (arama, ekleme, güncelleme, kaldırma) her kitap için aynı şekilde çalışır. Bu öngörülebilirlik, REST'i herkese açık web API'leri ile bir frontend'in backend'iyle iletişimi için en yaygın stil haline getirir.

REST çoğu zaman GraphQL ile karşılaştırılır. REST API'nin her biri sabit biçimde veri döndüren birçok endpoint'i vardır; GraphQL API'sinde ise genellikle tek bir endpoint bulunur ve istemci hangi alanları istediğini tam olarak belirtir. REST'i önbelleğe almak ve anlamak daha kolaydır; GraphQL ise karmaşık, iç içe verilerde istek sayısını azaltabilir.

## Önemli noktalar

- REST bir mimari stildir; protokol ya da resmi bir standart değildir.
- Kaynaklar `/users/42` gibi URL'lerle tanımlanır.
- HTTP metotları (`GET`, `POST`, `PUT`, `PATCH`, `DELETE`) eylemi belirtir.
- İstekler durumsuzdur: her biri sunucunun ihtiyaç duyduğu tüm bilgiyi taşır.
- Yanıtlar genellikle JSON ve bir HTTP durum kodu içerir.

## Örnek: curl ile bir REST API'yi çağırmak

```bash
# Read a list of users
curl https://api.example.com/users

# Read one user by ID
curl https://api.example.com/users/42

# Create a new user by sending JSON
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Ada"}'

# Delete a user
curl -X DELETE https://api.example.com/users/42
```

## Sık sorulan sorular

**REST ile RESTful arasındaki fark nedir?**

Pratikte aynı anlama gelirler. REST mimari stildir; RESTful olarak tanımlanan bir API ise kaynak URL'leri, standart HTTP metotları ve durumsuz istekler gibi ilkelerini izleyen API'dir.

**REST API ile GraphQL arasındaki fark nedir?**

REST API, her biri sabit biçimde veri döndüren birçok endpoint sunar; GraphQL ise genellikle tek bir endpoint sunar ve istemci tam olarak ihtiyaç duyduğu alanları ister. REST daha basittir ve önbelleğe alması daha kolaydır; GraphQL karmaşık, iç içe veriler için daha esnektir.

**PUT ile PATCH arasındaki fark nedir?**

`PUT` tüm kaynağı gönderdiğiniz veriyle değiştirirken `PATCH` yalnızca eklediğiniz alanları günceller. Birçok API kısmi güncellemeler için `PATCH`, tam değiştirme için `PUT` kullanır.

## Kaynaklar

- [Roy Fielding: Representational State Transfer (REST), Chapter 5 of his dissertation](https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
