我们一直在使用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
答案 0 :(得分:2)
您应该尝试扩展WadlGeneratorConfig。
答案 1 :(得分:0)
这是一个更好的主意。将描述放在用于链接到此资源的表示中。
您在服务的根目录中使用哪种媒体类型? Xhtml对此非常有用,因为它易于解析,现有链接支持并在浏览器中很好地呈现。
答案 2 :(得分:0)
雷诺,
您使用WADL向客户端开发人员提供服务描述吗?
如果是这样,请注意,这不是RESTful,因为它违反了超媒体约束。 WADL表示客户端开发人员不得依赖的信息。 WADL本质上包含有关可用转换的信息,超媒体约束要求在运行时发现此类信息,而不是在设计时知道。
因此,在表单意义上使用WADL广告运行时很好[1],因为您可以在不破坏任何客户端的情况下更改WADL。
[1]虽然风格有争议 - 个人而言,我宁愿设计特定领域的媒体类型
扬