0

アイテムが見つからないときにカスタム エラー メッセージを送信しようとしています。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()));
}
4

1 に答える 1