Веб-API - зарезервированное слово?

0

** Имейте очень простой веб-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

Вызов:

http://example.com/api/dataservice/Getusers/lop

Результаты:

[
  {
    "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"
  }
]

Все отлично работает. Да! Однако в одном случае я получаю ресурс, не могу найти ошибку с этим вызовом:

http://example.com/api/dataservice/Getusers/con

Я могу использовать id = can, cone, com и т.д.... Нет никаких проблем с любым из этих вызовов api. Все они отлично работают. Как только я нахожу поиск в con → ресурсе, вы не можете найти! У кого-нибудь есть ключ? Я потерялся.

  • 0
    Находит ли он каких-либо пользователей? Можем ли мы увидеть код для метода GetUsers (...)? Есть ли обработка ошибок?
Теги:
asp.net-web-api

1 ответ

2
Лучший ответ

Да, "con" является зарезервированным словом и не допускается. Обходной путь состоит в том, чтобы включить следующее в <system.web> в ваш Web.config.

<httpRuntime relaxedUrlToFileSystemMapping="true" />

Взято из этого ответа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню