C# 配置Blazor服务器以承载WebAPI

C# 配置Blazor服务器以承载WebAPI,c#,blazor,blazor-server-side,webapi,C#,Blazor,Blazor Server Side,Webapi,我计划创建一个ASP.NET核心托管的Blazor WASM应用程序,但由于调试经验有限和开发速度较慢,我选择托管WebAPI的Blazor服务器应用程序来模拟上述项目类型的体系结构,以便在.NET 5发布时轻松切换。问题是我不知道如何配置Startup类来使用WebAPI。不幸的是,我找不到任何在Blazor服务器中演示使用WebAPI的链接 假设我已经在项目中添加了控制器,我应该在ConfigureServices()和Startup的Configure()方法中修改什么来使用控制器?无论如

我计划创建一个ASP.NET核心托管的Blazor WASM应用程序,但由于调试经验有限和开发速度较慢,我选择托管WebAPI的Blazor服务器应用程序来模拟上述项目类型的体系结构,以便在.NET 5发布时轻松切换。问题是我不知道如何配置
Startup
类来使用WebAPI。不幸的是,我找不到任何在Blazor服务器中演示使用WebAPI的链接


假设我已经在项目中添加了控制器,我应该在
ConfigureServices()
Startup
Configure()
方法中修改什么来使用控制器?

无论如何,最后我终于找到了答案。要在Blazor服务器和任何ASP.NET核心应用程序中为API使用控制器,只需在
Configure()
中映射控制器即可

public void配置(iapplicationbuilder应用程序,IWebHostEnvironment环境)
{
...
app.UseEndpoints(端点=>
{
endpoints.MapControllers();
...
});
}

不管怎样,终于找到了答案。要在Blazor服务器和任何ASP.NET核心应用程序中为API使用控制器,只需在
Configure()
中映射控制器即可

public void配置(iapplicationbuilder应用程序,IWebHostEnvironment环境)
{
...
app.UseEndpoints(端点=>
{
endpoints.MapControllers();
...
});
}

我可以问一下WebAPI是供Blazor应用程序使用还是供其他应用程序使用吗?如果只是向Blazor提供数据,Blazor服务器不需要它-Blazor代码已经在服务器上运行。@Quango是为Blazor提供数据,但我认为像WASM应用程序一样构建服务器端应用程序将简化到WASM的切换,所以我不必做任何更改是的,这是真的。最好的方法是将数据访问封装在一个接口中,例如IDataAccess——对于WASM,创建一个WebAPI访问代码,对于服务器,您只需获取数据即可。如果这有道理的话。您可以稍后在需要时使用WebAPI。我有一个演示应用程序(有点过时了,但概念是一样的:很好!我最近才想到它,但我真的找不到它的参考资料。谢谢你的示例!@Quango顺便说一下,我刚刚意识到WebAPI的控制器(
ControllerBase
类,因为
Controller
是用于MVC视图的)return ActionResult。你有过这个案例的经验吗?我可以问一下WebAPI是供Blazor应用程序使用的,还是供其他应用程序使用的?如果只是向Blazor提供数据,Blazor服务器不需要它-Blazor代码已经在服务器上运行。@Quango它是为Blazor提供数据的,但我认为像WASM应用程序一样的服务器端应用程序将简化到WASM的切换,因此我不必更改任何内容是的。最好的方法是将数据访问封装在一个接口中,例如IDataAccess-为WASM创建一个WebAPI访问代码,为服务器您只需获取数据。如果这有意义,您可以稍后在需要时使用WebAPI。我有一个演示应用程序(有点过时了,但概念是一样的:很好!我最近才想到它,但我真的找不到它的参考资料。谢谢你的示例!@Quango顺便说一下,我刚刚意识到WebAPI的控制器(
ControllerBase
类,因为
Controller
是用于MVC视图的)返回ActionResult。您有过此案例的经验吗?