Tôi đang tạo một số dịch vụ bằng cách sử dụng JAX-RS cần phải thực hiện các đối tượng phức tạp tùy ý, không chỉ nguyên thủy như số nguyên và chuỗi. A discussion on the CXF mailing list nói rằng chỉ cần sử dụng một đối tượng bao bọc như một tham số duy nhất trong trường hợp này.Tạo và liên kết XSD với WADL
Mối quan tâm của tôi là cách ghi lại định dạng đầu vào cho dịch vụ? Nếu tạo ra một dịch vụ mà trông giống như sau:
@POST
@Produces("application/json")
@Consumes("application/json")
@Path("oneParam")
public ComplexObject2 myServiceMethod(ComplexObject1 obj) {
Foo f = obj.foo
Bar b = obj.bar
...
}
tự động tạo ra WADL rằng CXF sản xuất sẽ chỉ sản xuất như sau:
<resource path="/oneParam">
<method name="POST">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
này không chứa thông tin về những yêu cầu hoặc phản ứng thực sự chứa đựng. Sergey trên danh sách gửi thư của CXF cho biết có thể liên kết một lược đồ với đại diện, nhưng tôi phải làm như thế nào? Và làm cách nào để tạo XSD?
(PS Sử dụng POST cho tài nguyên idempotent có thể không được RESTful, nhưng điều này không quan trọng ở đây vì chúng tôi đang làm RPC bằng Json. Đây là bản sao 1: 1 của api dựa trên SOAP hiện có)
Giản đồ này là để giúp các nhà phát triển tìm hiểu những gì được gửi và trả lại, không nhất thiết phải xác thực đầu ra của một máy. Vì vậy, đó là áp dụng cho xml và không json không phải là quan trọng với tôi. – oligofren