簡體   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