#api #asp.net-core
#API #asp.net-core
Вопрос:
У меня есть этот метод в ASP.NET Ядро:
[HttpDelete("id:int")]
public async Task<IActionResult> Delelte(int id)
{
// do sth
}
Теперь, когда я вызываю этот API через swagger, сгенерированный URL-адрес :
https://localhost:44357/api/mycontroller/id:int?id=2
Я ожидал, что у меня будет URL-адрес без строки запроса, например api/mycontroller/2
Проблема в том, что я хочу вызвать этот API из кода, и в коде я называю это так api/mycontroller/2
, но он возвращает 404
Ответ №1:
[HttpDelete("id:int")]
Должно быть
[HttpDelete("{id:int}")]
Параметры заключены в угловые скобки {}
с необязательными ограничениями, такими int
как. Все, что находится за пределами этого, считается статической частью URL-адреса маршрута.
Смотрите также Маршрутизацию в ASP.NET Ядро
Ответ №2:
Проблема, похоже, связана с тем, как вы изменили свой атрибут HttpDelete.
Попробуйте вместо этого отформатировать его таким образом :
[HttpDelete("{id}")]