jax-rs 如何在 REST 服务器中实现 webhook 侦听器?

jax-rs how can I implement a webhook listener in REST server?

我正在 Java 进行迁移项目,将 BLOB 文件从 table 迁移到 minio 存储服务器。它以客户端从源 table 读取并将某些数据作为 POST 值发送到 REST 服务器的方式运行。然后将这些值写入新的 table 并返回上传链接,BLOB(转换为文件)通过该链接上传到 minio 服务器。这是来自资源 class

的 POST 处理程序
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public UploadLink postFile(@Context UriInfo uriInfo, Attachment attachment) throws Exception {
    Integer id = attachmentService.createNew(attachment);
    UriBuilder builder = uriInfo.getAbsolutePathBuilder();
    String uploadLinkForFile = minioFileServer.getUploadLinkForFile("test", attachment.getUuid(), attachment.getName());
    UploadLink uploadLink = new UploadLink();
    uploadLink.setUploadLink(uploadLinkForFile);
    uploadLink.setLocation(builder.path(Integer.toString(id)).build());
    return uploadLink;
}

当客户端调用时,此方法 returns 上传链接并在上传链接上使用 PUT,然后客户端将此文件上传到 minio 服务器。我现在想做的是在服务器中实现一个 webhook 侦听器,它会在每次成功上传时侦听 minio 服务器发布的事件。我怎样才能做到这一点?我是否需要创建一个 API 作为 minio 配置的端点?我真的很感激任何形式的 advice/help。

事实证明 Minio 具有 webhook 功能,可用于将事件通知发送到端点。 HTTP POST 用于发送这些通知。所以,我为解决这个问题所做的是 - 我创建了一个 API 来接受 POST 这样的请求。

@POST
@Path("webhook")
@Produces(MediaType.APPLICATION_JSON)
public Response webhookListener(NotificationConfiguration nc) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    String jsonString = mapper.writeValueAsString(nc);        
    return Response.ok().entity(jsonString).build();
}

所以,基本上这个 API 所做的是,它从 Minio 接收 webhook 通知,它是 NotificationConfiguration 数据类型,我只是使用 Jackson 将其转换为 JSON 和将其作为实体返回。 JSON 数据包含事件信息。