У меня есть веб-служба Api. net core 3.1, в которой я использую OData (V4). У меня есть конечная точка, где каждый запрос через GET METHOD работает нормально, и с той же конечной точкой я могу использовать POST METHOD и вставлять новые записи в базу данных.
Проблема в том, что СПОСОБЫ УДАЛЕНИЯ и ПАТЧА не работают (или, возможно, они работают, но если я пытаюсь использовать обновление или удаление, я всегда получаю ошибку 404 Not Found). Я пытаюсь вызвать их (DELETE, PATCH) из POSTMAN, но получаю ту же ошибку 404, однако методы находятся в контроллере.
MyController:
[ApiController]
[Route("[controller]")]
public class UsersController : ODataController
{
[HttpGet]
[EnableQuery()]
public IEnumerable<User> Get()
{
return new Context().Userek;
}
[HttpPatch]
[EnableQuery]
public async Task<IActionResult> Patch([FromODataUri] int id, Delta<User> user)
{
var ctx = new Context();
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var entity = await ctx.Userek.FindAsync(id);
if (entity == null)
{
return NotFound();
}
user.Patch(entity);
try
{
await ctx.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (id != 23)
{
return NotFound();
}
else
{
throw;
}
}
return Updated(entity);
}
public async Task<IActionResult> Delete([FromODataUri] int id)
{
var ctx = new Context();
var user = await ctx.Userek.FindAsync(id);
if (user == null)
{
return NotFound();
}
ctx.Userek.Remove(user);
await ctx.SaveChangesAsync();
return StatusCode(404);
}
}
Спасибо за любые помогите!