通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点 [英] Connect MyRequestService to Reactive REST GET endpoint with Quarkus/Mutiny through callback method

查看:0
本文介绍了通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

上周,我对Mutiny库进行了第一轮👊✨💪测试,因为我的Quarkus项目中需要一个ReactiveREST端点。这并不像听起来那么明显,所以我想我将在Quarkus中分享我对Mutiny库的新见解;

Quarkusdocumentation将Mutiny库指定为反应性用例的首选库;

例如;

最突出的是,大多数Mutiny示例都使用新的字符串作为示例。 因此,我的问题仍然存在;

如何在Quarkus中连接MyRequestService和Mutiny

如下所示:

Uni<MyRequestService> lMyRequestServiceUni = Uni.createFrom().item( ... ) ...

MyRequestService已使用回调结构,所以我尝试了对Mutiny使用回调方法。

推荐答案

Mutinycallback-based APIs集成时使用Emitter

https://smallrye.io/smallrye-mutiny/getting-started/creating-unis

因此MyRequestService或底层回调对象需要实现UniEmitterConsumer。 但首先,要成为Reactive,我的旧阻塞REST终结点需要返回Uni;MyJsonResult;而不是MyJsonResult;

ServiceResource只是将调用转发给服务。

MyRequestService创建一个MyJsonResultConsumer并将其传递给Mutiny发射器。生成的Uni;MyJsonResult&>将返回给ServiceResource。

最后,MyJsonResultConsumer是实际的回调对象;方法Ready()在UniEmitter上调用Complete(),结束对Mutiny的回调。

请记住,Mutiny需要向UniEmitter提供一个调用(回调)以接受(),因此您应该检查空指针(或使用Semaphoreid)。👮🏻‍♂️

这篇关于通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