我正在使用JAX-RS創建一些服務,這些服務需要將任意複雜的對象作爲參數,而不僅僅是像整數和字符串這樣的基本體。 A discussion on the CXF mailing list表示在這種情況下僅使用包裝對象作爲單個參數。創建XSD並將其鏈接到WADL
我的擔心是如何記錄服務的輸入格式?如果創建一個看起來像下面這樣的服務:
@POST
@Produces("application/json")
@Consumes("application/json")
@Path("oneParam")
public ComplexObject2 myServiceMethod(ComplexObject1 obj) {
Foo f = obj.foo
Bar b = obj.bar
...
}
自動生成WADL是CXF生產只會產生如下:
<resource path="/oneParam">
<method name="POST">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
這其中包含請求或響應實際上什麼都沒信息包含的內容。 CXF郵件列表中的Sergey表示可以將模式鏈接到該表示,但我該怎麼做呢?我如何創建XSD?
(PS對於冪等資源使用POST可能不是RESTful,但這裏並不重要,因爲我們本質上是使用Json來執行RPC,這或多或少是現有基於SOAP的api的1:1克隆。)
該模式旨在幫助開發人員找出發送和返回的內容,而不一定要驗證計算機的輸出。所以這適用於XML,而不是JSON對我來說並不重要。 – oligofren 2011-06-27 15:44:42