我们可以通过为每个操作单独定义参数来避免在 Swagger 中重复使用路径和查询参数。
例如,假设我们有一个 GET 请求需要在查询字符串中传递两个参数(name 和 age),并且在路径中包含一个 ID。
之前可能会定义它们如下:
[HttpGet("{id}/data")]
public async Task GetData(string name, int age, int id)
{
// code here
}
但这样可能会导致 Swagger 中文档存在问题。相反,我们可以定义每个参数,如下所示:
[HttpGet("{id}/data")]
public async Task GetData([FromRoute] int id, [FromQuery] string name, [FromQuery] int age)
{
// code here
}
这样定义可以确保 Swagger 文档正确显示,且功能与以前完全相同。