gpt4 book ai didi

jersey - 如何使用 Swagger 处理异常?

转载 作者:行者123 更新时间:2023-12-05 05:23:25 24 4
gpt4 key购买 nike

我正在使用 swagger (1.5) 和带有 Jersey (1.13) 的 JAX-rs 构建一些测试 API,并且我正在尝试实现异常处理。例如,从我的数据库(Elasticsearch)接收结果时,我有以下代码

@POST
@Path("/category")
@ApiOperation(value="returns products")
@Produces({ "application/json" })
public Response getPostCategories(
@ApiParam(value="keyphrase, required=true) @QueryParam("keyphrase") String keyphrase,
@ApiParam(value="category) @QueryParam("category") String category,
@Context SecurityContext securityContext)
throws WebApplicationException {
SearchRequest searchRequest = new SearchRequest();
searchRequest.setKeyphrase(keyphrase);
searchRequest.setCategory(category);

SearchCategoryQuery categoryQuery = new SearchCategoryQuery();
String searchResponse = null;
try
{
searchResponse = categoryQuery.searchCategory(searchRequest);
}
catch (WebApplicationException ex)
{
throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("results no found").type(javax.ws.rs.core.MediaType.APPLICATION_JSON).build());
}
return Response.ok(searchResponse).build();
}

然而,在输出中 swagger 总是打印相同的响应 enter image description here

我需要的是接收我在每个异常中指定的错误消息。有什么想法吗?

最佳答案

Swagger 本身还不能处理应用程序异常。

您将需要创建自定义异常类(扩展 java.lang.exception)或使用现有的异常类(例如您已经在使用的 WebApplicationException)和使 API 定义抛出这些错误。所以基本上你需要使用 Java/J2EE/Jersey 来抛出适当的异常。 Swagger UI 将为您显示它们。

检查 this有关使用 Spring 进行 REST 异常处理的详细信息的链接。

关于jersey - 如何使用 Swagger 处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37808973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com