【发布时间】:2020-03-08 07:58:50
【问题描述】:
我需要知道如何通过调用另一个 API 然后传递 [API name] 和 [API parameters] 来动态地创建 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]}
能否请您提供一些有关这方面的见解。
【问题讨论】:
-
听起来是个很糟糕的主意.....这有什么意义?您应该遵循系统设计的 SOLID 原则 - 其中的 S 代表 单一责任原则,它表示一段代码应该执行 一件事和只有一件事。
-
感谢您的评论,我想让用户通过调用此 API [GenerateApi] 来动态创建他的 API,如果您有其他好的想法或建议,请帮助@marc_s
-
感谢您的帮助,我会阅读文档@Richard
-
您可以使用查询参数。有一些代码可以做到这一点,并在this repo 中使用
ExpandoObject生成对象。有一个很好的课程可以配合它,如果您可以摆动子成本,那将是值得的。
标签: c# api controller asp.net-core-2.1