API Gateway nedir?

Bu yazıda sağda solda bolca duymaya başladığımız API Gateway’lerin ne olduğunu inceliyoruz.


API Gateway nedir?

API Gateway, istemcilerle backend sunucuları / mikro servisler arasında duran bir API yönetim aracıdır.

API Gateway API isteklerini alarak çeşitli kurallara göre uygun servislere yönlendiren bir ters vekil sunucusu (reverse proxy) olarak çalışır. API Gateway istek sınırlandırma, istatistik, kimlik doğrulama vs. çeşitli sık kullanılan işlevleri üzerine alarak asıl API sunucularınızın önünde bir üst katman oluşturur.

API gateway’ler istemcilerden gelen API çağrılarını alıp, kendi üzerinde veya arkadaki mikro servis mimarisi içinde çeşitli filtreler ve/veya işlemlerden geçirip son olarak da doğru endpointlere ulaşmasını sağlar.

Neden bir API Gateway kullanmalıyım?

Büyük ölçekli bir API servisi sağlayacaksanız aşağıdakilere ihtiyacınız olacaktır

  • API’nizi kötü niyetli ve olağan dışı kullanımlara karşı korumanız gerekir. Bunun için kimlik doğrulama, istek sınırlandırma vb. yöntemler kullanırsınız. Bunu her servis için ayrı ayrı oluşturmak yerine, isteğin ilk geldiği noktada tek seferde çözmeniz daha kolay ve yönetilir olur.
    Örneğin ürünlerin stok miktarlarını çeken ve farklı istemciler tarafından kullanılan bir mikroservisiniz varsa bu ana işlevi dışında işlerden haberdar olmasına gerek yoktur. Bırakın Rate Limiti en öne koyduğunuz API Gatewayiniz halletsin.
  • İnsanların API’nizi nasıl kullandığını görmek ve ölçmek ister, bunun için analitik ve izleme araçları kullanırsınız.
    Örneğin Yukarıdakine benzer şekilde en öndeki gateway katmanımız bu işlevi yerine getirebilir, diğer servislerin bu konudan haberi olmasına gerek yoktur.
  • Ücretli bir API’niz varsa bir ücretlendirme servisine bağlamak istersiniz. Örn. Google’ın ücretli bir API noktasını kullandığınızda (diyelim ki hartialar) asıl işlevi gerçekleştiren API doğrudan hesabınızdan kredi düşüşü gerçekleştirmiyor.
  • Zamanla yeni API servisleri eklemeniz, mevcutları belirli bir süre sonunda kaldırmanız veya farklı katmanlarda çalıştırmanız gerekebilir. Örn. Hangi yolun cevabının hangi sunucudan verileceğinin kararını API Gateway’e bırakabilirsiniz. V1 API’sini başka backend sunucuya, V2 API’sini başka bir backend sunucuya yönlendirebilirsiniz.
  • Yanıtları belirli kurallara göre önbelleklemeniz gerekebilir. Cachelemeyi ayrı bir katmanda çalıştırarak sonuçları backend sunucuya hiç istek yapmadan doğrudan cache’den sunabilirsiniz.

Bütün bunları ana mimarinize dahil etmek yerine bu fonkisiyonları yönetmek için tasarlanmış ayrı bir katman kullanmak daha kolay ve yönetilebilir olacaktır. İşte bunları yapan katmana API Gateway diyoruz. API Gateway olarak bulut sağlayıcıların sunduğu hizmetlerden faydalanabilir, açık kaynak kodlu çözümlerle kendi gatewayinizi kurabilir veya yukarıdaki işlevleri yapacak bir sistemi kendiniz kurabilirsiniz.

Bu yazıyı Redhat, What does an API gateway do? yazısındaki ana fikre biraz kendi yorum ve örneklerimi ekleyerek yazdım.

Başlık Fotoğrafı: by Science in HD on Unsplash

Bu Yazıda Yapılan Değişiklikler
  • 11.05.2022: Yazı özeti düzenlendi.

Bir soru, öneri ya da yorumunuz mu var?

  • Yorumlar1
Ertuğrul ASLAN dedi ki

Hocam emeğinize sağlık çok güzel bir yazı olmuş. Tesadüfen gördüm. Bizde yerli bir API Gateway geliştiren firma olduğumuz için dikkatimi çektim. İncelemek isterseniz. https://apinizer.com

Evren Bal

Ben Evren BAL

1996'dan beri ‘Internet canlısıyım!’

Evren Bal Hakkında daha fazla bilgi.

Tanışmak isterseniz hemen sosyal medyadan iletişime geçebilirsiniz.

Bana Ulaşın

Bana Ulaşın

  • Bir sorunuz mu var?
  • Yazıda bir hata mı farkettiniz?
  • Sayfa ile ilgili bir öneriniz mi var?
  • Yazmamı önereceğiniz bir konu mu var?

Lütfen iletişim formunu kullanarak veya sosyal medya hesaplarımdan bana ulaşın.

Digital Ocean Logo

VPS sunucusu denemek ister misiniz?

Digital Ocean'a referans bağlantımdan kayıt olarak yeni oluşturacağınız hesabınızı 60 gün geçerli 100$ kredi ile açabilirsiniz. Bu miktar yüksek performanslı VPS'leri bile denemeniz için yeterlidir.

Yapacağınız onca kurulumun boşa gitmemesi için benim tavsiyem uzun vadede kullanabileceğiniz özellik ve maliyetlerde bir sunucu oluşturmanızdır.

Ücretsiz 100$ kredi bağlantısı

60 günlük denemeniz sonunda eğer devam etmek istemezseniz hiç bir ücret ödemeyeceksiniz. Hizmeti kullanmaya devam etmek isterseniz harcamanız 25$'a ulaştığında benim hesabıma da 25$ kredi yüklenecektir.

Diğer bir deyişle, siz 100$ ücretsiz krediyi her halükarda kazanırken, daha sonra ücretli devam etmeye karar verirseniz ben de 25$ kredi kazanacağım.

Copyright © 2022 - Evren BAL