【发布时间】:2022-01-13 14:43:58
【问题描述】:
请帮我完成我的家庭项目: 我可以毫无问题地调用所有 CRUD 方法,但我不知道如何将非 CRUD API 调用定向到正确的端点。
试过这个:
var rentalEvent = rest.GetSingle<RentalEvent>($"api/rentalevent/boo/{licensePlate}");
要达到这个目标:
[Route("/boo")]
[HttpGet("{licensePlate}")]
public RentalEvent GetGetRentalEventByLicensePlate(string licensePlate)
{
return new RentalEvent { RenterId = 88 }; //mock return class
}
Controller类的属性设置为:
[Route("api/[controller]")]
[ApiController]
【问题讨论】:
-
尝试从操作中删除
Route属性,并改用[HttpGet("boo/{licensePlate}")]。 -
是的,我从没见过 Route 属性和 HttpGet 属性
-
您正在使用控制器,一切都是请求/响应。端点应始终是相同的 URL。每个请求/响应都应该发送一个类对象,如
-
@Jonesopolis : Route 和 HttpGet 是允许的。请参阅:docs.microsoft.com/en-us/aspnet/web-api/overview/…
-
我从未见过 Route 属性和 HttpGet 属性 - 我发现根本不使用 Route 非常方便。当有人说“/api/whatever/get/account/1”端点崩溃时,我可以按 Ctrl-F 输入
api/whatever/get/account并进入处理方法。如果路由跨多个属性分解,尤其是如果其中一些属性隐藏在[controller]占位符中,那就更麻烦了