CodeBlanks Logo Icon CodeBlanks

API gateway

API gateway desenini öğrenirsin.

API gateway

Bir API gateway, istemci isteklerini alan ve uygun servislere yönlendiren tek giriş noktasıdır. İstemci yalnızca gateway'e bağlanır; gateway arkadaki servisleri çağırır. Bu, istemcilerin servis sayısını bilmemesini sağlar.

Örnek: istemci GET /api/users/1 isteğini gateway'e atar. Gateway bu isteği user-servisine yönlendirir. Gateway ayrıca kimlik doğrulama, hız sınırı (rate limit) ve yanıt birleştirme yapabilir. Avantajları: tek giriş noktası, ortak işlerin merkezi yapılması, istemci-servis ayrımı. Dezavantajları: ek bir ağ sıçraması, gateway'in yüksek erişilir olması gerekir. API gateway, mikrohizmet sistemlerinin neredeyse ayrılmaz bir parçasıdır.

Gateway ile routing

Gateway, URL yoluna göre istekleri servislere dağıtır. Örneğin /api/users/* user-servisine, /api/orders/* sipariş servisine gider. Express'te bunu app.use ile yaparsın.

Örnek: app.use("/api/users", userRouter); app.use("/api/orders", orderRouter);. /api/users ile başlayan tüm istekler userRouter'a gider. Gateway, her servis için bir router tutar. Router, isteği alıp ilgili servise iletir (genellikle fetch ile). Bu yapı, istemcinin yalnızca tek bir adrese (gateway) bağlanmasını sağlar. Servislerin konumu değiştiğinde yalnızca gateway'in routing tablosu güncellenir; istemci etkilenmez.

Uygulama API gateway iskeletini yaz

express modülünü içe aktar ve app oluştur. app.use("/api/users", (req, res) => res.json({ kaynak: "user-service" })) ile gateway routing tanımla. console.log ile "Gateway hazır" yaz.

Başlangıç kodu

index.js
// express içe aktar ve app oluştur
// buraya yaz

// "/api/users" yolunu user-service hedefine yönlendir
// buraya yaz

// "Gateway hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const express = require("express");
const app = express();
app.use("/api/users", (req, res) => res.json({ kaynak: "user-service" }));
console.log("Gateway hazır");

Beklenen çıktı

Gateway hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kavramı rolüne eşle

Kavram Anlamı
API gateway Tek giriş noktası
user-service Kullanıcı verisini tutar
rate limit İstek sayısını sınırlar
routing İsteği servise yönlendirir

2 Gateway hangi yolu user-servisine yönlendirir?

index.js
app.use("/api/users", userRouter)
  • /api/orders
  • /api/payments
  • /api/health
  • /api/users Doğru cevap

Açıklama: /api/users userRouter'a gider.

3 app.use çağrısını tamamla

Soru
app.use("/api/users", ____);
Cevap
app.use("/api/users", userRouter);

Açıklama: userRouter ile routing yapılır.

İleri seviye bölümündeki tüm dersler