数组在理想情况下,我想有以下格式的URL:宁静的网络API参数为INT
/api/categories/1,2,3...N/products
,这将返回所有产品为指定的类别。使用多个类别ID进行一次API调用可以节省多次数据库调用,从而提高性能。
我可以通过以下方式轻松实现此目的。
public HttpResponseMessage GetProducts(string categoryIdsCsv)
{
// <1> Split and parse categoryIdsCsv
// <2> Get products
}
但是,这看起来不像干净整洁的解决方案,并可能违反SRP原则。我也尝试使用ModelBinder
,但它将参数添加到查询字符串。
问题:
- 有没有实现这样的URL结构的清洁方法是什么?
- 还是有不同/更好的方法来检索所有产品的多个类别?
如果您需要进一步澄清,请让我知道。
这有什么错'/ API /产品?类别[] = 1&类别[] = 2&...' ?这是这种事情的标准方式。此外,Web API 2会自动将这些查询参数解析到控制器方法参数'int [] categories'中,因此不需要定制'ModelBinder'。 –