我有一个简单的客户控制器(asp net core 3.0),如下所示:
Outputs:
CognitoUserPoolId:
Value:
Ref: CognitoUserPool
通过[ApiController]
[Route("api/v1.0/{controller}")]
public class CustomerController : Controller
{
}
或{id}
设置路由令牌[HttpGet]
有什么区别
例如:
[Route(...)]
他们会解决类似的路线: [HttpGet]
[Route("{id}")]
public async Task<IActionResult> GetAsync(string id)
{
. . .
}
[HttpGet("{id}")]
public async Task<IActionResult> GetAsync(string id)
{
. . .
}
吗?
答案 0 :(得分:1)
应该与document中的相同:
属性路由也可以使用Http [Verb]属性,例如HttpPostAttribute。所有这些属性都可以接受路由模板。
如果在操作方法上使用[Route(...)]
,则该操作将接受所有HTTP方法。因此建议在rest api中使用更具体的Http*Verb*Attributes
:
在构建REST API时,很少会想要在操作方法上使用[Route(...)],因为该操作将接受所有HTTP方法。最好使用更具体的Http Verb 属性来准确了解您的API支持的内容。期望REST API的客户端知道哪些路径和HTTP动词映射到特定的逻辑操作。