【问题标题】:How to pass key values pairs to HttpGet in ASP.NET Core WebApi?如何在 ASP.NET Core WebApi 中将键值对传递给 HttpGet?
【发布时间】:2019-02-22 13:54:57
【问题描述】:

我正在创建一个 WebApi,我需要为我的 GET 端点获取一个键值对。我发现了一些在POST 方法总线中使用字典的示例,这似乎不适用于GET

到目前为止,我尝试过这个:

[HttpGet]
public IActionResult Get([FromQuery] Dictionary<string, string> myVar)
{
}

我正在使用 swagger 来测试 API,如果我通过了 {"key":"value"},我得到的字典是一对,值是我传入的整个对象。({[myVar, {"key":"value"}]})

将多个键值对传递给GET 方法的WebApi 的正确方法是什么?

编辑:根本问题是我使用 swagger (swashbuckle) 来测试我的端点。在这个问题的那一刻,它不支持动态查询参数Issue on github。一旦 OpenApi v3 支持被添加到 swashbucle Issue on github,它应该支持它。

【问题讨论】:

标签: c# asp.net-core-2.0 swagger-ui asp.net-core-webapi


【解决方案1】:

您应该能够使用以下结构调用端点,并通过 Web API 的内置绑定器自动绑定值。

https://example.com/api/values?1=john&2=jane

1 和 2=字典中各个条目的键。 约翰和简=价值观

【讨论】:

  • 我已经尝试使用 Postman,但我的字典被 Key [string]:"myVar" Value [string]:null 损坏了。看来我错过了什么
  • 看起来 .NET Core 模型绑定器与 .NET Framework 版本不同,并且不喜欢之前使用 [] 的语法。我将使用适用于 .NET Core 的内容更新答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2020-01-25
  • 2020-10-03
  • 1970-01-01
  • 2020-09-22
  • 2020-08-23
  • 2020-12-18
相关资源
最近更新 更多