2017-03-02 7 views
1

RESTFUL APIを作成します。残りのAPIでタスクを実行するリクエスト

私はタスクプランを持つリソースを持っています。

クライアントは、タスクプランメトリックの1つでベンチマークなどのタスクを実行するようにサーバーに要求する必要があります。

このリクエストを使用する必要があります。 POSTまたはGET?

とは何ですか?

/api/plans/<id>/run or /api/plans/run/<id> ? 
+2

で使用しなければならないので、

実行計画のサブコレクションではありません。 'POST'リクエストのセマンティクスは完全にあなた次第ですので、それを使ってサーバにプロセストリガを発行することができます。処理に時間がかかる場合は、 'Location' HTTPレスポンスヘッダを含む' 202 Accepted'レスポンスコードを返すようにしてください。リソースは、クライアントがプロセスの現在の状態をより詳細に知ることができます。ベスト・プラクティスは動詞をRPCのようなセマンティクスを伝えるリソース名として避けることを推奨しますが、実際のRESTfulサービス(およびクライアント)はURIの形式にはあまり気にしません –

答えて

0

GETリクエストは、データの読み取り/取得に使用されます。 POST要求はデータを作成するためのものです。

ユーザーがベンチマーク実行の結果を確認する必要がある場合は、プランのベンチマーク方法の結果を返すGET要求を使用します。

単一のレコードを取得する場合、URLの規則は/things/:idなので、api/plans/:id/runをお勧めします。 runの名前をbenchmarkmetricsなどのようにわかりやすい名前に変更することをおすすめします。

0

私はPOSTのために行く予定なので、特定のプランのアクションですので、URLはplans/id?action=runでなければなりません。 GET`は冪等で安全な操作です `としてクエリparamは、一般的な使用` POST`ではこの場合

+0

リソースのアクションでPOSTを使用するのはRESTful標準? –

関連する問題