2016-12-13 9 views
0

WebApiのルート規則に従うべきですか?私はapi/{controller}/{action}/{id}WebApiのルートコンベンションに従うべきですか?

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

に私のデフォルトルートの設定(api/{controller}/{id})を変更したい

は私のルートに{action}プレースホルダーを追加することがOKか?

賛否両論はありますか?デフォルトのWebApi経路は?

答えて

-1

はい、ルートにアクション名を付けて使用することができます。 はまず、あなたは、デフォルトルートの前にこれを追加するか、そうでなければ動作しません必ずごWebApiConfig.cs

routes.MapHttpRoute(
name: "ActionApi", 
routeTemplate: "api/{controller}/{action}/{id}", 
defaults: new { id = RouteParameter.Optional } 
); 

に以下を追加する必要があります。 その後here

からアクション名によるルーティングを確認する詳細情報についてはその後、あなたのルートは/API /製品/サムネイルになり、あなたのコントローラメソッドで

public class ProductsController : ApiController 
{ 
    [HttpGet] 
    [ActionName("Thumbnail")] 
    public HttpResponseMessage GetThumbnailImage(int id); 
} 

ACTIONNAME属性を追加これがあなたを助けた場合は、必ず答えとしてマークしてください:)

カスタムアクション名を使用すると、あなたのコントローラのHTTP動詞を超えて、APIで利用可能なカスタマイズされたメソッドを持っています

関連する問題