4

バックエンドで処理できるサンプルをユーザーがアップロードできる Web アプリケーションがあります。各サンプルには、異なるタイプの 1 つ以上のファイルを含めることができます。サンプルに関する情報がアップロードされると、ユーザーはすぐに、または後でサンプルを分析するように要求できます (場合によっては、分析に数時間かかることがあります)。バックエンドは REST サービスに基づいています。

バックエンドに分析を開始するように指示するにはどうすればよいですか? URL は名詞に基づく必要があるという REST 原則の 1 つ。

だから使えない

/startAnalysis?sampleId=55&startTime=now

分析をキャンセルするとどうなりますか?

/cancelAnalysis?sampleId=57
4

2 に答える 2

7

法則:

実際には、リソースではない応答を送信する API 呼び出しを持つことが「許可」されています。それらはアクションと呼ばれ、RESTアクションを扱うときは名詞ではなく動詞を使用する必要があります。

たとえば、100 ユーロを中国円に換算する REST API は次のとおりです。

`/convert?from=EUR&to=CNY&amount=100`

startAnalysisしたがって、REST アクションcancelAnalysisは有効です。

apigeeによるWeb API Design (無料の eBook)を読むことをお勧めします。これは、REST API 設計の簡潔な紹介です。また、RESTアクションについても説明します。

練習:

「分析の開始」が分析リソースの状態の一部であると想像することもできます。また、アクションを使用する代わりに、PATCH または PUT を使用して分析リソースの状態を更新できます。

そして、より精巧な解決策は次のようになります。

  1. サンプルリソースを用意します: /sample
  2. 分析リソースを用意します: /analysis
  3. POST または PUT でサンプルリソースを作成した後、作成したサンプルリソースに分析リソースをPOST で作成できます: /sample/1234/analysis
  4. サンプル分析を開始するには (いつ分析を開始するかについての情報を投稿することもできます)。
  5. サンプル分析をキャンセルする場合は、以前に作成した分析リソースを削除できます: /sample/1234/analysis/abcde
于 2013-05-16T10:15:45.733 に答える
0

あなたが言及したRESTの原則は、実際にはGET urisにのみ使用されると思います。GET uris は名詞である必要があります。おそらくパラメーターを使用してリソースを要求しているだけだからです。PUT または POST uri の場合は、状態の変化を引き起こすため、代わりに動詞にする必要があります。

于 2013-05-15T18:01:07.873 に答える