У меня есть маршрут DELETE
, который выглядит следующим образом:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService(string id)
{
return await _repo.DeleteServiceAsync(id);
}
Мне также нужно поддерживать параметр [FromBody]
на этом маршруте, который будет выглядеть примерно так:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService([FromBody] ServiceEntity service, string id)
{
if(service == null)
return await _repo.DeleteServiceAsync(id);
else
return await _repo.DeleteServiceWithEntityAsync(id, service);
}
Однако это не работает из-за AllowEmptyInputInBodyModelBinding , который я не хочу устанавливать в значение true;в любом другом маршруте / конечной точке желательно поведение по умолчанию, AllowEmptyInputInBodyModelBinding == false
.
У меня может быть два разных маршрута, один с параметром body, а другой без, но который производит совпадающие маршруты, и ни одна конечная точка не попадет:
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteService(string id)
{
return await _repo.DeleteServiceAsync(id);
}
[HttpDelete("{id}")]
public async Task<StatusCodeResult> DeleteServiceWithEntity([FromBody] ServiceEntity service, string id)
{
return await _repo.DeleteServiceWithEntityAsync(id, service);
}
Какой лучший способ получить желаемое поведение?Я не могу добавить отдельную конечную точку, потому что мне нужно соответствовать спецификации с существующим API.