[英]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.