2

私は API を設計しており、このアクションに必須の 2 つの必須パラメータがあります

それらを渡すには2つのオプションがあります

1) /servers/server_id/exte/device_id/agents/agent_id/live_monitoring

短所:長すぎる

2) /servers/server_id/live_monitoring?device_id=23&agent_id=767

欠点: これらのパラメーターは必須ではなくオプションであるため、クエリ パラメーターとして使用しないでください。

どのアプローチを使用する必要がありますか?

4

2 に答える 2

1

あなたが決めるべきです

  • このパラメーターが子リソースを定義する場合、 /parent/:id/child/:child_id url を使用する必要があります
  • このパラメータがデータのフィルタリングのみに使用される場合は、?param_1=parm_1_value を使用する必要があります。

長いURLについてアクセス権を確認する必要がない場合、または親リソースに何か他のものが属している場合は、次のいずれかを使用できます

/server/{:server_id|/exte/{:device_id}/agent/{:agent_id}/live_monitoring

また

/agent/{:agent_id}/live_monitoring

しかし、これは 2 つの異なるリソースになります

于 2013-12-07T06:36:36.313 に答える
0

クエリ パラメータ (RESTful アプローチ) を使用することをお勧めしますが、指定されていない場合はエンドポイント側で処理してエラーを返します。

たとえば、php では次のようにします。

if (!isset($_GET['device_id']))
    echo json_encode(array("error"=>"You need to provide device_id"));
if (!isset($_GET['agent_id']))
    echo json_encode(array("error"=>"You need to provide agent_id"));
于 2013-12-07T04:56:25.407 に答える