繁体   English   中英

Web API句柄fromuri参数拼写错误

[英]web api handle misspelled fromuri parameters

我有一个get方法,它接受一组可选参数。

    public HttpResponseMessage Get([FromUri] Parameter parameter)
    ---------------------------
    public class Parameter
    {
       public string TransactionStatus { get; set; }
       public string AllVersions { get; set; }
       public string RunNumber { get; set; }
    }

我正在使用api / item?transactionStatus = 1api / item?transactionStatus = 1&allVersions = true调用api。 我的问题是如何捕获/阻止请求中拼写错误的参数? 假设如果调用了api / item?transactionStatus = 1&MISSPELLED = true ,我想抛出一个错误“ URL无效”。

这是使用LINQ的方法:

  1. 以NameValuePairs的形式获取查询参数,仅选择键并转换为List。

  2. 获取Parameter类的属性,仅选择名称并转换为List。

  3. 找到两个列表的设置差异。

这是一些代码:

var queryParameters = Request.GetQueryNameValuePairs().Select(q => q.Key).ToList();
var parameterProperties = typeof(Parameter).GetProperties().Select(p => p.Name).ToList();
var difference = queryParameters.Except(parameterProperties);

区别在于IEnumerable包含URL中传递的参数,这些参数不是Parameter类中的属性。 因此,如果不为空,则可能引发错误,甚至告诉他们哪些参数不是预期的/拼写错误的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM