Я пытаюсь что-то на веб-сайте Api. Сначала я поделюсь WebApiConfigAsp.Net Mvc Web Api Routing 404
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiCategory",
routeTemplate: "api/tales/{category}/{id}",
defaults: new { controller = "Tales", id = RouteParameter.Optional},
constraints: new { category = @"^[a-z]+$" }
);
Я прочитал эту issue и исправить свой файл apiconfig. Моя цель, как это:
- Список GetAllTales() = апи/сказки/-> 404 Не найдено
- Tale GetTale (интермедиат идентификатор) = апи/сказки/1 -> Ok!
- Список GetAllTalesByCategory (string categoryName) = api/tales/kids -> Хорошо!
- Сказка GetTalesByCategoryAndId (строка categoryName, int id) = api/tales/kids/1 -> Ok!
Если и интересно моему ApiController
[HttpGet]
public Tale GetAllTalesByCategoryAndId(string category, int id){}
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(string category){}
[HttpGet]
public IEnumerable<Tale> GetAllTales(){}
[HttpGet]
public Tale GetTale(int id){}
Спасибо за все ответы.
Поместите свой собственный маршрут до того, как по умолчанию будет выбран по умолчанию, или по умолчанию будут запрашиваться ваши запросы. –
На самом деле я не понимаю. Если я поставлю costum route/api/tales/kids, вы получите сообщение об ошибке. Потому что это отправляет запрос GetTale (int id). – BerdaN