找不到项目时尝试发送自定义错误消息。ifNotNull
大小写正确生成所需的响应。但ifNull
不生成所需的响应(始终响应为空,状态码为 200)
AuthorService.java
public Uni<Author> findByName(String name) {
return authorRepo.findByName(name);
}
资源.java
@GET
@Path("/{name}")
public Uni<Response> get(@PathParam("name") String name) {
return authorService.findByName(name)
.onItem().ifNotNull().transform(t -> new ResponseBodyDTO("success", true, t))
.onItem().transform(t -> Response.ok(t).build())
.onItem().ifNull().switchTo(() -> Uni.createFrom().item(new ResponseBodyDTO("fail", false, null))
.onItem().transform(t -> Response.status(Response.Status.NOT_FOUND).entity(t).build()));
}