2016-09-30 4 views
0

WEB APIを使用してすべてのデータと単一のデータを取得しようとしています。私は単一のデータを取得するときに私はURLに "疑問符"を入れなければならないが、私はそれを望んでいない。どうすればこのことを避けることができますか?WEB APIのIDに疑問符のないAPI URLを設定する方法

?C_ID = part;を完全に削除したいですか?私はあなたはすでにそれを持っている単一候補 http://localhost:xxxx/api/Candidates/1

namespace JobPortalX2_Server 
{ 
    public static class WebApiConfig 
    { 

     public static void Register(HttpConfiguration config) 
     { 
      config.MapHttpAttributeRoutes(); 

      //CORS 
      config.EnableCors(); 

      config.Routes.MapHttpRoute(
       name: "GetCandidatesRoute", 
       routeTemplate: "api/{controller}" 
      ); 

      config.Routes.MapHttpRoute(
       name: "GetCandidateRoute", 
       routeTemplate: "api/{controller}/{id}" 
      ); 

     } 
    } 
} 
+0

web apiコントローラクラスで 'method overloading'を使用する必要があります。 –

答えて

2

を取得するには、このようなURLを持ちたい http://localhost:xxxx/api/Candidates/?C_ID=1

。 2番目のルートで処理されます。あなたは、Web API 2を使用し、パラメータ名としてC_IDを使用する場合は、RouteAttributeを使用することができます

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

- それとも、ただ1次のデフォルトで両方のルートを置き換えることができます。

[RoutePrefix("api/candidates")] 
public class CandidatesController : ApiController 
{ 
    [HttpGet] 
    [Route("{c_id:int}")] 
    public async Task<IHttpActionResult> Get(int c_id) 
    { 
     ... 
    } 
} 
関連する問題