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
/v1gibi 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.
İlgili Terimler
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önetimiAPI 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.
APIAPI, 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 VersiyonlamaAPI 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 NegotiationContent negotiation, HTTP istemcisinin Accept başlıklarıyla istediği formatı bildirdiği, sunucunun uygun temsil seçtiği mekanizmadır.
CORSCORS, tarayıcının farklı originlerden gelen API isteklerini hangi alan adlarının okuyabileceğini HTTP başlıklarıyla denetler.
GraphQLGraphQL, istemcinin ihtiyaç duyduğu alanları tek sorguda seçmesini sağlayan şema tabanlı API sorgu ve çalışma zamanıdır.
gRPCgRPC, servisler arası hızlı ve tip güvenli iletişim için Protocol Buffers ve HTTP/2 kullanan RPC framework'üdür.
PaginationPagination, büyük veri setlerini yönetilebilir parçalara bölerek API yanıtlarında performanslı veri sunan tasarım modelidir.
EndpointREST endpoint, belirli bir kaynağa veya işleme HTTP metodu ve URL yolu üzerinden erişim sağlayan API giriş noktasıdır.
WebhookWebhook, belirli bir olay olduğunda bir sistemin başka bir sisteme otomatik HTTP isteği göndermesini sağlayan bildirim yöntemidir.