我有一个Asp.Net webApi控制器,如下所示:
[RoutePrefix("business/api/v1")]
public class BusinessController : ApiController
{
[Route("GetDetails/{id}")]
public HttpResponseMessage Get(string id)
{
// get business details code.
}
}
无论如何客户端可以使用id null命中这个API吗?
答案 0 :(得分:3)
这取决于您在App_Start / WebApiConfig.cs中的Web API路由配置。
如果路线如下:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "business/api/v1/GetDetails/{id}",
defaults: new { id = RouteParameter.Optional }
);
然后用户可以使用资源http://localhost.business/api/v1/GetDetails
或http://localhost.business/api/v1/GetDetails/1
。
当您移除defaults: new { id = RouteParameter.Optional }
时,用户必须传递id
,否则将返回404
答案 1 :(得分:0)
请尝试:
[RoutePrefix("business/api/v1")]
public class BusinessController : ApiController
{
[Route("GetDetails/{id:int?}")]
public HttpResponseMessage Get(int id)
{
// get business details code.
}
}