Müşteri Kullanımı
Yapılandırma
Desteklenen protokoller
Connect-Kotlin şu anda 3 protokolü desteklemektedir:
- Yeni
Connect protokolü
, HTTP/1.1 veya HTTP/2 üzerinden çalışan, basit ve HTTP tabanlı bir protokoldür. gRPC/gRPC-Web'in en iyi özelliklerini, akış da dahil olmak üzere, tüm platformlar, mobil dahil, üzerinde iyi çalışan bir protokole paketler. Varsayılan olarak, JSON ve ikili kodlanmış Protobuf desteklenmektedir. - [gRPC protokolü][grpc]: Mevcut gRPC hizmetleri ile iletişim kurmak için müşterileri sağlar.
- [gRPC-Web protokolü][grpc-web]: Mevcut gRPC-Web hizmetleri ile iletişim kurmak için müşterileri sağlar. gRPC ve gRPC-Web arasındaki ana fark, gRPC-Web'in protokoldaki HTTP trailer'larını kullanmamasıdır.
Eğer arka uç hizmetleriniz bugün gRPC kullanıyorsa, [Envoy destek sağlar][envoy-grpc-bridge] Connect ve gRPC-Web protokolleri kullanılarak yapılan istekleri gRPC'ye dönüştürmek için.
Bu protokoller arasında geçiş yapmak, ProtocolClientConfig
'in protocol
alanını yapılandırırken tek satırlık basit bir kod değişikliği gerektirir:
val client = ProtocolClient(
httpClient = ConnectOkHttpClient(OkHttpClient()),
ProtocolClientConfig(
host = host,
serializationStrategy = GoogleJavaProtobufStrategy(),
protocol = Protocol.CONNECT, // Protocol.GRPC veya Protocol.GRPC_WEB.
),
)
Bu Protokol seçeneklerinin birbirini dışladığını unutmayın. Bir istemci örneği yalnızca tek bir protokolle ilişkilendirilebilir. Aynı uygulamada farklı API'lerle her iki protokolü kullanmak için önerilen çözüm, her protokol için özel bir ProtocolClient
oluşturmaktır.
Sıkıştırma
İstek sıkıştırması ve yanıt çözme, veri sıkıştırma ve çözme mantığını içeren sıkıştırma havuzlarını kaydeden seçenekler aracılığıyla sağlanmaktadır. Varsayılan olarak Gzip desteği sağlanır ve ek sıkıştırma algoritmaları [GzipCompressionPool
][gzip-option] tarafından sağlanan işlevselliği çoğaltarak eklenebilir.
HTTP yığını
Varsayılan olarak, HTTP ağı [OkHttp
][okhttp] kullanılarak ConnectOkHttpClient
sarıcısı üzerinden sağlanmaktadır. Yapılandırıcısı, altında yatan ağ kütüphanesi için kullanılacak bir OkHttpClient
kabul eder. Ayrıca, ConnectOkHttpClient
, HTTPClientInterface
'in sadece OkHttp uygulamasıdır. Tercih edilen başka bir ağ kütüphanesi varsa, Connect-Kotlin ile kullanmak üzere özel bir istemci sağlamak mümkündür!