Endpoint Nedir? API Uçnoktalarının Tanımı, Türleri ve Kullanım Alanları
Endpoint, bir API'nin belirli bir işlemi gerçekleştirmek için erişilebilir olduğu ağ adresidir. Sunucu ile istemci arasında veri aktarımının gerçekleştiği bağlantı noktasıdır. Genellikle URL formatında tanımlanır ve HTTP metodlarıyla (GET, POST, PUT, DELETE) istekleri işler.
Endpoint, bir API'nin (Application Programming Interface) belirli bir işlemi gerçekleştirmek için erişilebilir olduğu ağ adresidir. Sunucu ile istemci uygulaması arasında veri alışverişinin gerçekleştiği bağlantı noktasını ifade eder. Web siteleri, mobil uygulamalar ve sistemler arası iletişimde kritik bir yapı taşıdır.
Endpoint Nedir? Temel Tanım
Endpoint sözcüğü İngilizce "uç nokta" anlamına gelir. Teknik açıdan, bir sunucunun veya web hizmetinin belirli bir işlemi yerine getirmek için hazırladığı ve istemcilerin bu işlemi çağırabileceği bir URL veya ağ adresidir. Her endpoint, genellikle belirli bir veri kaynağına veya işlevselliğe karşılık gelir.
Örneğin, bir sosyal medya uygulamasında "kullanıcı bilgisini getir" endpoint'i, "gönderi paylaş" endpoint'i ve "yorum yap" endpoint'i gibi farklı uçnoktalar bulunur. Her biri kendi özel görevini yerine getirir.
"Endpoint, client-server mimarisinde harita üzerindeki bir hedef konuma benzer." Kullanıcı veya uygulamanın ne istediğini belirtir, sunucu ise o endpoint'e gelen isteği işleyip yanıt verir.
Endpoint Nasıl Çalışır?
Endpoint'in çalışma mekanizması, basit bir istek-yanıt döngüsüne dayanır:
- İstemci (Client) — web sayfası, mobil uygulama veya başka bir yazılım — bir URL'ye (endpoint'e) HTTP istek gönderir
- Sunucu (Server) — bu isteği alır, işler ve gerekli verileri ya da yanıtı hazırlar
- Yanıt (Response) — sunucu, JSON veya XML formatında veri ile beraber HTTP durum kodu (200, 404, 500 vb.) gönderir
- İstemci yanıtı kullanır — alınan veri ekranda gösterilir ya da başka işlemler için kullanılır
Örneğin, bir hava durumu uygulaması, "api.hava.com/istanbul/sıcaklık" endpoint'ine GET istek gönderir. Sunucu 25°C değerini JSON formatında döndürür ve uygulama bunu ekranda gösterir.
Endpoint Türleri
Endpoint'ler, işlevlerine ve çalışma ilkelerine göre farklı türlere ayrılır:
| Endpoint Türü | Açıklama | Örnek |
|---|---|---|
| GET Endpoint | Verileri sunucudan almak için kullanılır. Veri değiştirmez. | api.site.com/kullanıcılar/123 |
| POST Endpoint | Sunucuya yeni veriler göndererek kayıt oluşturur. | api.site.com/kullanıcılar (yeni kullanıcı ekler) |
| PUT Endpoint | Mevcut verileri güncellemek için kullanılır. | api.site.com/kullanıcılar/123 (ID'si 123 olan veriyi günceller) |
| DELETE Endpoint | Sunucudan veri silmek için kullanılır. | api.site.com/kullanıcılar/123 (ID'si 123 olan veriyi siler) |
| PATCH Endpoint | Verilerin bir kısmını güncellemek için kullanılır (PUT daha geniş kapsamlı). | api.site.com/kullanıcılar/123 (sadece adı günceller) |
Endpoint Nerede Kullanılır?
Endpoint'ler, dijital harita üzerinde birbirine bağlı her yerde kullanılır:
- Web Uygulamaları — Facebook, Instagram gibi siteler endpoint'ler aracılığıyla sunucudan veri çeker
- Mobil Uygulamalar — Instagram uygulaması telefonunuzda açıldığında, sunucuya çok sayıda endpoint isteği gönderir
- Üçüncü Taraf Entegrasyonları — Ödeme sistemleri (Stripe, PayPal) kendi endpoint'lerini sağlar
- IoT Cihazları — Akıllı ev cihazları, endpoint'ler aracılığıyla internet üzerinden kontrol edilir
- Veri Analiz Araçları — Google Analytics, Mixpanel gibi hizmetler endpoint'ler üzerinden veri toplar
- Makine Öğrenmesi Modelleri — Tahmin veya sınıflandırma yapan modeller API endpoint'leri olarak sunulur
Endpoint'in Avantajları
- Modülerlik — Her endpoint belirli bir işi yapar, kod daha düzenli olur
- Yeniden Kullanılabilirlik — Aynı endpoint birden fazla uygulamadan çağrılabilir
- Ölçeklenebilirlik — Sistemler büyüdükçe yeni endpoint'ler kolayca eklenebilir
- Platform Bağımsızlığı — Web, mobil, masaüstü farklı platformlar aynı endpoint'i kullanabilir
- Güvenlik Kontrolleri — Endpoint seviyesinde yetkilendirme ve erişim denetimi yapılabilir
Endpoint'in Dezavantajları
- Ağ Gecikmesi — Her istek sunucuya gider, bu da hızı azaltabilir
- Ağ Trafiği — Çok sayıda endpoint isteği, internet bant genişliğini tüketir
- Sunucu Yükü — Milyonlarca endpoint isteğini işlemek sunucuları zorlayabilir
- Versiyon Yönetimi Karmaşıklığı — API'nin yeni versiyonlarında endpoint'ler değişebilir, eski uygulamalar kırılabilir
- Hata Yönetimi — Hatalı endpoint çağrıları veya yanlış parametreler sorunlara neden olur
RESTful API'de Endpoint Tasarımı
Modern web hizmetlerinde endpoint tasarımı, REST (Representational State Transfer) ilkelerine uyar. İyi tasarlanmış bir endpoint şu özelikleri taşır:
- Okunabilir ve Anlaşılır — api.site.com/kullanıcılar/123 (iyi) vs. api.site.com/get_user (kötü)
- Kaynak Odaklı — Dinamik eylem yerine isimler kullanılır (/delete yerine DELETE metodu kullanılır)
- Tutarlı Yapı — Tüm endpoint'ler aynı konvensiyonu takip eder
- Sürüm Kontrolü — api.site.com/v1/kullanıcılar, api.site.com/v2/kullanıcılar gibi versiyonlar ayrılır
- Durum Kodları Doğru Kullanılır — 200 (başarılı), 404 (bulunamadı), 500 (sunucu hatası) vb.
Endpoint Güvenliği
Endpoint'ler, dış tehditlerden korunmalıdır. Güvenlik önlemleri şunları içerir:
- API Anahtarı (API Key) — Sadece yetkili uygulamaların endpoint'e erişmesi sağlanır
- OAuth 2.0 / JWT — Kullanıcı kimliği doğrulanır
- HTTPS Şifreleme — Veri aktarımı şifrelenir
- Rate Limiting — Aynı kaynaktan çok fazla istek engellenir (DDoS saldırılarından korunur)
- CORS (Cross-Origin Resource Sharing) — Hangi kaynakların endpoint'e erişebileceği kontrol edilir
- Input Validasyon — Zararlı veriler filtrelenir