我用RESTEasy使用Java和JBoss7。我創建了我的RESTful服務和一個客戶端來測試我的服務:客戶如何知道REST中對象的正確結構?
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的解決方案,但他們假設客戶端具有資源的類表示形式。