RESTEasy 6.2: Menetapkan forward proxy pada builder klien
Konfigurasikan transport HTTP RESTEasy sebelum membuat proxy API bertipe, dan perhitungkan mesin HTTP yang dipakai.
Tetapkan rute jaringan pada klien RESTEasy sebelum membuat objek API beranotasi. Proxy API bertipe adalah objek Java, bukan perantara jaringan penerus.
import jakarta.ws.rs.client.ClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
ResteasyClientBuilder builder =
(ResteasyClientBuilder) ClientBuilder.newBuilder();
ResteasyClient client = builder
.defaultProxy("proxy.example.net", 8080, "http")
.build();
MyApi api = client
.target("https://api.example.net")
.proxy(MyApi.class);Ini adalah API Jakarta RESTEasy 6.2, dengan RESTEasy sebagai penyedia klien terpasang dan MyApi sudah ditentukan oleh aplikasi. Argumen proxy adalah nama host, port bilangan bulat, dan skema transport proxy. Untuk permintaan API publik yang diizinkan, gunakan endpoint HTTP yang sesuai dari layanan Anda atau daftar proxy HTTP. Pertahankan tujuan API pada target; API HTTPS dapat memakai proxy HTTP.
Jaga klien tetap hidup untuk panggilan proxy bertipe-nya, lalu tutup saat pekerjaan selesai. Mengembalikan objek API dari cakupan klien yang sudah ditutup membuatnya tanpa transport.
Putuskan siapa yang memiliki transport tersebut. Dokumentasi builder menjelaskan integrasi Apache HTTP Client bawaan. ClientHttpEngine yang diberikan mengubah batas: httpEngine menggantikan konfigurasi SSL dan konfigurasi khusus koneksi milik builder. Tetapkan proxy dan TLS melalui antarmuka yang didukung mesin tersebut.
Contoh lama berbasis ClientExecutor justru mengonfigurasi klien Apache yang terbungkus. Ikuti generasi itu alih-alih menempelkannya ke builder Jakarta.
Pada kedua cabang, pertahankan nama host API sebagai identitas TLS dengan verifikasi aktif. Autentikasi proxy, login API, dan kepercayaan sertifikat adalah persyaratan terpisah; rute saja tidak menyediakan semua skema autentikasi.