我正在使用 ASP.NET Core 6.0,我需要创建一个 api 端点,它可以处理必须始终提供的两个修复参数以及可选过滤器参数列表:
https://<host>/api/article/GetArticles?pageId=123&filterId=234&filter[category]=1,2&filter[author]=12&filter[year]=2023
正如您所看到的,过滤器类型在括号中指定。这是应使用的JSON:API 中定义的过滤器标准。但是控制器中的端点需要如何定义来支持它呢?
当然,这是行不通的(filter
是null
):
[HttpGet("GetArticles")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult<IContent>> GetArticles(
int pageId,
int filterId,
string? filter = null)
{
// TODO ...
return Ok();
}
您可以使用字典 -
[FromQuery] Dictionary<string, string>? filter = null
:这是一个最小的工作示例。在邮递员中使用此路径进行测试
请注意,过滤器是字典,因为我正在发送过滤器属性的键值对
我想你现在可以想象你能做的不止这些。