我試圖提供一個用Java編程的REST/XML Api。應用程序被賦予一個參數,然後通過HTTP返回XML內容。Java中的REST/XML Api
在PHP中,通過使用我的api提供參數& string = helloworld的rest_api.php文件來解決這個問題,然後我讀取這個字符串,進行計算或搜索,修改數據來滿足我的XML模式,並回復這個數據,然後用HTTP響應發回它。
如何正確使用Java?
我試圖提供一個用Java編程的REST/XML Api。應用程序被賦予一個參數,然後通過HTTP返回XML內容。Java中的REST/XML Api
在PHP中,通過使用我的api提供參數& string = helloworld的rest_api.php文件來解決這個問題,然後我讀取這個字符串,進行計算或搜索,修改數據來滿足我的XML模式,並回復這個數據,然後用HTTP響應發回它。
如何正確使用Java?
兩個Java擴展在演唱會精彩爲此繼續努力:
兩者都包含在Glassfish的Java EE 5和6參考實現。
總之,JAX-RS允許通過添加@GET
,@POST
,@PUT
或@DELETE
註釋中的一個聲明一個普通方法爲web服務。 JAX-RS還具有用於自動分析路徑和URL查詢參數的註釋,並且在大多數情況下它負責構建適當的響應對象。
JAXB通過添加@XmlRootElement
,@XmlElement
,@XmlID
等。當用JAX-RS合併,編組和解組用戶是透明的自動轉換平原對象(POJO)和XML。
例如:
// POJO with JAXB annotations
@XmlRootElement(name = "sensor")
public class MyObject {
@XmlID
@XmlElement
private String id;
@XmlAttribute
private String name;
@XmlElement(name = "sensor-value")
private Integer value;
@XmlTransient // don't translate to XML
private Double computedValue;
// ...getters and setters
}
// POJO with REST interface
@Path("/mywebservice")
public class MyWebService {
@EJB
MySensorController controller;
@GET
@Produces("application/xml")
public MyObject getCurrentSensorValue(@QueryParam("ID") String id) {
// automatic unmarshalling from MyObject to XML
return controller.getSensorValue(id);
}
}
生成的XML將是這個樣子:
<sensor name="foo">
<id>123</id>
<sensor-value>42</sensor-value>
</sensor>
的RESTlet框架應該是一個非常好的開始
我沒有嘗試過的Restlet或球衣,但我已經很高興與Apache Wink。它在我們的生產環境中運行良好,沒有問題。
+1 - 查看完整示例:http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html – 2011-05-31 15:07:54