RESTEasy 6.2: setarea unui proxy forward pe builderul clientului
Configurați transportul HTTP al RESTEasy înainte de a crea proxy-ul API tipizat și țineți cont de motorul HTTP folosit.
Setați ruta de rețea pe clientul RESTEasy înainte de a crea obiectul API adnotat. Un proxy API tipizat este un obiect Java, nu intermediarul de rețea care redirecționează.
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);Acesta este API-ul Jakarta al RESTEasy 6.2, cu RESTEasy ca furnizor de client instalat și MyApi deja definit de aplicație. Argumentele proxy-ului sunt numele de gazdă, portul întreg și schema de transport a proxy-ului. Pentru cererile permise către API-uri publice, folosiți un endpoint HTTP corespunzător din serviciul dvs. sau lista de proxy-uri HTTP. Păstrați destinația API-ului pe target; un API HTTPS poate folosi un proxy HTTP.
Păstrați clientul în viață pentru apelurile proxy-ului său tipizat, apoi închideți-l la finalizarea lucrării. Returnarea obiectului API dintr-un domeniu de client deja închis îl lasă fără transport.
Decideți cine deține acel transport. Documentația builderului descrie integrarea implicită Apache HTTP Client. Un ClientHttpEngine furnizat schimbă limita: httpEngine înlocuiește configurația SSL și configurația specifică conexiunii a builderului. Setați proxy-ul și TLS prin interfața acceptată a acelui motor.
Exemplele mai vechi bazate pe ClientExecutor configurează în schimb un client Apache înfășurat. Aliniați-vă la acea generație în loc să îl lipiți în builderul Jakarta.
În ambele ramuri, păstrați numele de gazdă al API-ului ca identitate TLS cu verificarea activată. Autentificarea proxy-ului, autentificarea în API și încrederea în certificat sunt cerințe separate; o rută singură nu oferă toate schemele de autentificare.