2

我们一直在使用 Jersey 作为我们的 web 服务,它非常简单直接。有没有办法在方法定义中添加一个小的描述注释(可能使用像@Description这样的注释):

@GET
@Path("/schema/classes/")
@Produces( { APPLICATION_RDF, TEXT_N3, APPLICATION_JSON })
@Description("Lists all ontology classes")
public Response getClasses() throws JobOntoException {
  ...
}

在 WADL 中会给出如下内容:

<application>
 <doc jersey:generatedBy="Jersey: 1.1.5 01/20/2010 03:55 PM"/>
  <resources base="http://localhost:9998/">
   <resource path="/jobonto">
    <resource path="/schema/classes/">
     <method name="GET" id="getClasses">
      **<description>"Lists all ontology classes"</description>**
      <response> 
       <representation mediaType="application/rdf+xml"/>
       <representation mediaType="text/rdf+n3"/>
       <representation mediaType="application/json"/>
      </response>
     </method>
    </resource>
    ...

谢谢,雷诺

4

3 回答 3

2

您应该尝试扩展WadlGeneratorConfig

于 2010-03-05T09:29:26.973 回答
0

雷诺,

您是否使用 WADL 向客户端开发人员提供服务描述?

如果是这样,请不要认为这不是 RESTful,因为它违反了超媒体约束。WADL 表示客户端开发人员不得依赖的信息。WADL 本质上包含有关可用转换的信息,超媒体约束要求在运行时发现这些信息,而不是在设计时知道。

因此,在表单的意义上使用 WADL 广告运行时很好[1],因为您可以在不破坏任何客户端的情况下更改 WADL。

[1] 虽然风格值得商榷 - 就我个人而言,我更愿意设计特定领域的媒体类型

于 2010-02-12T22:37:53.717 回答
0

这是一个更好的主意。将描述放在您用来链接到该资源的表示中。

您在服务的根目录中使用什么媒体类型来表示?Xhtml 对此非常有用,因为它易于解析,现有对链接的支持,并且在浏览器中呈现良好。

于 2010-02-12T18:48:26.573 回答