Я сделал свою первую конечную точку, используя C # / ASP. Net, и сейчас пытаюсь использовать запрос get для фильтрации "yearId". Код ниже:
[HttpGet("{yearId}")]
public async Task<ActionResult<Student>> GetStudent(long yearId)
{
var student = await _context.Student.FindAsync(yearId);
if (student == null)
{
return NotFound();
}
return student;
}
Я могу подтвердить, что это правильно вводится с сообщением, так что идентификатор можно увидеть. Если я попробую просто «Id», он будет фильтроваться по уникальному идентификатору. Моя конечная точка Startup.cs по умолчанию, так что я подозреваю, что это проблема, но не знаю, где go:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
Любая помощь приветствуется. У меня есть следующий маршрут: [маршрут ("api / Students")]
Спасибо
РЕДАКТИРОВАТЬ: Когда я пытаюсь / api / Students / getyear / 4 я теперь получаю пустой ответ в почтальоне и 404 в chrome. Startup.cs - это:
endpoints.MapControllerRoute (
name: "MapByAction",
pattern: "api/{controller}/{action}/{yearId?}",
defaults: new { controller = "students", action = `"getyear" });`
, а мой файл:
[HttpGet("{yearId}")]
private async Task<ActionResult<Student>> GetYear(long yearId)
{
var student = await _context.Student.FindAsync(yearId);
if (student == null)
{
return NotFound();
}
return student;
}