0

私はAPIルーティングにかなり新しく、この問題を回避しようとしています。Web API 2ルーティング

キャンディーバーのリストがあるとします。

私は次のTODOたい:

ListAllCandyBars  --- api/Candy 
ListCandyBar via ID --- api/Candy/10 
ListAllChocBars  --- api/Candy/Choc 

したがって、我々は3が

デフォルトのGet 取得ID アクションで、あなたがルートとクラスを設定することを期待する方法

を取得GETS持っています。私はListAllCandyBarsとListCandyBarのどちらかをIDまたはListAllCandyBarsとListAllChocBarsを使って取得できるように見えます。

これは私の現在のルートです:

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

このようなものを使用する:

public class DefaultController : ApiController 
    { 
     // GET: api/Default 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 

     // GET: api/Default/5 
     public string Get(int id) 
     { 
      return "value"; 
     } 

     // GET: api/Default/ListSub 
     public string ListSub(int id) 
     { 
      return "value"; 
     } 

     // POST: api/Default 
     public void Post([FromBody]string value) 
     { 
     } 

     // PUT: api/Default/5 
     public void Put(int id, [FromBody]string value) 
     { 
     } 

     // DELETE: api/Default/5 
     public void Delete(int id) 
     { 
     } 
    } 

はあなたから聞くと、この小さな問題を過ぎて取得を楽しみにしています。 PSそれはコントローラの私の理解かもしれません。 ListAllChocBars用に別のコントローラを用意する必要がありますか?

よろしく

ジェームズ

+4

configでマップする代わりに経路属性を使用 –

+0

これは、おかげさまで感謝します。 – WJProctor

答えて

0

私は複雑と本当によく働いた属性のみルートのために行くを超えていました。

関連する問題