0

很多时候,我必须为使用对其他 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 是客户特定的,我无法实现单体应用,只能通过许可证或设置启用和禁用可用的端点——我想防止反编译和信息泄漏。

我该怎么做?这甚至可能吗?

4

0 回答 0