Endpoint
Endpoint Özellikleri
Endpoint'in URL yolu. Örneğin: /api/v1/products
HTTP method. GET, POST, PUT, DELETE, PATCH vb.
Endpoint'in gerçekleştirdiği işlem. Örneğin: "Ürün listesi getir"
Endpoint'in backend'deki karşılığı
Endpoint İşleme Akışı
Aşağıdaki diyagram, endpoint'in istek ve yanıt akışında nasıl çalıştığını ve path rewriting işlemini gösterir:
Endpoint Yapısı
Bir endpoint şu bilgileri içerir:
GET /api/v1/products
│ │ │ │
│ │ │ └─ Resource (Kaynak)
│ │ └─ Version (Versiyon)
│ └─ Base Path (Temel Yol)
└─ HTTP Method (HTTP Metodu)
Örnek Endpoint'ler
Ürün listesi getir
Tek ürün detayı getir
Yeni ürün oluştur
Ürün güncelle
Ürün sil
Endpoint ve Client Route İlişkisi
Endpoint'ler Client Route'un altında tanımlanır:
Client Route: /api/v1/*
│
├─ GET /api/v1/products
├─ GET /api/v1/products/{id}
├─ POST /api/v1/products
├─ PUT /api/v1/products/{id}
└─ DELETE /api/v1/products/{id}
Client Route, endpoint'lerin üst seviye yapılandırmasıdır. Bir Client Route altında birden fazla endpoint tanımlanabilir. Endpoint'ler, Client Route'un path'i içinde spesifik path ve method kombinasyonlarıdır.
Endpoint Yapılandırması
Bir endpoint oluştururken şu bilgiler tanımlanır:
Temel Bilgiler
- Path: Endpoint'in URL yolu
- Method: HTTP method (GET, POST, PUT, DELETE, vb.)
- Operation ID: Endpoint'in benzersiz tanımlayıcısı
- Description: Endpoint'in açıklaması
Parametreler
- Query Parameters: URL'deki query string parametreleri
- Path Parameters: URL path'indeki dinamik parametreler (örn:
{id}) - Header Parameters: HTTP header parametreleri
Request ve Response
- Request Body: İstek gövdesi şeması (JSON, XML, vb.)
- Response: Yanıt şeması ve status code'ları
- Content-Type: İstek ve yanıt içerik tipleri
Backend Mapping
- Backend Path: Backend'deki karşılık gelen path
- Backend Method: Backend'deki HTTP method
- Path Rewrite: Path dönüşüm kuralları
Endpoint Türleri
REST API'ler için endpoint'ler
JSON formatında veri alışverişi. RESTful tasarım prensiplerine uygun endpoint'ler.
SOAP Web Servisleri için endpoint'ler
XML formatında veri alışverişi. WSDL tanımları ile yapılandırılır.
gRPC servisleri için endpoint'ler
Protobuf formatında veri alışverişi. Yüksek performanslı RPC çağrıları.
WebSocket bağlantıları için endpoint'ler
Gerçek zamanlı iletişim. İki yönlü veri alışverişi sağlar.
Endpoint ve Politika İlişkisi
Endpoint'lere özel politikalar uygulanabilir:
Her endpoint için farklı güvenlik politikaları
OAuth2, JWT, API Key gibi güvenlik mekanizmaları endpoint bazında yapılandırılabilir.
Her endpoint için farklı rate limit
Endpoint bazında istek sayısı ve bant genişliği limitleri tanımlanabilir.
Her endpoint için farklı dönüştürme kuralları
JSON ↔ XML dönüşümü, veri mapping ve transformation endpoint bazında yapılabilir.
Her endpoint için farklı doğrulama kuralları
Request/Response validation, schema doğrulama endpoint bazında yapılandırılabilir.
Endpoint Versiyonlama
Endpoint'ler versiyonlanabilir:
/api/v1/products
İlk versiyon. Temel işlevsellik.
/api/v2/products
Geliştirilmiş versiyon. Yeni özellikler.
/api/v3/products
En son versiyon. Güncel API.
Geriye Dönük Uyumluluk
Geriye dönük uyumluluk korunur. Eski versiyonlar çalışmaya devam eder ve yeni versiyonlar eski versiyonları etkilemez.
Kademeli Geçiş
Kademeli geçiş yapılabilir. İstemciler kendi hızlarında yeni versiyona geçebilir.
Versiyon Yönetimi
Farklı versiyonlar farklı ortamlara deploy edilebilir ve aynı anda çalışabilir. Versiyonlama sayesinde API yaşam döngüsü yönetilebilir.