Sitemap

API Gateway

3 min readApr 18, 2025

--

API Gateway (Uygulama Programlama Arayüzü Geçidi), mikroservis mimarilerinde kullanılan bir yönlendirici ve yönetim katmanıdır. Yazılım mimarisinin temel yapıtaşlarından biri olan bu çekirdek servis, tüm istemci isteklerini karşılayan, yönlendiren ve yük dengelemesi yapan giriş noktasıdır. Ayrıca istek doğrulama, hız sınırlama ve güvenlik kontrollerini de sağlar. Temel görevi, istemciler (örneğin frontend uygulamalar) ile arka plandaki mikroservisler arasında tek bir giriş noktası sunmaktır.

Press enter or click to view image in full size

Düşünün ki dev bir kitapçı işletiyorsunuz. İçeride farklı departmanlar var: kitap rafları, müşteri hizmetleri, kasa, kargo… Müşteri geldiğinde hepsiyle tek tek mi konuşur? Tabii ki hayır. Önce danışmaya gider, ne istediğini söyler, danışma da onu doğru yere yönlendirir. İşte API Gateway, yazılım dünyasındaki o danışmadır.

Uygulamanızda onlarca mikroservis olabilir: kullanıcı servisi, ödeme servisi, ürün servisi… Ama kullanıcı sadece /login, /books, /checkout gibi uç noktaları bilir. Onları arka plandaki karmaşaya bulaştırmazsınız. Çünkü arada bir kapı bekçisi vardır: API Gateway.

Bu kapı bekçisi sadece yönlendirme yapmakla kalmaz; kimlik kontrolü yapar, istekleri sınırlandırır, ne olup bittiğini kaydeder. Yani sadece yönlendirme değil, aynı zamanda güvenlik ve denetimden de sorumludur.

Peki API Gateway Ne İşe Yarar?

Tek Noktadan Erişim (Single Entry Point):
Kullanıcıdan gelen tüm API isteklerini alır ve ilgili mikroservise yönlendirir.

Yük Dengeleme (Load Balancing):
Gelen istekleri aynı servisin farklı örneklerine (instance) dağıtarak sistemin daha hızlı ve verimli çalışmasını sağlar.

Kimlik Doğrulama ve Yetkilendirme (Authentication & Authorization):
İsteklerin güvenliğini kontrol eder. JWT veya OAuth gibi sistemlerle entegre çalışır.

Rate Limiting:
Bir kullanıcı veya uygulama tarafından yapılabilecek istek sayısını sınırlar.

İzleme ve Kayıt (Logging & Monitoring):
Gelen istekleri loglar ve performans metriklerini tutar.

Get Bilana Altay’s stories in your inbox

Join Medium for free to get updates from this writer.

Yanıtları Birleştirme (Response Aggregation):
Farklı mikroservislerden gelen yanıtları birleştirip tek bir yanıt olarak dönebilir.

Senaryo: Basit Bir Online Kitapçı

Bir online kitapçı hayal edelim. Sisteminizde şu mikroservisler yer alıyor:

  • 📚 Book Service — /books: Kitap listesini döner.
  • 👤 User Service — /users: Kullanıcı bilgilerini döner.

API Gateway Nasıl Devreye Girer?

Kullanıcı tarayıcıdan /books ve /users bilgisi istiyor. Ama bu iki servis farklı sunucularda. Kullanıcı bunları bilmek zorunda kalmadan API Gateway üzerinden şu şekilde istek atar:

GET http://api.mybookstore.com/books
GET http://api.mybookstore.com/users

Yani API Gateway bir kapı görevi görür ve içeride ne olduğunu bilmeden seni doğru servise yönlendirir.

Kullanıcı → API Gateway → Book Service
→ → User Service

Python (Flask) ile Mini API Gateway Örneği

from flask import Flask, request, jsonify
import requests
app = Flask(__name__)

# Servis URL'leri (normalde bunlar farklı sunucularda olur)
BOOK_SERVICE_URL = 'http://localhost:5001'
USER_SERVICE_URL = 'http://localhost:5002'

@app.route('/books')
def books():
response = requests.get(f'{BOOK_SERVICE_URL}/books')
return jsonify(response.json())
@app.route('/users')
def users():
response = requests.get(f'{USER_SERVICE_URL}/users')
return jsonify(response.json())

if __name__ == '__main__':
app.run(port=5000)

Mikroservisler Ne Görünürde?

Book Service (5001 portunda çalışan servis)

from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/books')
def get_books():
return jsonify([
{'id': 1, 'title': '1984'},
{'id': 2, 'title': 'Brave New World'}
])
app.run(port=5001)

User Service (5002 portunda çalışan servis)

from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/users')
def get_users():
return jsonify([
{'id': 1, 'name': 'Ayşe'},
{'id': 2, 'name': 'Ali'}
])
app.run(port=5002)

Kullanıcı Ne Görür?

Tarayıcıdan http://localhost:5000/books çağrısı yaptığında aslında Book Service'e ulaşır ama bunu API Gateway sayesinde fark etmez.

Örnek Teknolojiler:

  • Kong
  • AWS API Gateway
  • Nginx + Lua
  • Apigee
  • Traefik
  • Spring Cloud Gateway (Java/Spring projelerinde)

Özetle mikroservis mimarilerinde API Gateway, sistemin trafiğini yöneten, güvenliğini sağlayan, görünmez ama vazgeçilmez bir yapı taşıdır. Müşteriyi arka uçtaki karmaşadan korur, geliştiriciye kontrol ve esneklik kazandırır.

--

--