c# - 同一解决方案中的 Azure Function App 和 Web API

标签 c# asp.net

我需要一个 Web API 项目和一个函数应用程序项目,它们共享相同的服务/类库等。几个问题

  1. 将它们放在同一个解决方案中(或者它们应该放在单独的存储库中)是否是不好的做法
  2. 服务应该注册在 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/

相关文章:

c# - 如何在 C# 中查找指数格式的字符串值?

c# - 多次调用异步方法

asp.net - 带有 JSON 集合的 Mustache JS 模板

c# - 如何使用 HH :mm:ss = 00:00:00 instead of 12:00:00? 设置日期时间

c# - 使用 Aforge.Net 将灰度图像转换为黑白图像

C# 事件为空

c# - 使用 Chrome 或 Internet Explorer 时获取不同的路径

javascript - Javascript 函数后无回发

javascript - 单击 img 时更改 onLoad 正文

c# - 如何在 Crystal 报表C#中添加行号