我正在使用带有 RESTEasy 的 Java 和 JBoss7。我创建了我的 RESTful 服务和一个客户端来测试我的服务:
ClientRequest request = new ClientRequest(
"http://localhost:8080/test/rest/cars");
request.accept(MediaType.APPLICATION_XML);
String input = "<car><carId>10.99</carId><carName>Ford</carName></car>";
request.body(MediaType.APPLICATION_XML, input);
ClientResponse<String> response = request.post(String.class);
System.out.println("Output from Server .... \n");
System.out.println(response.getStatus());
这完美!这里唯一的问题是在客户端。我必须像你看到的那样发送硬编码的 XML,String input = "<car><carId>10.99</carId><carName>Ford</carName></car>";
因为客户端没有我拥有的对象。
客户端将模仿它从 get 方法接收到的 XML 表示,这对于庞大而复杂的资源可能很难做到。
有没有办法让客户端知道他们想要发送的对象的正确结构,或者他们必须发送类型化的 XML?
我可以给客户端一些类似于 WSDL 或 XSD 的东西,或者这会违反 REST 的约束吗?
我见过人们会使用 Xsteam 和 unmarshalling 的解决方案,但他们假设客户端具有资源的类表示。