微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。