【问题标题】:How is this query string handled by Web Api?Web Api 如何处理这个查询字符串?
【发布时间】:2020-08-26 13:01:28
【问题描述】:

2020-05-09?symbols=HKD&base=CAD 是一个查询字符串,用于在公共 API 中检索这两种货币在特定日期的汇率。我知道字符串的第一部分应该是控制器的动作,其余部分是参数。但是 API 是如何处理这种类型的查询字符串的呢?他们每天都会生成一个新的 Action?这很难相信......

 public class RatesController : ApiController
{        

    public async Task<ActionResult> Get()
    {


    }
}

【问题讨论】:

    标签: c# rest asp.net-web-api query-string


    【解决方案1】:

    不,您不需要每天都创建一个新操作。日期值是一个路由参数。 您可以使用以下代码实现:

        public class RateModel
        {
            [FromRoute]
            public DateTime Date { get; set; }
            [FromQuery]
            public string Symbols { get; set; }
            [FromQuery]
            public string Base { get; set; }
        }
    
    ...
            [HttpGet("rate/{date}")]
            public ActionResult Get(RateModel model)
            {
                return Ok(model);
            }
    
    

    然后在~/rate/2020-05-09?symbols=HKD&amp;base=CAD上调用GET方法

    将返回:

    {
      "date": "2020-05-09T00:00:00",
      "symbols": "HKD",
      "base": "CAD"
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-10
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多