0

ASP.NETのWebAPIを使用してWebサービスを作成しています。

ApiControllerのメソッド名がURIにマッピングされているようです。

たとえば、PutProductsを使用して商品を追加します

たとえば、バッチファイルを実行するメソッドが必要な場合はどうなりますか。ExecuteProcess1();のように。

これは、ビジネス価値のある価値を返す必要はありません。クライアントが自由に発砲するだけですが、これは私のWebサービスのどこに適合しますか?メソッドは何と呼ばれるべきですか?

4

4 に答える 4

2

単純に、機能させたい任意のHTTP動詞を使用できます。ただし、REST Apiの使用方法のベストプラクティスに従うと、単純な概念は次のとおりです。

  1. GET:サーバーの状態を変更せずにRESTサービスからリソースをプルします。
  2. POST:新しいリソースを作成します。
  3. PUT:リソースを更新します。
  4. DELETE:リソースを削除します。

したがって:

  1. あなたの方法が:ExecuteProcessサーバー上に何かを作成するプロセスを実行するには、POSTを使用します。
  2. サーバー上の何かを更新する場合は、PUTを使用します。
  3. サーバー上の何かを削除する場合は、DELETEを使用します。
于 2013-02-19T07:35:11.490 に答える
1

メソッドがサーバー上の状態を変更している場合(データベースのレコードの更新、ファイルへの書き込みなど)、POSTHTTP動詞を使用する必要があります。このメソッドが変更するリソースに応じて、対応するAPIコントローラーを使用できます。

public class SomeResourceController: Controller
{
    public void Post()
    {
        ... do the processing here
    }
}

明らかに、このコントローラーの名前のSomeResourceを、操作しているリソース(Products、Orders、Peopleなど)に置き換えます。

于 2013-02-19T07:24:30.203 に答える
0

POSTまたはGETを使用できます。これは、更新しようとしているものによって異なります。ただし、この場合は、通常のMVCコントローラーとアクションを使用する必要があります。WebApiであろうとなかろうと、とにかくHTTPリクエストです。

于 2013-02-19T07:28:49.053 に答える
0

プロセスをリソースとして検討している場合は、理想的には[プロセス名を投稿していると仮定して] POSTを実行します。それ以外の場合は、プロセスを正常に実行するために必要な適切なクエリパラメーターを使用してGETを実行します。

さらに良い方法は、プロセスを開始するためのPOST、完了、進行中などのプロセスのステータスを確認するためのGETです。

于 2013-02-19T07:31:17.403 に答える