添加方法评论与泽西岛

时间:2010-02-12 17:38:53

标签: rest jersey annotations

我们一直在使用Jersey作为我们的网络服务,它非常棒且直截了当。有没有办法在方法定义中添加一个小描述注释(可能使用@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>
    ...

谢谢,Renaud

3 个答案:

答案 0 :(得分:2)

您应该尝试扩展WadlGeneratorConfig

答案 1 :(得分:0)

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

您在服务的根目录中使用哪种媒体类型? Xhtml对此非常有用,因为它易于解析,现有链接支持并在浏览器中很好地呈现。

答案 2 :(得分:0)

雷诺,

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

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

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

[1]虽然风格有争议 - 个人而言,我宁愿设计特定领域的媒体类型