没有名称但有值的网址是否仍被视为查询字符串?
例如:
[HttpGet]
[Route("api/house/{Id}")]
public IActionResult GetHouseById(int Id)
链接将是:
http://localhost:44565/api/house/1
这仍然是一个查询字符串吗?
答案 0 :(得分:2)
不,这是路径的一部分,在RESTful命名法中不是查询字符串参数。
路径变量是路径的必需组件,必须提供以识别适当的路径。在路径需要时省略id参数应该导致404(除非另一个路由匹配api/house
)。
但是查询字符串参数是可选的。它们是URI的最后一部分,位于?
字符之后,例如api/house?id=1
。在这种URI样式中,如果提供了查询字符串参数,您可能希望端点返回id为1
的house,如果省略则返回所有house。
最后,您将通过FromUri
属性记录查询字符串参数,并从路径中省略它:
[HttpGet]
[Route("api/house")]
public IActionResult GetHouseById([FromUri]int id)