web-dev-qa-db-ja.com

RESTfulクライアントアプリを実装する最も効率的な方法は何ですか?

いくつかの要因に基づいていくつかの製品をランク付けするWebアプリケーションに取り組んでいます。

ユーザーは、検索クエリを5つの休息のあるWebサービスに送信します。5つのWebサービスは、順番に応答をJSON形式で送信し、時にはXML形式で送信します(Webサービスは異なるため、応答は同じように構成されていません t)。すべてを特別なjson構造に再フォーマットして使用できるようにしました。

現在の問題は、このアプリを実装する方法がわからないことです。これは、基本的にRESTクライアントが他のWebサービスに干渉していることです。

サーバーアプローチ:

私が最初に考えた方法は、サーバー側の実装(pythonとフラスコを使用)を使用してHTTP要求を送信し、応答を受信することです"ReEncode"すべて構造化されたjson形式に変換し、それをレンダリングするクライアントに送り返します。

このアプローチを使用して機能する手順は次のとおりです。

  1. クライアントが検索クエリを含むリクエストをサーバーに送信する
  2. サーバーがリクエストを再フォーマットして、各WebサービスのHTTPリクエストを作成します
  3. サーバーはこれらのRESTfulサービスにリクエストを送信し、各サーバーからHTTP応答を返します。
  4. サーバーはこれらの応答を私が作成した特別なデータ構造にデコードし、すべてのランキングと処理ロジックを適用します。
  5. サーバーはすべてをjson形式に再エンコードし、クライアントに送り返します。
  6. クライアントブラウザはjson応答を再解析してレンダリングします。

クライアント側のアプローチ:

このアプリを作成する2番目の方法は、クライアント側ですべてのHTTP通信、データ処理、解析、レンダリングを実行することです。アプリはWebサービスと通信する必要があるため、実際にはクライアント側には何もありません。

このアプローチの手順は次のとおりです。

  1. クライアントは検索キーワードを入力します(検索クエリ)
  2. ブラウザクライアントはhttpリクエストを作成し(検索クエリとAPIキーを使用)、それを直接Webサービスに送信します。
  3. クライアントブラウザーが応答をデコードし(json/xml形式)、使用する必要があるネイティブオブジェクトを作成します。
  4. デコードされたデータを処理する(ランク付け、フィルタリング...)
  5. すべてを構造化されたjson形式に再エンコードする
  6. すべてをレンダリングします。

このアプローチでは、JSと一部のフレームワークのみを使用します。

質問どちらの方法が設定がより効率的で迅速ですか?

考慮すべきこと:

  • pythonおよびjsの知識が限られています。
  • これはパートタイムのプロジェクトです。
  • 1か月以内に終了する必要があります。
  • それが私の最初のWebアプリケーションです(ただし、私の最初のプログラミングプロジェクトではありません。以前にソフトウェアとゲームを作成しました)。
5
DeltaWeb

1つの層(クライアント)のみを開発する必要があるため、クライアント側のアプローチは開発時間が最短になります。サーバー側のアプローチに従う場合は、クライアントを開発する必要がありますandサーバー。コードの行数はそれほど変わらないかもしれませんが、クライアント側のアプローチでは、1つのプログラムと1つのプログラミング言語を処理するだけで済みます。スレッドが1つしかないため、デバッグも簡単になります。

私があなたを正しく理解しているなら、あなたはあなたの選択の長期的な影響に関心がないので、私の回答ではそれを考慮しません。

1