Web Api 如何处理这个查询字符串?

Posted

技术标签:

【中文标题】Web Api 如何处理这个查询字符串?【英文标题】:How is this query string handled by 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()
    


    

【问题讨论】:

【参考方案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"


【讨论】:

以上是关于Web Api 如何处理这个查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理JSON中的特殊字符

如何处理 django 查询集中的变量字符串?

查询时如何处理db中随机字母大小写实例?

如何处理 VBA 中 HTML 变量的 MailChimp API 响应?

如何处理外部dll中的连接字符串?

FastAPI 学习之路请求体有多个参数如何处理?