クライアント側のサービスに対応するもの(パターン)は何ですか?

natschz

ただのREST-APIであるサービスがあるとしましょう。このRESTAPIはいくつかのデータを提供します。

私が理解している限り、これは理にかなっていますが、このサービスとの間で送受信されるデータをDTOにカプセル化できますいくつかのビジネスオブジェクトがあるので、これは完全に理にかなっていますが、多くの場合、ある方法でそれらをシリアル化する必要があります。私が理解している限り、これは一般的に受け入れられており、この部分に関してそれを抽象化する方法を知っています。

次に、このDTOはREST-APIを介して送信されます。サーバー側に関しては、データを提供または受信するコントローラーがいくつかあるため、非常に単純に継ぎ目がありますが、(少なくとも今のところ)問題は発生していません。


だから私の質問に関して。クライアント側には、このAPIにアクセスするオブジェクトがあります。このオブジェクトには、私の実装にはhttpクライアントが含まれ(おそらく、このオブジェクトからそれらを切り離すかどうかはわかりません)、APIにアクセスするためのメソッドも含まれています。したがって、何らかの方法で、httpクライアントの使用を抽象化し、APIにアクセスします。

APIにアクセスするこのオブジェクトにどのように名前を付けますか?

私は今それらにXXXManager / XXXHandler / ...という名前を付けていますが、この名前は一般的なものとはほど遠いものであり、これには何らかの規則やパターンが必要だと思いますか?それらにXXXServiceという名前を付けることも、完全に正しくないと感じます。私にとってのサービスはサーバー側の部分のようなものであり、このオブジェクトはサービスにアクセスしているからです。


では、この種のオブジェクトにどのように名前を付けますか?この種のサービス/ APIアクセサーを処理するためのより深いパターンはありますか?

コスミンイオニシュ

ここで機能するモデル/パターンは、次のlayered architectureように機能するクラシックです。

  • HttpClientはApiClient、REST APIにアクセスするためのメソッドを公開するクラス(名前を付けましょう)をラップする必要があります。これらの各メソッドでは、httpClientを使用してHTTP呼び出しを実行します。

  • を使用し、ApiClient独自のビジネスロジックを適用するService / Managerクラスのレイヤーがあります。

  • UIコンポーネントのレイヤーがあり、サービス/マネージャーを挿入してデータを取得し、UIにレンダリングします。

このようにして、レイヤーを分離し、コードのスケーラビリティとテスト容易性の両方を向上させます。

命名は、クライアント側の実装/フレームワークのタイプによって異なります。

Webフロントエンドクライアントがある場合、その名前TransactionServiceは、このクラスが外部トランザクションサービスServiceと通信することを示しています(サーバー側のコンポーネントに関連付けられた名前ではありません)。

この命名モデルは、たとえばAngular適用されます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

nodejs + expressを使用してサーバー側とクライアント側のエラーに対処するための最良の方法は何ですか

分類Dev

クライアント側(angularjs)にデータを保存するための最良の方法は何ですか?

分類Dev

クライアント側とサーバー側の形式の間でデータを変換するための正しい用語は何ですか?

分類Dev

アプリケーションをグリッド/クラスター対応にするJavaの最適なライブラリは何ですか?

分類Dev

HTTPサービスの可用性テスト(または一般的な応答解析)にeasyXDM(またはその他のクライアント側フレームワーク)を使用することは可能ですか?

分類Dev

クライアントはどのようにサービスと対話する必要がありますか?

分類Dev

MEANスタックを使用する場合、クライアント側とサーバー側の検証は簡単にサポートされますか?

分類Dev

ワーカープロセスを介してクライアントに応答を返すためのnode.jsパターンは何ですか

分類Dev

Spring対応のJAX-WS WebサービスでクライアントIPを取得する方法

分類Dev

std :: basic_stringに対するlibc ++の16バイトのアラインメントパターンの背後にある理由は何ですか?

分類Dev

スパンタイプのクライアントとスパンタイプのサーバーの違いは何ですか?

分類Dev

マイクロサービスからの応答をクライアントに転送するにはどうすればよいですか?

分類Dev

QWC互換のWebサービスでクライアント側認証(双方向SSL)を実装するにはどうすればよいですか?

分類Dev

Gatsbyがサードパーティのライブラリをクライアント側のjsバンドルに含めるのはいつですか?

分類Dev

リアルタイム/ゼロレイテンシのビデオストリーム:使用するコーデックパラメータは何ですか?

分類Dev

ID対応プロキシの下でサービスの特定のエンドポイントにパブリックアクセスを提供することは可能ですか?

分類Dev

Windowsエクスプローラーが特定のファイルに対して表示するアイコンを決定するものは何ですか?

分類Dev

