RESTEasy 6.2: клиент құрастырушысында forward прокси орнату
Типтелген API проксиін жасамас бұрын RESTEasy-дің HTTP тасымалын конфигурациялаңыз және пайдаланылатын HTTP қозғалтқышын ескеріңіз.
Аннотацияланған API нысанын жасамас бұрын RESTEasy клиентінде желілік маршрутты орнатыңыз. Типтелген API проксиі — Java нысаны, алдыңғы желілік делдал емес.
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);Бұл — RESTEasy 6.2-нің Jakarta API-і, мұнда RESTEasy орнатылған клиент провайдері, ал MyApi қолданба арқылы бұрын анықталған. Прокси аргументтері — хост атауы, бүтін порт және прокси тасымал схемасы. Рұқсат етілген жалпыға ашық API сұраулары үшін қызметіңіздегі сәйкес HTTP соңғы нүктесін немесе HTTP проксилер тізімін пайдаланыңыз. API мақсатын target-де қалдырыңыз; HTTPS API HTTP проксиін пайдалана алады.
Клиентті типтелген проксиінің шақырулары үшін тірі ұстаңыз, содан кейін жұмыс аяқталғанда жабыңыз. API нысанын бұрын жабылған клиент ауқымынан қайтару оны тасымалсыз қалдырады.
Бұл тасымал кімге тиесілі екенін шешіңіз. Құрастырушы құжаттамасы әдепкі Apache HTTP Client интеграциясын сипаттайды. Берілген ClientHttpEngine шекараны өзгертеді: httpEngine құрастырушының SSL және қосылымға тән конфигурациясын алмастырады. Прокси мен TLS-ті сол қозғалтқыштың қолдау көрсететін интерфейсі арқылы орнатыңыз.
ClientExecutor негізіндегі ескі мысалдар оның орнына қапталған Apache клиентін конфигурациялайды. Jakarta құрастырушысына қоймай, сол буынға сәйкес келіңіз.
Екі тармақта да API хост атауын TLS сәйкестігі ретінде ұстап, тексеруді қосулы қалдырыңыз. Прокси аутентификациясы, API-ге кіру және сертификатқа сену — бөлек талаптар; тек маршрут барлық аутентификация схемаларын қамтамасыз етпейді.