大佬教程收集整理的这篇文章主要介绍了如何返回 Uni<Object> 或 Uni<Void>?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@Route(...)
public Uni<?> call() {
return Uni.createFrom().voIDItem();
}
抛出一个 NullPointerException:Uni 返回的值无效:null
不过
@Route(...)
public Uni<VoID> call() {
return Uni.createFrom().voIDItem();
}
工作正常并以 http 204 响应
我如何通过相同的方法获得 Uni
您不能直接这样做,因为类型不同。 我建议使用 RESTEasy Reactive 并执行以下操作:
@GET
public Uni<Response> call() {
Uni<AnyObject> uni = .... ;
return uni
.onItem().transform(res -> {
if (res == null) return Response.noContent().build();
return Response.ok(res).build();
});
}
通过发出 Response
对象,您可以自定义响应状态。
如果您想继续使用响应式路由,另一个解决方案是不返回 Uni
,而是获取 RoutIngContext
作为参数:
@Route(...)
public void call(RoutIngContext rC) {
httpServerResponse response = rc.response();
Uni<AnyObject> uni = .... ;
return uni
.subscribe().with(res -> {
if (res == null) response.setStatus(204).end();
else response.setStatus(200).end(res);
},failure -> rc.fail(failurE)); // will produce a 500.
}
以上是大佬教程为你收集整理的如何返回 Uni<Object> 或 Uni<Void>?全部内容,希望文章能够帮你解决如何返回 Uni<Object> 或 Uni<Void>?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。