ルビーのGruntタスクランナーに相当するものは何ですか?

分類Dev

クライアント側のBlazorがサーバーからデータをフェッチする方法は何ですか?

分類Dev

セッション対応のASP.NETWebサービスを別のドメインのajaxクライアントで機能させるにはどうすればよいですか?

分類Dev

クライアントに何もインストールせずにレポートを表示するための最良の方法は何ですか

分類Dev

ステッパー値を対応するリストビューアイテムのパラメーターにバインドする-Xamarin.forms

分類Dev

エンタープライズアプリケーションの場合、入力検証はクライアント側にする必要がありますか、それともサーバー側にする必要がありますか?

分類Dev

サーバー側でPHPを作成して、データに対して何らかのアクションを実行する方法はありますか?

分類Dev

VueJS:サーバー側のバリデーターに基づいてクライアント側で電子メールとパスワードを検証する簡単な方法はありますか?

分類Dev

ビルドパイプラインビジュアルデザイナーのタスクのYAMLのコメントの目的は何ですか?

分類Dev

ac#.NETWebアプリケーションでサーバー側の処理のステータスをクライアント側に表示する方法

分類Dev

クライアント側のRESTサービスをモックする方法

分類Dev

ServiceStackクライアントを使用しているときにServiceStackサービスから401の応答を受け取るのはなぜですか

Related 関連記事

  1. 1

    nodejs + expressを使用してサーバー側とクライアント側のエラーに対処するための最良の方法は何ですか

  2. 2

    クライアント側(angularjs)にデータを保存するための最良の方法は何ですか?

  3. 3

    クライアント側とサーバー側の形式の間でデータを変換するための正しい用語は何ですか?

  4. 4

    アプリケーションをグリッド/クラスター対応にするJavaの最適なライブラリは何ですか?

  5. 5

    HTTPサービスの可用性テスト(または一般的な応答解析)にeasyXDM(またはその他のクライアント側フレームワーク)を使用することは可能ですか?

  6. 6

    クライアントはどのようにサービスと対話する必要がありますか?

  7. 7

    MEANスタックを使用する場合、クライアント側とサーバー側の検証は簡単にサポートされますか?

  8. 8

    ワーカープロセスを介してクライアントに応答を返すためのnode.jsパターンは何ですか

  9. 9

    Spring対応のJAX-WS WebサービスでクライアントIPを取得する方法

  10. 10

    std :: basic_stringに対するlibc ++の16バイトのアラインメントパターンの背後にある理由は何ですか?

  11. 11

    スパンタイプのクライアントとスパンタイプのサーバーの違いは何ですか?

  12. 12

    マイクロサービスからの応答をクライアントに転送するにはどうすればよいですか?

  13. 13

    QWC互換のWebサービスでクライアント側認証(双方向SSL)を実装するにはどうすればよいですか?

  14. 14

    Gatsbyがサードパーティのライブラリをクライアント側のjsバンドルに含めるのはいつですか?

  15. 15

    リアルタイム/ゼロレイテンシのビデオストリーム:使用するコーデックパラメータは何ですか?

  16. 16

    ID対応プロキシの下でサービスの特定のエンドポイントにパブリックアクセスを提供することは可能ですか?

  17. 17

    Windowsエクスプローラーが特定のファイルに対して表示するアイコンを決定するものは何ですか?

  18. 18

    ルビーのGruntタスクランナーに相当するものは何ですか?

  19. 19

    クライアント側のBlazorがサーバーからデータをフェッチする方法は何ですか?

  20. 20

    セッション対応のASP.NETWebサービスを別のドメインのajaxクライアントで機能させるにはどうすればよいですか?

  21. 21

    クライアントに何もインストールせずにレポートを表示するための最良の方法は何ですか

  22. 22

    ステッパー値を対応するリストビューアイテムのパラメーターにバインドする-Xamarin.forms

  23. 23

    エンタープライズアプリケーションの場合、入力検証はクライアント側にする必要がありますか、それともサーバー側にする必要がありますか?

  24. 24

    サーバー側でPHPを作成して、データに対して何らかのアクションを実行する方法はありますか?

  25. 25

    VueJS:サーバー側のバリデーターに基づいてクライアント側で電子メールとパスワードを検証する簡単な方法はありますか?

  26. 26

    ビルドパイプラインビジュアルデザイナーのタスクのYAMLのコメントの目的は何ですか?

  27. 27

    ac#.NETWebアプリケーションでサーバー側の処理のステータスをクライアント側に表示する方法

  28. 28

    クライアント側のRESTサービスをモックする方法

  29. 29

    ServiceStackクライアントを使用しているときにServiceStackサービスから401の応答を受け取るのはなぜですか

ホットタグ

アーカイブ