gpt4 book ai didi

java - 带有 Java 的 REST/XML Api

转载 作者:搜寻专家 更新时间:2023-10-31 08:21:06 25 4
gpt4 key购买 nike

我正在尝试提供一个用 Java 编程的 REST/XML Api。应用程序被赋予一个参数,然后将通过 HTTP 返回 XML 内容。

在 PHP 中,我会通过一个 rest_api.php 文件来解决它,该文件由应用程序使用我的 api 提供参数 &string=helloworld,然后我读取这个字符串,用它进行计算或搜索,修改数据以满足我的 XML 模式并回复此数据一个回声,回声将其与 HTTP 响应一起发回。

如何使用 Java 正确执行此操作?

最佳答案

为此目的,两个 Java 扩展完美地协同工作:

  • JAX-RS (引用实现 Jersey )
  • JAXB (引用实现 Metro)

两者都包含在 Glassfish 中Java EE 5 和 6 引用实现。

简而言之,JAX-RS 允许您通过添加 @GET@POST@PUT< 之一将普通方法声明为 Web 服务@DELETE 注释。 JAX-RS 还具有用于自动解析路径和 URL 查询参数的注释,并且在大多数情况下它负责构建正确的响应对象。

JAXB 通过添加 @XmlRootElement@XmlElement@XmlID 等自动将普通对象 (POJO) 与 XML 相互转换。当结合 JAX-RS,编码和解码是透明地完成的。

例如:

// 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>

关于java - 带有 Java 的 REST/XML Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com