2017-10-31 6 views
0

{action}がASP.NET Web APIプロジェクトのデフォルトルーティングテンプレートに含まれていないのはなぜですか?公式のドキュメントに示されているように、ウェブAPIは、通常の慣例は、「{アクションを}」を省略することであるデフォルトのルーティングテンプレート(ASP.NET Web API)に{action}が存在しない理由

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

答えて

1

のWeb APIはrestfulアピするデザインで、安らかなAPIを作成する際に最も重要なことの一つは、URLとHTTPメソッドとの正しい関係を持つことです。 エンティティ(コントローラ)ごとに、エンティティレベルですべてが動作しているGET、POST、PUTおよびDELETEメソッドが必要です。

UserControllerという名前のコントローラを作成すると、エンティティのUserがhttpレベルで公開されます。 コントローラは、デフォルトでは、これらの要求

GET api/user 
GET api/user/id 
POST api/user 
PUT api/user 
PUT api/user/id 
DELETE api/user 
DELETE api/user/id 

の大部分を処理することができるはず安らかな原理を気力するには、Web APIは、これらの安らかな要求をサポートするために設計されており、デフォルトルートのみ"api/{controller}/{id}"に設定されている理由は、最も可能性がありますされますそれはapiの安らかな実装をサポートするための最小限の要件です。

+0

あなたの返信は非常に合理的で論理的であると思いますが、私はそれに投票しましたが、私はMicrosoftのチームから推論するまで「答え」として受け入れることはできません。 – user1451111

関連する問題