我想使用Enunciate自动生成我的REST API文档。
JAX-RS带注释的代码如下所示:
let newFrame = view.frame.insetBy(dx: 10.0, dy:10.0)
@POST
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
public IAuthentication login(CLogin aLogin) throws XException {
return this.pManager.authenticate(aLogin);
}
是一个界面,它必须保持一个。这是因为我使用注入,我无法预测方法IAuthentication
返回的确切类型。 authenticate()
是一个类,它是正常的,因为它是方法CLogin
接受的类型的特化。
现在我的问题是,只有Request Body是Enunciate生成的文档中的文档,而不是Response Body。在查找潜在数据类型时,Enunciate似乎忽略了Java接口,并显示以下消息:
[DEBUG] [ENUNCIATE] com.example.IAuthentication不是潜在的杰克逊类型,因为它不是一个类或枚举。
我的界面使用JAXB注释进行注释。它们可以从源路径访问。
authenticate()
有没有办法告诉Enunciate Java接口作为数据类型是正常的,必须加以考虑。
附录
此方法的JSON输出的实际示例:
@XmlRootElement
public interface IAuthentication {
/* methods signatures */
}
答案 0 :(得分:0)
根据@stoicflame对this issue的回答,Enunciate的2.7版本似乎不支持Java接口作为数据类型。
我使用了JavaDoc标记@returnWrapped
。另一个选项是特定于Enunciate的注释@TypeHint
。 JavaDoc标记虽然省略了外部运行时依赖性。
修改强> 版本2.9.0现在发布supports documenting interface types。