RESTEasy 6.2: ตั้งค่า forward proxy บนไคลเอนต์บิลเดอร์
กำหนดค่าการขนส่ง HTTP ของ RESTEasy ก่อนสร้างพร็อกซี API แบบมีชนิด และคำนึงถึงเอนจิน HTTP ที่ใช้อยู่
ตั้งเส้นทางเครือข่ายบนไคลเอนต์ RESTEasy ก่อนสร้างออบเจกต์ API ที่มีแอนโนเทชัน พร็อกซี 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);นี่คือ Jakarta API ของ RESTEasy 6.2 โดย RESTEasy เป็นผู้ให้บริการไคลเอนต์ที่ติดตั้งไว้ และ MyApi ถูกกำหนดโดยแอปพลิเคชันแล้ว อาร์กิวเมนต์ของพร็อกซีคือชื่อโฮสต์ พอร์ตจำนวนเต็ม และสคีมาการขนส่งของพร็อกซี สำหรับคำขอ API สาธารณะที่ได้รับอนุญาต ให้ใช้ปลายทาง HTTP ที่ตรงกันจากบริการของคุณหรือ รายการพร็อกซี HTTP คงปลายทางของ API ไว้ที่ target; API แบบ HTTPS สามารถใช้พร็อกซี HTTP ได้
คงไคลเอนต์ให้มีชีวิตอยู่สำหรับการเรียกของพร็อกซีแบบมีชนิด แล้วปิดเมื่อทำงานเสร็จ การคืนออบเจกต์ API จากขอบเขตไคลเอนต์ที่ปิดแล้วจะทำให้ไม่มีตัวขนส่ง
ตัดสินใจว่าใครเป็นเจ้าของการขนส่งนั้น เอกสารของบิลเดอร์อธิบายการผสานรวม Apache HTTP Client แบบค่าเริ่มต้น ClientHttpEngine ที่ให้มาจะเปลี่ยนขอบเขต: httpEngine แทนที่การกำหนดค่า SSL และการกำหนดค่าเฉพาะการเชื่อมต่อของบิลเดอร์ ตั้งค่าพร็อกซีและ TLS ผ่านอินเทอร์เฟซที่รองรับของเอนจินนั้น
ตัวอย่างเก่าที่อิง ClientExecutor จะกำหนดค่าไคลเอนต์ Apache ที่ห่อหุ้มแทน ให้ปฏิบัติตามรุ่นนั้นแทนการวางลงในบิลเดอร์ Jakarta
ในทั้งสองสาขา ให้คงชื่อโฮสต์ของ API เป็นตัวตน TLS โดยเปิดการตรวจสอบไว้ การพิสูจน์ตัวตนพร็อกซี การเข้าสู่ระบบ API และความเชื่อถือในใบรับรองเป็นข้อกำหนดแยกกัน เส้นทางเพียงอย่างเดียวไม่ได้ให้รูปแบบการพิสูจน์ตัวตนทั้งหมด