我正在尝试使用swagger生成的基本代码使用Jax-rs Jersey创建Rest Api .
规范仅适用于特定请求:代码:200描述:登录模式的用户令牌:字符串
我的问题是生成的代码使用不应根据文档扩展的类:javax.ws.rs.core.Response .
我正在使用这种代码来构建响应:
return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK,apiToken)).build();
生成的响应如下所示:
{"code":4,"type":"ok","message":"uHN2cE7REfZz1pD17ITa"}
当我只想拥有:“uHN2cE7REfZz1pD17ITa”的身体 . 这可能使用 Jersey 吗?或者这种格式是jax-rs规范的一部分吗?
谢谢 .
2 回答
来自Swagger的
ApiResponseMessage
不会从JAX-RS扩展Response
. 检查code,您会看到ApiResponseMessage
只是一个POJO . 也就是说,你在问题中发布的那段代码就好了 .如果您只需要令牌,则可以使用:
以下为您提供相同的结果:
由于您的资源方法只生成一段文本(不是有效的JSON,除非该段文本被包装成引号),因此响应的最合适的媒体类型将是
text/plain
. 可以通过使用@Produces(MediaType.TEXT_PLAIN)
注释资源方法或在响应中设置媒体类型来实现,如下所示:或者你也可以让你的方法返回
String
:JAX-RS不需要特定格式的Request或Response for text,json,xml或html . 但是他们都必须根据他们的规格进行良好的格式化 .
你可以像这样发送像这样的文字回复
我是新手自我摇摆所以我不知道有关的回答是否可以改变 . 但是球衣方没有限制