-1

クライアント側で特定の形式 (例: ) のデータを期待するライブラリを使用している場合、サーバーはクライアントが要求した正確な構造でデータを処理するか、汎用データ (例: ) を[{id: 1, name: "Jack", available: true}]送り返す必要があります。[{userId: 1, username: "Jack", isUserAvailable: true}]クライアント側のライブラリが将来変更された場合に密結合と破損を避けるために、クライアント側

4

2 に答える 2

1

クライアントは、サーバーが提供するインターフェイスに依存する必要があります。このインターフェイスは、サーバーとクライアントが同意する契約と見なすことができます。これは、提供されるデータ構造を暗示しており、結合の形式です。したがって、API を明確に記述/定義し、それらのバージョン管理と廃止に関するポリシーを用意する必要があります。

したがって、これは一見密結合のように見えるかもしれませんが、そうである必要はありません。クライアントとサーバーは、同じ言語/データ表現を使用する場合と使用しない場合があります。この例では、クライアントは JSON を使用して自由に実行できます。すべてのデータを使用することも、単一の属性のみを使用することもできます。そのすべては、サーバーには関係ありません。同様に、クライアントは、サーバーがこの JSON 文字列をどのように作成したかを気にしません。インターフェイスのみを記述するサービス コントラクトと、結果としてサーバー/クライアントの実装の自由度が増すため、結合は緩い (十分) と見なすことができます。

于 2018-08-17T08:30:19.530 に答える