我需要开发一个新的Web API GET,它将包含多个可选参数以及两个不可选的参数。可选参数可以具有相同名称的多个值。例如,以下参数可以在一次api调用的同时具有多个值: State,PaymentType,PaymentSource。
非可选参数是FromDate和ToDate。
将从前端UI列表框中的用户选择值填充可选参数。因此,例如,州列表框将所有状态列为可选选项。因此,如果用户选择10个状态,则API的可选State参数需要包含所有10个状态作为该参数的值。对于其他可选参数也是如此。
我之前从未这样做过,所以我不确定如何做到这一点。我遇到的所有API只对每个参数都有一个值。如何以这种方式创建API的这些参数?它们应该是一个清单吗?
答案 0 :(得分:0)
这应该可以解决问题
[Route("api/foo/{State}/{PaymentType}/{PaymentSource}/{FromDate?}/{ToDate?}")]
public IHttpActionResult Get([FromUri] List<string> State, [FromUri] List<string> PaymentType, [FromUri] List<string> PaymentSource, [FromUri] List<string> FromDate = null, [FromUri] List<string> ToDate = null)
{ ... }
查询字符串参数应为此格式
~/api/foo?State[]=value1&State[]=value2&PaymentType[]=...