dotnet核心/ C#WebAPI-控制器作为插件

问题描述

我经常不得不使用针对其他API的特定api请求(用于简化或认证等),为不同的客户实现一个小的Web api作为“代理”。...这是一个简单的示例:

    https://myproxy.intranet/api/weather => https://www.weatherapi.com/api/today
    https://myproxy.intranet/api/time => https://www.timeapi.com/api/Now
    https://myproxy.intranet/api/currentcy => https://www.currency.com/api/dollar

在大多数情况下,API及其端点是相似的(即使不相同),因此很多代码都可以重用。目前,我创建了一些nuget库来解决此问题,但问题是,我始终必须创建一个包含完整开发操作等的WebApi项目,并使用我的库以几乎相同的代码实现控制器。

我的想法是拥有一个WebAPI项目(例如MyAwesomeProxy),该项目使用插件来扩展可用的API端点,例如:

    MyAwesomeProxy => basic functions like authentication,etc.
    MyAwesomeProxy/plugins/Controllers/weather.dll => proxy for the weather api is available
    MyAwesomeProxy/plugins/Controllers/time.dll => proxy for the time api is available
    ...

所以基本上我想要的是一个可扩展的WebApi-Project-只需将主项目放到IIS,将所需的dll放入目录中,并且api就会像预期的那样工作。

重要说明:由于某些API是特定于客户的,因此我无法实现整体,只能通过许可证或设置启用和禁用可用的端点-我想防止反编译和信息泄漏。

我该怎么做?那有可能吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)