В проекте веб-API вы не можете настроить маршрутизацию по-разному, как:
config.Routes.MapHttpRoute(
name: "Routes",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
И для достижения URL-адреса («http://localhost/CatCatcher/Cat/3») вы можете установить префикс маршрута на контроллер и действие. Вот пример:
[RoutePrefix("CatCatcher")]
public class CatCatcherController : ApiController
{
[HttpGet]
[Route("Cat")]
public object Cat(int Id){
//Do something
}
}
И если вы хотите идти по исполнению до удара Action затем позволяет следовать примеру, в котором я обеспечить API с IP/Domain здесь:
public class AuthorizeIPAddressAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext filterContext)
{
//Even you can do here what you want
//Get users IP Address
string ipAddress = HttpContext.Current.Request.UserHostAddress;
if (!IsIpAddressValid(ipAddress.Trim()))//check allow ip
{
//Send back a HTTP Status code of 403 Forbidden
filterContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.NotFound);
}
base.OnActionExecuting(filterContext);
}
После добавления этого класса в проекте вы просто должны сделать это на контроллере:
[AuthorizeIPAddress]
[RoutePrefix("CatCatcher")]
public class CatCatcherController : ApiController
{
[HttpGet]
[Route("Cat")]
public object Cat(int Id){
//Do something
}
}
Надеюсь, это поможет ..
у вас есть другой маршрут конфигурации? Там мы обычно 'RouteConfig.cs', где настроены обычные маршруты MVC. Web api обычно регистрируется с помощью 'api/{...}', чтобы избежать конфликта с зарегистрированными там маршрутами. (Все они попадают в ту же таблицу маршрутов). Убедитесь, что ваши маршруты MVC не приводят к сбою маршрутов веб-Api. – Nkosi
Других маршрутов в конфигурации нет. Я пытаюсь маршрутизировать API, поэтому, возможно, мне нужно изменить? – NibblyPig
Показать контроллер 'IncomingRequest'. убедитесь, что он наследуется от 'ApiController', а не' Controller'. Вы можете смешивать свою конфигурацию. Также покажите полные файлы для 'WebApiConfig.cs' и' RouteConfig.cs', если они существуют – Nkosi