2

この質問に対する答えを SO の他の場所で探しましたが、見つかりません。

リモートマシンでプロセスを部分的に開始するMVC Web APIを構築しています。現時点では、「blah.com/Process」への POST により、一部の初期化データがデータベースに保存され、Windows サービスに操作を開始するように指示されます。「blah.com/Process/{Id}」への GET リクエストは、プロセスの現在の進行状況を取得します。

これら 2 つのコントローラー アクションは、2 つの異なるモデルを使用します。POST はパラメーター情報を含むモデルを受け入れますが、GET は (進行状況を報告するために使用され、パラメーターについてはあまり気にすることができなかったため) 返されません。これは RESTful 設計に違反していますか? 2 つの異なる URL を使用する必要がありますか?それとも REST に違反しますか? 私が理解しているように、転送されるデータはプロセスの現在の状態を表す必要があります。私の考えでは、どちらの場合もそうです。

編集:回答ありがとうございます。私は今、自分のアプローチでより安全だと感じています。:)

4

3 に答える 3

3

ウィキペディアによると

REST制約に準拠することは、一般に「RESTful」と呼ばれます。サービスが必要な制約のいずれかに違反している場合、それを厳密にRESTfulと見なすことはできません。

複雑な詳細に立ち入ることなく、これらの制約は次のとおりです。

  • クライアントサーバー
  • ステートレス
  • キャッシュ可能
  • 階層化システム
  • オンデマンドのコード(オプション)
  • 統一されたインターフェース

あなたの説明のどちらの場合も、これらの原則に違反していません。APIの利用者にとって最も意味のあることを行い、全体を可能な限りシンプルに保ちます。

于 2013-02-06T15:21:57.773 に答える
1

他の人が指摘しているように、REST の違反ではありません。しかし、たとえそれが機能していたとしても、それがあなたのデザインにとって理にかなっている限り、それでも問題ないかもしれません.

于 2013-02-06T17:05:15.990 に答える
0

GET メソッドと POST メソッドが同じ URL に結合されているのを見たことがあります。そうすることは許容され、RESTful 設計に違反するものではありません。

于 2013-02-06T15:18:41.500 に答える