![](/img/trans.png)
[英]Using web API with parameters in JSON with FromUri or FromBody
[英]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 = 1或api / item?transactionStatus = 1&allVersions = true调用api。 我的问题是如何捕获/阻止请求中拼写错误的参数? 假设如果调用了api / item?transactionStatus = 1&MISSPELLED = true ,我想抛出一个错误“ URL无效”。
这是使用LINQ的方法:
以NameValuePairs的形式获取查询参数,仅选择键并转换为List。
获取Parameter类的属性,仅选择名称并转换为List。
找到两个列表的设置差异。
这是一些代码:
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.