簡體   English   中英

消費不提供WADL的REST服務

[英]Consuming REST service that doesn't offer WADL

我需要使用一個具有相對簡單和固定的REST服務(可以預期不是非常可變的結構),但是在他們站點上的任何地方都找不到WADL。 我以前曾使用過具有不錯的WSDL的SOAP服務,並使用它來生成Java類,客戶端應用程序使用Axiom2將Java類編組到該Java類。

我的問題是:是否有一種簡單的方法可以對WADL進行逆向工程,如果站點缺少Java,則可以使用JAX-RS的某些實現(例如Jersey)輕松地生成相應的Java類? 提出此問題的另一種方法是:僅提供REST服務,不提供WADL,並且使用某種形式的JAX-RS,在客戶端生成編組類的最簡單方法是什么?

當前,由於結構很簡單,我很難用Java SE( org.w3c.dom )中的org.w3c.dom DOM來解析文檔。 它工作正常,但是我不喜歡在文檔結構中進行所有遍歷,感覺就像是在重新發明輪子。 我敢肯定有一種更優雅的方法。

如果您只做一次,為什么不手工做呢? 如果您需要定期執行此操作,則可能對WADL感到不走運(順便一提,請參閱: https : //softwareengineering.stackexchange.com/questions/133145/should-i-use-wadl-to-describe-my- restful-api )。

您是否只是想從服務為DTO生成Java類? 在這種情況下,您可以從服務中獲取一些示例XML,並使用它生成可能的XSD(也許使用trang )。 然后使用XJC生成相應的Java類。

如果REST服務在Jersey中實現,則Jersey應該在運行時自動生成WADL。 默認位置為http://server:port/appcontextroot/application.wadl 如果REST服務使用其他實現(例如RESTEasy),那么您很不走運。 https://issues.jboss.org/browse/RESTEASY-166

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM