2014-09-13 118 views
0

我正在學習REST web服務並對一些概念感到困惑。 我想創建一個RESTful Web服務消耗的XML,如:消耗XML的REST web服務

<?xml version="1.0" encoding="UTF-8"?> 
<emp:EmployeeEntry xmlns:emp="http://www.employee/entry"> 
    <emp:number>12345</emp:number> 
    <emp:name>George</emp:name> 
    <emp:date>2015-04-03</emp:date> 
    <emp:address> 
    <emp:city>Paris</emp:city> 
    <emp:street>East 35</emp:street> 
    </emp:address> 
</emp:EmployeeEntry> 

所以,如果我想創建一個RESTful Web服務消耗該XML,怎麼會是我的方法的簽名?

public creatEmp(XML xml); 

應該是這樣嗎? (因爲我看到一些使用XML的方法的例子,但它們將參數作爲主要的entiry對象,例如; Employee我不明白如何使用XML的方法接受和Entity對象作爲參數)

另外,如果該方法以XML作爲參數,是否必須在該方法中實現解析邏輯,然後從中創建Employee對象並啓動主創建邏輯?

我有一些知識空白,請給我一些例子或一些很好的教程。

回答

1

您不需要將輸入參數指定爲XML字符串,例如JAX-RS會自動爲您進行轉換。

請參見下面的例子:

@Path("/employee") 
public class EmployeeService { 
    @GET 
    @Path("/get") 
    @Produces("application/xml") 
    public Employee getEmployee() { 
     Employee emp = new Employee(); 
     emp.setName("Test Employee"); 
     return emp; 
    } 

    @POST 
    @Path("/create") 
    @Consumes("application/xml") 
    public Response createEmployee(Employee emp) { 
     // Write your code here to save the employee 
    } 
} 

您可以檢查this link以獲取更多信息。