我经常不得不使用针对其他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是特定于客户的,因此我无法实现整体,只能通过许可证或设置启用和禁用可用的端点-我想防止反编译和信息泄漏。
我该怎么做?那有可能吗?