Endpoint (API Uç Noktası) Nedir?
Kısa tanım
Endpoint (API uç noktası), bir API'nin dışarıya açtığı ve belirli bir işlemi karşılayan tekil erişim noktasıdır. Web API'lerinde bir endpoint genellikle bir URL yolu ile bir HTTP metodunun birleşiminden oluşur; örneğin GET /v1/orders/{id} bir siparişi okur, DELETE /v1/orders/{id} ise siler. Her endpoint kabul ettiği parametreleri, istek gövdesini, kimlik doğrulama şeklini ve dönebileceği yanıtları tanımlar.
Diğer adları: endpoint, uç nokta, API uç noktası, API endpoint

Yol ve metot birlikte bir uç nokta tanımlar
Bir API bütün sözleşmedir; endpoint ise o sözleşmenin tek bir maddesi, tek bir kapısıdır. Web API'lerinde bu kapıyı adres ve HTTP metodu birlikte tanımlar. Aynı yol farklı metotlarla farklı işler yapar, dolayısıyla belgelerde ayrı endpoint'ler olarak listelenir:
| Endpoint | İşlevi |
|---|---|
GET /v1/orders | Siparişleri listeler; filtre ve sayfalama sorgu parametreleriyle verilir |
POST /v1/orders | Yeni sipariş oluşturur |
GET /v1/orders/{orderId} | Tek bir siparişi okur |
PATCH /v1/orders/{orderId} | Siparişin bir kısmını günceller |
DELETE /v1/orders/{orderId} | Siparişi iptal eder veya siler |
Tam adres, ortak bir taban adresle (https://api.example.com) yolun birleşimidir. Süslü parantezli kısım yol parametresidir; ?status=open&page=2 gibi eklemeler ise sorgu parametreleridir.
Bir endpoint'in sözleşmesi
İyi belgelenmiş bir endpoint şu soruların hepsine cevap verir: hangi parametreleri alır, gövdede hangi alanlar zorunludur, kimlik nasıl doğrulanır, başarılı yanıt neye benzer, hangi hata kodları dönebilir ve kullanım sınırı nedir? OpenAPI formatında aynı bilgi makinece okunabilir biçimde yazılır:
paths:
/v1/orders/{orderId}:
get:
summary: Tek bir siparişi getirir
parameters:
- name: orderId
in: path
required: true
schema:
type: string
responses:
"200":
description: Sipariş bulundu
"404":
description: Böyle bir sipariş yokBu tanımdan dokümantasyon sayfası, otomatik testler ve istemci kodu üretilebilir.
Sık karıştırılan durumlar
- Endpoint ve URL: URL bir adrestir; endpoint, o adresteki belirli bir işlemin bütün kurallarıdır.
- REST ve endpoint sayısı: REST API'lerde her kaynak ve işlem için ayrı endpoint bulunur. GraphQL ise çoğunlukla tek bir endpoint kullanır; neyin isteneceğini sorgunun kendisi söyler.
- Webhook endpoint'i: Burada yön tersine döner. Karşı sistemin olay olduğunda çağıracağı adresi siz yayınlarsınız; yani endpoint sizin tarafınızdadır.
İyi endpoint tasarımının ölçütleri
- Yollar eylem değil kaynak adlandırır:
/orders/1042/cancelyerine çoğu zaman durum alanını güncelleyen birPATCHdaha tutarlıdır; yine de iş akışı gerektiren işlemler için eylem endpoint'i bilinçli bir tercih olabilir. - Sürüm yolda veya başlıkta açıkça belirtilir; kırıcı değişiklik yeni sürümle gelir.
- Liste döndüren her endpoint sayfalama yapar; sınırsız liste bir gün sunucuyu yorar.
- Hata yanıtları bütün endpoint'lerde aynı yapıyı kullanır.
Her endpoint ayrı bir güvenlik yüzeyi
Yeni bir endpoint eklemek, sisteme yeni bir kapı açmaktır. Kimlik doğrulamanın yanında nesne düzeyinde yetki kontrolü de gerekir: kullanıcı oturum açmış olsa bile /v1/orders/1043 isteğinde o siparişin gerçekten ona ait olup olmadığı kontrol edilmelidir. Bu kontrolün eksikliği, OWASP'ın API güvenliği listesinde ilk sırada yer alan zafiyet türüdür. Herkese açık endpoint'lerde hız sınırlama ve kullanılmayan, belgelenmemiş eski endpoint'lerin envanterden düşülüp kapatılması da aynı derecede önemlidir.

