如何在 ASP.net 核心 2 中创建动态 API

How can I create dynamic API's in ASP.net Core 2

我需要知道如何通过调用另一个 API 然后传递 [API name] 和 [=16= 来动态地创建 API 的 ],让我们假设我们有这个 API,如下所示:

[HttpPost("GenerateApi")]
[ProducesResponseType(200)]
[ProducesResponseType(500)]
public IActionResult GenerateApi(RootObject ro)
{           
   //Here I need piece of code to create API dynamically
   return Ok(new { ro.apiName, ro.parameters });       
}

以下是模型:

public class RootObject
{
   public string apiName { get; set; }
   public List<parameter> parameters { get; set; }
}

public class parameter
{
   public string parameterName { get; set; }
   public dynamic parameterType { get; set; }
}

现在需要做的是在控制器中创建动态API

然后我们将创建 API 它们可以从它们的 URL 中调用,就像这样

www.example.com/api/v1/[controller]/[apiName]/{[parameter1_value]}/{[parameter2_value]}

能否请您提供一些见解。

发现一些东西可以在 MVC 中提供帮助。如果其他人正在寻找这个,我需要覆盖 DefaultHttpControllerSelector。这是一篇关于该主题的非常好的文章:link 所以基本上对于我上面提到的用例,我需要创建一个新的 AppDomain,在其中启动我的服务,并在运行时动态加载我的程序集。我最终需要覆盖 DefaultHttpControllerSelector 来捕获请求。当请求到达时,它就可以控制我要使用哪个控制器。在那里我可以通过加载新程序集等动态更新控制器。要注意的主要事情是这是针对每个请求执行的,因此它很容易影响性能和内存。所以我会实现自己的控制器缓存。

在这篇有用的文章中找到了解决方案 Here,用于在 .net 核心中生成动态控制器。