如何在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,然后从中读取,但对我来说,问题是如何获得端点的请求类,而不是指定请求类
您可以使用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;