当前位置: 首页 > 知识库问答 >
问题:

阐述文档与Iterable和generics的问题

金伟
2023-03-14

我正在尝试使用expertion为我的基于Jersey的REST API重新生成文档。碰到一些绊脚石:

@GET
@Produces(MediaType.APPLICATION_JSON)
public Iterable<Project> listAll() {
    ...
}

发音似乎不能插入可重复项。在我的文档中,我只得到“元素:(自定义)”。请注意,项目类型是用@XmlRootElement和@JsonRootType注释的。

同样,对于此代码:

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response save(final T persistable) {
    ...
}

我为方法参数(注意:T有一个扩展限制)和返回类型(其中响应是:javax.ws.rs.core.响应)获得了“元素:(自定义)”。此外,发音似乎无法计算出返回的媒体类型:它列出了XML、JSON和*(仔细想想,我不确定我到底想要什么,但我知道不是那样的。)

有什么想法吗?

共有1个答案

丌官嘉良
2023-03-14

Enunciate使用JAX-RS规范来生成文档。不幸的是,<code>Iterable</code>接口不是正式支持的JAX-RS对象类型,所以不知何故,您正在使用自定义消息体编写器将<code<Iterable>序列化为JSON(我想是Jackson?)。

因此,如果您想正式说明您的返回类型,您可以创建一个包装bean,该包装bean可以识别并返回它,而不是Iterable,例如:

@XmlRootElement
public class Projects {
  public Collection<Project> projects;
}
 类似资料:
  • 本文向大家介绍阐述一下阐述Servlet和CGI的区别?相关面试题,主要包含被问及阐述一下阐述Servlet和CGI的区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:servlet   Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成

  • 我正试图集成Enunicate来生成我们现有的API的REST文档。 我得到一个警告“警告:未知工件‘文档’。不会导出工件。当执行ant任务时。 我的设置中是否缺少什么? .xml的解释是: 相关的蚂蚁片段是: 谢谢。 维努

  • 我正在尝试为我的JAVA restful webservice项目使用expertion插件来生成REST文档。每当我使用maven build运行POM.xml时。我收到以下警告,但文档根本没有生成.. [警告][文档]未找到飞溅包com.layer.rest.service.interfaces。没有飞溅留档。 任何线索请?

  • 问题内容: 这两个功能有什么区别? 我看到相同的输出。 问题答案: 在这种情况下没有区别,因为不再使用。 声明a的原因是您可以再次引用它,从而将两个参数类型或一个返回类型绑定在一起。

  • 1.001自定义托盘菜单界面.zip 1.002迅雷悬浮窗右键快捷菜单.zip 1.003渲染进程内实时在线或离线提示.zip 1.004系统托盘闪烁图标提示用户示例.zip 延伸拓展: 如果API中所列功能无法满足你的需求时,chrome-app-samples是你最好的选择. 多平台支持: 众所周知,目前的Electron主要支持桌面版系统的跨平台,例如Win,Linux,MacOS.并不支持

  • 本文向大家介绍mysql_connect localhost和127.0.0.1的区别(网络层阐述),包括了mysql_connect localhost和127.0.0.1的区别(网络层阐述)的使用技巧和注意事项,需要的朋友参考一下 connects.php 使用strace获取系统调用: Socket原本是为网络通讯设计的,但后来在Socket的框架上发展出一种IPC机制,就是UNIX Dom