2017-01-18 6 views
0

私のアプリケーションで異なるオブジェクトの数を返す必要があることを考えれば、残りのAPIをどのように設計するべきかという質問があります。一般リクエストボディ(JSON)のオブジェクト識別子を受け付け、応答のオブジェクト識別子の各々のカウントを戻る単一のAPIを定義オフ複数のオブジェクトのカウントを返すためのREST APIを設計する

  1. 考えることができ、複数のアプローチがあります。欠点はAPIがあまりにも一般的で、資源がないので安心できないことです。 URLはGET /カウントのように見えます

  2. カウントが必要な各リソースに個別のapiを定義します。私は、ソフトウェア、テーブル、プロセス、タスク、ジョブなどで定義されたフィールドのカウントを返す必要があると仮定して、これらのリソースごとに個別のAPIを定義します。 GET/field/countやGET/table/countのようになります。この副作用は、私たちが必要とするリソースごとに多くのWeb APIが存在することになります。それは悪いですか?

上記のアプローチと、REST標準に準拠したAPIを設計するための新しい方法についてご意見をお寄せください。

ありがとうございます。

+0

なぜカウント用に異なるAPIを使用するのですか?カウントデータを動かすのは何ですか?それがUIのためのものなら - 一度に1つだけ?またはすべての情報はすぐになければなりませんか? – VinayVeluri

+0

私が知る限り、正確には "REST標準"ではなく、 "安らかなURL"という考えはかなり主観的な問題です。中核となるREST WSの原則は、HTTPを適切に使用し、自動プロセスがリソースやAPIを「理解する」ことを理論的に可能にする情報を提供することです(これは一般的な「安らかな」インターフェースではめったに実装されません)。言い換えれば、私は第2の変種のほうが単純です。なぜなら、より自然な意味合い(すなわち資源が差別化されている)があるからです。しかし、あなたの資源が「カウント」であれば、最初のものも機能します。 –

+0

一度にすべての情報を返すのが良いでしょう。 URLはどのように見えるでしょうか? 「リソースとしてカウントする」とはどういう意味ですか? 他の方法はありますか? –

答えて

0

これは、APIを使用しているクライアントによって異なります。

ケース1。 1つのページに多数のテーブルが必要なウェブアプリケーションの場合、両方ともカウントデータだけで何百もの呼び出しを行う必要がある設計が不良になります。 1つのAPIでクラブ数をカウントし、それをレスポンスとして送信できます。

ケース2。クライアントが個別にカウントを使用している場合は、リソースが明確に定義されている2番目のアプローチをお勧めします。第2のアプローチでは、クライアントをインテリジェントにすることが推奨されていません。

コメントに記載されているように、RESTは完全に主観的なトピックなので、すべてのデザインに複数のビューポイントが存在する可能性があります。

関連する問題