API gateway
- Node.js kursu
- İleri seviye
- Ders 51/83
- 5 dk
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
// 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
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?
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
app.use("/api/users", ____);
app.use("/api/users", userRouter);
Açıklama: userRouter ile routing yapılır.