gpt4 book ai didi

java - jax-rs 如何在 REST 服务器中实现 Webhook 监听器?

转载 作者:太空宇宙 更新时间:2023-11-04 10:07:45 24 4
gpt4 key购买 nike

我正在开发一个 Java 迁移项目,该项目将 BLOB 文件从表迁移到 minio 存储服务器。它的运行方式是客户端从源表中读取数据并将某些数据作为 POST 值发送到 REST 服务器。然后将这些值写入新表并返回上传链接,通过该链接将 BLOB(转换为文件)上传到 minio 服务器。这是资源类的 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;
}

当客户端调用时,此方法返回上传链接并在上传链接上使用 PUT,然后客户端将此文件上传到 minio 服务器。我现在想做的是在服务器中实现一个 webhook 监听器,该监听器将监听每次成功上传时 minio 服务器发布的事件。我怎样才能实现这个目标?我是否需要创建一个 API 来充当 minio 配置的端点?我真的很感激任何有关这方面的建议/帮助。

最佳答案

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

@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 接收 NotificationConfiguration 数据类型的 Webhook 通知,我只是使用 Jackson 将其转换为 JSON 并将其作为实体返回。 JSON 数据包含事件信息。

关于java - jax-rs 如何在 REST 服务器中实现 Webhook 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52740779/

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