如何在ASP.NET Web API中获取uri的请求对象

本文关键字:uri 获取 请求 对象 API ASP NET Web | 更新日期: 2023-09-27 17:59:02

我在团队中有一个需求,我需要创建一个api,它应该为用户提供所有可用的api和用户请求的相应请求。我计划将api端点保存在DB表中,并根据用户请求读取并获取这个uri。但我不知道如何从不同的api控制器访问与api端点相关的请求对象。

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

在上面的代码中,我已经对端点进行了硬编码,并且基于case语句,还提到了请求类。由于我需要为所有端点执行此操作,我希望将这些端点移动到DB,然后从中读取,但对我来说,问题是如何获得端点的请求类,而不是指定请求类

如何在ASP.NET Web API中获取uri的请求对象

您可以使用ApiExplorer类的ApiDescriptions属性获取API端点的ApiDescription,然后使用ApiDescription.ParameterDescriptions属性访问API的输入参数。。类似于跟踪

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