2017-02-14 29 views
0

私が取得しています理由はわかりません(ポストマンを使用して)私のAPIASP。 NET Web APIを2問題 - 要求されたリソースは、HTTPメソッドをサポートしていません「GET」

http://localhost:53840/api/v1/MessageLog/SomeStuff/3に次のGET呼び出しで「404が見つかりません」

次のように

[System.Web.Http.HttpGet] 
    public string SomeStuff(int s) 
    {    
     return "Received input !";    
    } 

WebApiConfigクラスの登録方法は、唯一のルートを持って次のようにコントローラ内の方法がある:

  config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/v1/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

しかし、私は

[System.Web.Http.HttpGet] 
    public string SomeStuff() 
    {    
     return "Received input !";    
    } 

にコードを変更するコールhttp://localhost:53840/api/v1/LogMessage/SomeStuff作品とPOSTMANは「受け取った入力を!」が表示さレスポンス本文の文字列。

int/stringなどで渡すための特定の呼び出し規約がありますか(私は[FromUri]を大いに成功させようとしました)?私はJObjectを取る制御された別のPOSTメソッドを持っており、それは完全に正常に動作するようです。

答えて

1

それはのようなものでなければなりません:

[System.Web.Http.HttpGet] 
public string SomeStuff(int id) 
{    
    return "Received input !";    
} 

のWeb APIは、名前でパラメータと一致します。ルートテンプレートでは、{id}と定義されているため、アクションパラメータ名が一致する必要があります。

2番目の理由は、IDがオプションでアクションがテンプレートと一致するためです。

+0

はい、ありがとうございます。それはうまくいった。 – user1554876

関連する問題