#c# #asp.net #asp.net-web-api
Вопрос:
Я работаю над этим проектом на asp.net web.api и у меня есть некоторые функции для операций CRUD. Теперь я застрял в том, что когда я пытаюсь протестировать свой API на web.postman.com, он не может найти мои функции. Все, что он делает, это возвращает ошибку 404-Не найден.
Это всего лишь одна из многих функций моего контроллера учетных записей:
[HttpGet]
[Route("api/account/GetByID/{id}")]
public IHttpActionResult GetById(string id)
{
var result = sl3.Operator.Where(x => x.id == id).FirstOrDefault();
if (id == null)
{
return NotFound();
}
else
{
return Ok(result);
}
}
Когда я примеряю свой localhost/swagger (пакет nugget, который я установил в этом проекте для документации моего API), он отлично работает, все функции работают без каких-либо проблем. Так что я не знаю, в чем тут подвох.
Ответ №1:
Ну, никто не ответил, так что я понял это сам. Я удалил [Route("api/account/GetByID/{id}")]
его, и вдруг это сработало. Теперь, если кто-то увидит этот вопрос и ответ, я хочу спросить вас, действительно ли он защищен или это нормально, если я оставлю его без маршрута объявления? Потому что, конечно, по умолчанию он будет следовать по маршруту localhost/api/{controller}/{action}, но мой вопрос в том, возникнут ли какие-либо проблемы, если мы его не объявим? Заранее спасибо.
Ответ №2:
Не знаю, в чем может быть проблема, но первым делом.
- Если ваш API доступен локально, пожалуйста, попробуйте использовать настольные версии Postman для выполнения тестовых действий.
- Или может возникнуть проблема с вашей маршрутизацией, пожалуйста, убедитесь, что контроллер и метод не должны повторять ключевое слово «api».
- В противном случае, пожалуйста, добавьте дополнительные сведения, такие как среда, контроллер и аннотации.
Комментарии:
1. Привет, спасибо, что нашли время ответить на этот вопрос. 1. Я только что попробовал весь процесс на настольной платформе Postman, и результаты были одинаковыми. 2. Я тоже попытался запустить его без ключевого слова «api», но все равно не смог найти ни одной функции моего контроллера. Пожалуйста, проверьте другой ответ, который я дал на этот вопрос. Сейчас он работает, но я не уверен, следует ли мне использовать его маршрутизацию по умолчанию, или это необходимо, чтобы мы объявили его маршрут. Так как я всего лишь новичок в Asp.net и веб-Api, не могли бы вы сказать мне, достаточно ли эффективен этот метод решения этой проблемы или нет. Спасибо.