2

私は Restful の概念に不慣れで、アップロードされた画像やビデオに対して顔分析、領域検出などのさまざまなタスクを実行するために、セットアップする必要があるメディア分析サービス用のシンプルな API を設計する必要があります。

私の初期設計の概要は次のとおりです。

  • クライアントは、構成 XML ファイルを に POST しますhttp://manalysis.com/facerecognition。これにより、複数の分析セッションで使用できるプロファイルが作成されます。応答 XML には、ProfileIDこのプロファイルを参照するための が含まれています。クライアントはこの手順をスキップして、デフォルトの構成パラメーターを使用できます
  • クライアントは、分析対象のビデオ データをhttp://manalysis.com/facerecognitionPOST します (設定されている場合は、ProfileID をパラメーターとして使用します)。これにより、分析セッションが作成されます。戻り XML にはSessionID.
  • クライアントは GET を送信してhttp://manalysis.com/facerecognition/SessionID、セッションのステータスを受け取ることができます。

私は正しい軌道に乗っていますか?具体的には、次の質問があります。

  • facerecognitionURLに含める必要がありますか? Roy Fielding は、「REST API は固定のリソース名や階層を定義してはならない」と言っていますが、これはその間違いの例ですか?
  • 分析結果は、1 つの大きな XML ファイルでクライアントに返すか、各イベントが検出されたときに返すことができます。結果を返す場所を分析エンジンに伝えるにはどうすればよいですか?
  • 分析が完了したら、DELETE 呼び出しを使用してプロファイルを明示的に削除する必要がありますか?

ありがとう、

4

1 に答える 1

4

エントリ ポイントの URL を修正できます。

GET /facerecognition

<FaceRecognitionService>
  <Profiles href="/facerecognition/profiles"/>
  <AnalysisRequests href="/facerecognition/analysisrequests"/>
</FaceRecognitionService>

Profiles 要素の href 属性の URL に XML プロファイルを投稿して、新しいプロファイルを作成します。

POST /facerecognition/profiles
201 - Created
Location: /facerecognition/profile/33

新しい分析リクエストを作成して分析を開始します。セッションという用語はあまりにも一般的であり、REST の世界では多くの否定的な関連があるため、この用語の使用は避けたいと思います。

POST /facerecognition/analysisrequests?profileId=33
201 - Created
Location: /facerecognition/analysisrequest/2103

プロセスのステータスを確認する

GET /facerecognition/analysisrequest/2103

<AnalysisRequest>
   <Status>Processing</Status>
   <Cancel Method="DELETE" href="/facerecognition/analysisrequest/2103" />
</AnalysisRequest>

処理が終了すると、同じ GET が返される可能性があります

<AnalysisRequest>
   <Status>Completed</Status>
   <Results href="/facerecognition/analysisrequest/2103/results" />
</AnalysisRequest>

私が選択した特定の URL は比較的恣意的なものであり、最もわかりやすいものを使用できます。

于 2009-10-29T19:28:09.393 に答える