客户端服务的对应(模式)是什么?
What is the counterpart (pattern) to services on the client side?
假设我有一个服务,它只是一个 REST-API。其余 api 提供了一些数据。
据我所知,这是有道理的,我可以将从该服务发送和发送到该服务的数据封装到 DTO's 中。这完全是有道理的,因为您将拥有一些业务对象,但通常您需要以某种方式序列化它们。据我所知,这将是一种普遍接受和知道的关于这部分的抽象方法。
然后通过 REST-API 发送此 DTO。关于服务器端,它接缝非常直接,有一些控制器提供数据或接收数据,我在那里没有看到任何问题(至少现在)。
所以关于我的问题。 在客户端有对象,将访问这个 API,这个对象,在我的实现中包含一个 http 客户端(不是当然,也许我将它们与这个对象分离)并且它还包含访问 api 的方法。因此,以某种方式,抽象出 http 客户端的使用并访问 API。
如何命名访问 API 的对象?
我现在将它们命名为 XXXManager/XXXHandler/...,但这个名称感觉太通用了,我觉得必须有一些约定或模式吗?把它们命名为XXXService也不觉得不完全对,因为服务对我来说就像是服务器端的部分,这个对象就是访问服务。
那么你会如何命名这种对象,是否有一些更深层次的模式来处理这种 service/api 访问器?
可以在这里工作的 model/pattern 是一个 classical layered architecture
,它的工作方式如下:
HttpClient 应该包裹在 class(让我们将其命名为 ApiClient
),它公开访问 REST API 的方法。在每个方法中,httpClient 都用于执行 HTTP 调用。
有一层 Service/Manager classes 使用 ApiClient
并且还应用了它们自己的业务逻辑。
有一层 UI 组件,它还注入 Services/Managers 来抓取数据并在 UI 上渲染。
通过这种方式,您解耦了层,从而提高了代码的可扩展性和可测试性。
命名在某种程度上取决于您拥有的客户端 implementation/framework 的类型。
如果你有一个网络前端客户端,那么名称 TransactionService
会告诉我这个 class 与一些外部事务服务对话(Service
不是绑定到的命名服务器端组件)。
例如,此命名模型适用于 Angular。
Patterns of Enterprise Application Architecture 建议使用 Gateway,但我会选择 Client。
假设我有一个服务,它只是一个 REST-API。其余 api 提供了一些数据。
据我所知,这是有道理的,我可以将从该服务发送和发送到该服务的数据封装到 DTO's 中。这完全是有道理的,因为您将拥有一些业务对象,但通常您需要以某种方式序列化它们。据我所知,这将是一种普遍接受和知道的关于这部分的抽象方法。
然后通过 REST-API 发送此 DTO。关于服务器端,它接缝非常直接,有一些控制器提供数据或接收数据,我在那里没有看到任何问题(至少现在)。
所以关于我的问题。 在客户端有对象,将访问这个 API,这个对象,在我的实现中包含一个 http 客户端(不是当然,也许我将它们与这个对象分离)并且它还包含访问 api 的方法。因此,以某种方式,抽象出 http 客户端的使用并访问 API。
如何命名访问 API 的对象?
我现在将它们命名为 XXXManager/XXXHandler/...,但这个名称感觉太通用了,我觉得必须有一些约定或模式吗?把它们命名为XXXService也不觉得不完全对,因为服务对我来说就像是服务器端的部分,这个对象就是访问服务。
那么你会如何命名这种对象,是否有一些更深层次的模式来处理这种 service/api 访问器?
可以在这里工作的 model/pattern 是一个 classical layered architecture
,它的工作方式如下:
HttpClient 应该包裹在 class(让我们将其命名为
ApiClient
),它公开访问 REST API 的方法。在每个方法中,httpClient 都用于执行 HTTP 调用。有一层 Service/Manager classes 使用
ApiClient
并且还应用了它们自己的业务逻辑。有一层 UI 组件,它还注入 Services/Managers 来抓取数据并在 UI 上渲染。
通过这种方式,您解耦了层,从而提高了代码的可扩展性和可测试性。
命名在某种程度上取决于您拥有的客户端 implementation/framework 的类型。
如果你有一个网络前端客户端,那么名称 TransactionService
会告诉我这个 class 与一些外部事务服务对话(Service
不是绑定到的命名服务器端组件)。
例如,此命名模型适用于 Angular。
Patterns of Enterprise Application Architecture 建议使用 Gateway,但我会选择 Client。