REST API Nedir?

İngilizce: REST API

REST API, HTTP yöntemleriyle kaynakları okuma ve değiştirme üzerine kurulu, entegrasyonlarda yaygın kullanılan web servis tasarımıdır.

REST API Nedir?

REST API, bir sistemdeki verileri “kaynak” olarak modelleyen ve bu kaynaklara HTTP üzerinden erişim sağlayan API tasarım yaklaşımıdır. Örneğin /customers/42 adresi tek bir müşteriyi, /orders adresi sipariş koleksiyonunu temsil edebilir.

REST yaklaşımında HTTP yöntemleri anlam taşır: GET veri okur, POST yeni kayıt oluşturur, PUT veya PATCH günceller, DELETE siler. Yanıtlar çoğunlukla JSON formatındadır ve durum 200, 201, 400, 401, 404 gibi HTTP status kodlarıyla ifade edilir.

REST API Tasarımında Temel Noktalar

  • Stateless yapı: Sunucu her isteği bağımsız değerlendirebilmelidir.
  • Tutarlı kaynak isimleri: URL’ler fiil değil kaynak odaklı tasarlanmalıdır.
  • Versiyonlama: Büyük kırılmalar için /v1 gibi stratejiler belirlenmelidir.
  • Sayfalama ve filtreleme: Büyük listeler kontrollü parçalara ayrılmalıdır.
  • Hata modeli: API tüketicisi hatayı makine tarafından okunabilir biçimde anlayabilmelidir.

İş Dünyasında Kullanımı

REST API; mobil uygulamaların backend’e bağlanması, e-ticaret sistemlerinin kargo ve ödeme sağlayıcılarıyla konuşması, ERP/CRM entegrasyonları ve üçüncü parti servis bağlantıları için tercih edilir. Yaygın HTTP altyapısını kullandığı için izleme, test etme ve dokümante etme araçları güçlüdür.

REST her senaryo için en iyi seçenek değildir. İstemci çok esnek veri seçimi istiyorsa GraphQL, sistemler olay olduğunda birbirini tetiklemeli ise Webhook daha uygun olabilir. Daha geniş bağlam için API kavramı REST’i de kapsar.

Barlas Dijital’de REST API tasarımları genellikle API geliştirme ve entegrasyon projelerinin merkezinde yer alır.

API Gateway

API Gateway, istemciler ile servisler arasına girerek yönlendirme, kimlik doğrulama, kota, gözlemleme ve sürümleme görevlerini toplar.

API Hata Yönetimi

API hata yönetimi, başarısız istekleri doğru HTTP kodu, makine okunur hata alanları ve geliştiriciye yararlı mesajlarla döndürür.

API

API, farklı yazılımların izin verilen veri ve işlemlere standart istekler üzerinden erişmesini sağlayan sözleşmeli arayüzdür.

API Versiyonlama

API versiyonlama, istemcileri bozmadan yeni alan, kural ve endpoint değişikliklerini yönetmek için sürüm stratejisi belirler.

BFF (Backend for Frontend)

BFF, web ve mobil gibi farklı arayüzler için ayrı backend katmanı kurarak API yanıtlarını istemciye göre şekillendirir.

Content Negotiation

Content negotiation, HTTP istemcisinin Accept başlıklarıyla istediği formatı bildirdiği, sunucunun uygun temsil seçtiği mekanizmadır.

CORS

CORS, tarayıcının farklı originlerden gelen API isteklerini hangi alan adlarının okuyabileceğini HTTP başlıklarıyla denetler.

GraphQL

GraphQL, istemcinin ihtiyaç duyduğu alanları tek sorguda seçmesini sağlayan şema tabanlı API sorgu ve çalışma zamanıdır.

gRPC

gRPC, servisler arası hızlı ve tip güvenli iletişim için Protocol Buffers ve HTTP/2 kullanan RPC framework'üdür.

Pagination

Pagination, büyük veri setlerini yönetilebilir parçalara bölerek API yanıtlarında performanslı veri sunan tasarım modelidir.

Endpoint

REST endpoint, belirli bir kaynağa veya işleme HTTP metodu ve URL yolu üzerinden erişim sağlayan API giriş noktasıdır.

Webhook

Webhook, belirli bir olay olduğunda bir sistemin başka bir sisteme otomatik HTTP isteği göndermesini sağlayan bildirim yöntemidir.