我需要一个 Web API 项目和一个函数应用程序项目,它们共享相同的服务/类库等。几个问题
- 将它们放在同一个解决方案中(或者它们应该放在单独的存储库中)是否是不好的做法
- 服务应该注册在 Web Api 或函数应用的 Startup 类中,还是两者的混合中?是否可以在 Web api 启动类中注册仅由函数应用程序使用的服务,因为这会让生活变得更轻松?这些服务将执行类似的操作,并且在某些情况下,两者将使用相同的服务。
我可能只需要一些计时器触发函数,大部分应用程序将构建在 Web API 上。
具体来说,其余 API 将提供前端 UI,函数应用将在计时器触发器上为产品提供更新。
感谢您提前提供任何指导,如果这些问题很愚蠢,我们深表歉意!
最佳答案
对于#1 - 我认为将它们放在同一个(git)存储库中是完全可以的 - 您可能遵循单一存储库策略,或者这些项目可能密切相关,例如同一业务领域/功能的一部分,您可能拥有核心 Web API 项目 (ASP.NET Core WebApi) 以及一些 Function App 事件处理程序(在 Function App 项目中),它们响应外部异步事件并调用核心 Web API。或者,如果它们是完全不相关的存储库,并且您没有遵循单一存储库策略,那么也许它们应该位于单独的存储库中。
对于 #2 - 某些服务可能是 ASP.NET Core WebApi 专有的,某些服务可能是 Function App 专有的,还有一些可能是共享的。假设所有代码都在同一个存储库中;对于共享依赖项,您可以考虑在同一个 git 存储库中拥有第三个“类库”项目,该项目可以由 ASP.NET Core WebApi 项目和 Function 应用项目引用。这个“类库”项目可以包含所有共享依赖项。依赖项应在 Web Api 和函数应用程序的启动时注册。
关于c# - 同一解决方案中的 Azure Function App 和 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71027335/