** Имейте очень простой веб-API:
WebApiConfig.cs:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional});
Я могу звонить на этот веб-сайт, используя мой контроллер данных:
[HttpGet]
public HttpResponseMessage GetUsers(string id)
{
var cl = _SecurityRepository.GetUsers(id);
return Request.CreateResponse(HttpStatusCode.OK, cl);
}
Логика очень проста: Ищет БД для любых последних имен, которые начинаются с последних трех букв в id
Вызов:
Результаты:
[
{
"userID": "DLopez",
"firstName": "Don",
"lastName": "Lopez",
"department": "Information Technology"
},
{
"userID": "SLOPER",
"firstName": "Steve",
"lastName": "Loper",
"department": "First Services"
},
{
"userID": "DLOPES",
"firstName": "Davey",
"lastName": "Lopes",
"department": "Public Info"
}
]
Все отлично работает. Да! Однако в одном случае я получаю ресурс, не могу найти ошибку с этим вызовом:
Я могу использовать id = can, cone, com и т.д.... Нет никаких проблем с любым из этих вызовов api. Все они отлично работают. Как только я нахожу поиск в con → ресурсе, вы не можете найти! У кого-нибудь есть ключ? Я потерялся.
Да, "con" является зарезервированным словом и не допускается. Обходной путь состоит в том, чтобы включить следующее в <system.web>
в ваш Web.config.
<httpRuntime relaxedUrlToFileSystemMapping="true" />
Взято из этого ответа.