GET İstekleri ve Önbellekleme
Connect, HTTP tabanlı bir GET protokolü kullanarak belirteçler oluşturan, yan etkisiz istekler yapmayı destekler. Bu, belirli türdeki isteklerin tarayıcıda, CDN'nizde veya proxy'lerde ve diğer ara kutularda önbelleğe alınmasını kolaylaştırır.
Bu işlevsellik, yalnızca Connect protokolü kullanılınca desteklenir—bir Connect istemcisi ile bir Connect hizmeti kullanılır. Connect sunucularıyla gRPC istemcileri, ya da gRPC sunucularıyla Connect istemcileri kullanıldığında, tüm istekler HTTP POST kullanır.
Sorgu tarzında istekler yapmak için istemciler kullanıyorsanız, Connect HTTP GET isteği desteğini kullanma yeteneğini istemek isteyebilirsiniz. Belirli bir prosedür için katılmak istiyorsanız, onu yan etki içermediği şeklinde işaretlemeniz gerekir; bunu [MethodOptions.IdempotencyLevel
][idempotency-level] seçeneği ile yapabilirsiniz:
service ElizaService {
rpc Say(SayRequest) returns (SayResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
}
}
Bu seçeneği kullanarak GET isteklerini otomatik olarak destekleyecektir, ancak yeterince güncel bir Connect Go sürümüne sahip olduğunuzdan emin olun; v1.7.0 veya daha yeni bir sürüme ihtiyaç vardır. Ayrıca v1.7.0 veya daha yeni ile kod üretimini yeniden çalıştırmanız gerekecek.
İstemcinizde de HTTP GET'e katılmanız gerekmektedir. Eğer bir Go istemcisi kullanıyorsanız, Connect istemcisini oluştururken WithHTTPGet
seçeneğini belirtmelisiniz.
client := elizav1connect.NewElizaServiceClient(
http.DefaultClient,
connect.WithHTTPGet(),
)
Yan etkisiz olarak tanımlanan yöntemler GET isteklerini kullanır. Diğer tüm istekler POST kullanmaya devam edecektir.
Diğer istemciler için, ilgili belgelerine bakınız:
Connect Node
Connect Web
Connect Kotlin