WebSocket API Proxy Oluşturma
Genel Bakış
Apinizer WebSocket proxy'si, HTTP API'ler ile tamamen aynı mantıkta çalışır. Aynı API Proxy üzerinden hem HTTP hem WebSocket isteklerini yönlendirebilirsiniz.
Temel Kavramlar
Tek gerekli konfigürasyon. Backend WebSocket servisinizin adresini belirtir.
Örnek: http://backend:9090/ws/api
HTTP API'lerle aynı mantıkta çalışır. Wildcard kullanarak esnek yönlendirme yapabilirsiniz.
Örnekler: /websocket/*, /chat/*
Sistem otomatik olarak protokol dönüşümü yapar:
http://→ws://https://→wss://
Nasıl Çalışır?
Birleşik Path Resolve Süreci
Path Resolve Örneği
Aşağıdaki örnek, bir WebSocket isteğinin nasıl işlendiğini gösterir:
Gelen İstek: ws://host/api/websocket/rooms/123?user=john
├─ API Proxy Path: /api/websocket/*
├─ Backend URL: http://localhost:9090/ws/chat
├─ Protokol Dönüşümü: ws://localhost:9090/ws/chat
├─ Remaining Path: rooms/123
└─ Final URL: ws://localhost:9090/ws/chat/rooms/123?user=john
Path Resolve Adımları
WebSocket isteklerinin işlenmesi aşağıdaki adımlardan geçer:
Request path'den query parametreleri ayrılır.
Wildcard işaretleri (*) temizlenir.
API proxy path'i çıkarılır ve kalan path belirlenir.
HTTP → WebSocket protokol dönüşümü yapılır (http:// → ws://, https:// → wss://).
Backend URL + Remaining Path + Query parametreleri birleştirilerek final URL oluşturulur.
Pratik Örnekler
Aynı API Proxy üzerinden hem HTTP hem WebSocket isteklerini yönlendirme:
Konfigürasyon:
- API Proxy:
/api/v1/* - Backend URL:
http://localhost:8080/service
Örnek İstekler:
- HTTP:
POST /api/v1/users→http://localhost:8080/service/users - WebSocket:
ws://host/api/v1/chat→ws://localhost:8080/service/chat
HTTPS backend ile güvenli WebSocket bağlantısı:
Konfigürasyon:
- API Proxy:
/secure/* - Backend URL:
https://api.example.com/ws
Örnek İstek:
- WebSocket:
ws://host/secure/data→wss://api.example.com/ws/data
HTTPS backend kullanıldığında otomatik olarak WSS (WebSocket Secure) protokolüne dönüştürülür.
Chat uygulaması için WebSocket proxy örneği:
Konfigürasyon:
- API Proxy:
/chat/* - Backend URL:
http://chat-service:9090/websocket
Örnek İstek:
- WebSocket:
ws://host/chat/room/123→ws://chat-service:9090/websocket/room/123
Sık Sorulan Sorular
Aynı API Proxy hem HTTP hem WebSocket destekleyebilir mi?
Evet! Aynı relative path altında her iki protokol de çalışır.
Aynı API Proxy konfigürasyonu ile hem HTTP hem WebSocket isteklerini yönlendirebilirsiniz. Sistem gelen isteğin protokol tipini otomatik olarak algılar ve uygun şekilde işler.
Backend URL'de hangi protokol kullanmalıyım?
HTTP veya HTTPS kullanın. Sistem otomatik olarak WS/WSS'ye dönüştürür.
Backend URL'de http:// veya https:// protokolünü kullanabilirsiniz. Apinizer, WebSocket istekleri için otomatik olarak:
http://→ws://https://→wss://
dönüşümünü yapar.
Query parametreleri korunur mu?
Evet, tüm query parametreleri backend'e aynen aktarılır.
WebSocket isteklerindeki query parametreleri (?param=value) korunur ve backend'e aktarılır. Örneğin:
ws://host/api/chat/room/123?user=john&token=abc
Bu istek backend'e query parametreleriyle birlikte yönlendirilir.
Mevcut HTTP API'lerimi nasıl WebSocket destekli yapabilirim?
API Proxy'nin bağlı olduğu ortamın ayarlarına gidin.
Ortam ayarlarından WebSocket desteğini aktif edin.
Değişiklikleri deploy edin. Artık mevcut HTTP API Proxy'niz WebSocket isteklerini de destekleyecektir.
Mevcut HTTP API Proxy'leriniz için ek bir konfigürasyon gerekmez. Sadece ortam ayarlarından WebSocket desteğini aktif etmeniz yeterlidir.