使用 Java Web 客户端使用 REST 服务的设计模式



我需要按顺序使用一些REST服务,并将它们解析为Java对象,并将这些Java对象持久保存在数据库中。

我编写了一个 Web 客户端,它发送请求,解析响应并在 RootNodeObject 中返回响应。

public clas RootNodeObject {
private Auth;
private DeviceDetails;
private HostDetails;
}

当我发送webclient.get("/Auth")时,它返回RootNodeObject,其中包含填充的Auth对象。 当我发送webclient.get("/deviceDetails")时,它返回RootNodeObject,其中包含填充的DeviceDetails对象。

以类似的方式,我必须发送 8-10 个请求才能获得所有必需的数据。

之后,我编写了一个映射器类,它将Auth和DeviceDetails对象转换为Hibernate实体类并将其保留在数据库中。

这看起来非常刚性的设计。上述代码的任何设计模式或我可以使用的任何更好的设计?

ReactiveX正是您所需要的。以下是他们网站上的文字。它们还具有各种编程语言的实现

您可以使用合并运算符将各种可观察量的结果合并为一个。您可以在此处找到一个例子

ReactiveX 是一个库,用于通过>使用可观察序列来编写异步和基于事件的程序。

它扩展了观察者模式以支持数据和/或事件序列,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对低级线程、同步、线程安全、并发数据结构和非阻塞 I/O 等问题的关注。

为什么要使用可观察量?

ReactiveX 可观察模型允许您使用与数组等数据项集合相同的简单、可组合的操作来处理异步事件流。它将您从纠结的回调网络中解放出来,从而使您的代码更具可读性,不易出现错误。

最新更新