두 웹 서비스와 상호 작용하는 Jersey-client 애플리케이션을 작성했습니다. 하나는 REST이고 다른 하나는 SOAP입니다. 필자는 REST 서비스에서 제공하는 직원 데이터를 사용하여 SOAP 서비스를 사용하여 새 사용자를 만듭니다.RESTful 웹 서비스 프록시 클래스
@Entity
@Table(name = "EMPLOYEE_TABLE")
@XmlRootElement
public class Employee implements Serializable {
...
}
내가 명시 적으로 엔티티 클래스에 대한 스키마 정의를 작성하지 않은 :
나머지 서비스는 직원 개체를 반환하는 JAX-RS (뉴저지) 응용 프로그램입니다.
GET /employees/100
<Employee id='100' providerId='3345'>
<Link type="application/xml" href="/employees/100" rel="self"/>
<Name>Doe, Dr. John</Name>
<Departments>
<Department id='10'><Name>Emergency Medicine</Name></Department>
<Department id='56'><Name>Behavioral Medicine</Name></Department>
</Departments>
</Employee>
비누 서비스 (은 BusinessObjects 엔터프라이즈 웹 서비스 SDK)가 그 사용을 단순화하는 자바 클라이언트를 제공합니다
GET 요청은 직원 엔티티의 표현을 반환합니다.
Employee 엔티티의 XML 표현을 구문 분석하여이를 User 클래스의 적절한 설정자에게 할당 할 수는 있지만 저지 클라이언트 애플리케이션에 Employee 프록시 클래스 (적절한 주석이있는)를 만드는 것이 더 쉬울 것입니다. .
질문 :
- 합니까 JAX-RS (특히 뉴저지, 내 경우) 엔티티의 스키마 정의 (XSD 형식)를 노출하는 메커니즘을 가지고? WADL 문서에는 이러한 유형의 정보가 포함되어 있지 않습니다.
- 직원 리소스 클래스를 모방 한 POJO 클래스 표현을 수동으로 만들 수는 있지만 '도구'를 사용해야합니다. 이것에 대한 나의 선택은 무엇입니까?
- 시간이 지남에 따라 Employee 엔티티에 요소를 추가해야 할 수도 있습니다. 이것은 RESTful 서비스의 새로운 버전이 만들어 져야한다는 것을 의미합니까?
- 저지가 스키마 정의를 자동으로 생성하고 노출하도록 구성되어 있고 Employee 엔티티가 승인되지 않은 변경을 방지하기 위해 인터페이스를 구현해야하는 경우 Employee 변경이 스키마 정의를 변경한다고 가정합니다.
포인트 3과 4에 관해서는 REST API URL을 관리해야합니다. 예를 들어, 초기 버전에는'/ myservice/1.0.0/getlist' URL이 있습니다. –