2016-07-27 89 views
0

我在團隊中有一個需求,我需要創建一個API,它應該爲用戶提供所有可用的API和用戶請求的相應請求。我打算將api終點保存在數據庫表中,並根據用戶請求讀取並獲取此uri。但我不確定如何訪問與來自不同api控制器的api端點相關聯的請求對象。如何在ASP.NET Web API中獲取uri的請求對象?

switch (service.ToUpper()) 
{ 
    case "MYFUNCTIONALITY": 
     detail.endPoint = "api/myfunctionality/random"; 
     detail.requestObject = new AutoCreditCardTransactionRequest() { Quantity = 5, AcctmyIDs = myaccts }; 

     break; 
    default: break; 
} 
return detail; 

在上面的代碼中,我已經硬編碼了終點,並且基於case語句,請求類也被提及。由於我需要爲所有終點執行此操作,因此我希望將這些終點移到數據庫然後從中讀取,但問題是如何獲取終點的請求類而不是指定請求類

+1

使用Request.RequestUri? – Harminder

回答

0

您可以使用ApiExplorer類的ApiDescriptions屬性來獲取ApiDescription的API端點,然後使用ApiDescription.ParameterDescriptions屬性來訪問輸入參數的API ..喜歡的東西在控制器以下

ApiParameterDescription paramDesc; // Use appropriate code to populate this 
var type = paramDesc.ParameterDescriptor.ParameterType; 
var defaultValue = paramDesc.ParameterDescriptor.DefaultValue;