集成 Microsoft Bot 以存在 WebAPI

Integrate Microsoft Bot to exist WebAPI

我有一个 ASP.NET 核心项目,只有 控制器 (WebAPI)。 我意识到 Microsoft Bot 只是 ASP.NET 服务器的中间件,它甚至在 WebHost 启动方法中定义。

我可以在现有项目中添加机器人的中间件吗? 它会保留使用 REST 直接访问端点的能力吗?

当然,这是 100% 可能的,并且从第一天起就是集成层的目标之一。

您要确保的一件事是将 .UseBotFramework() 调用放在 .UseMvc() 调用之前,以便它优先处理请求,这样默认的 MVC 路由就不会t接管并接受请求。

对于具有静态文件、机器人和 MVC 控制器的基本 Web 应用程序,我建议采用以下顺序:

public void Configure(IApplicationBuilder app)
{
    app.UseDefaultFiles()
       .UseStaticFiles()
       .UseBotFramework()
       .UseMvc();    
}