后端 Web API 服务与 REST API
概述
Web API 服务集成了授权和 CRUD 操作,支持 Microsoft EF Core 和 DevExpress XPO ORM 库。您可以使用 OAuth2、JWT 或自定义策略进行身份验证。内置的安全系统还可以根据用户的权限过滤出安全的服务器数据。
Web API 创建 URL(端点),允许您从非 XAF UI 应用程序(例如 .NET MAUI、JavaScript 或 Blazor 客户端)执行 CRUD 操作。它使用 ASP.NET Core OData 来支持分页、过滤器和其他 OData 选项。该服务可以作为 Blazor Server 项目的一部分托管,也可以作为独立的 ASP.NET Core 项目。
Web API 利用 Swagger(OpenAPI)来显示和测试端点。您还可以测试端点或使用其他平台的 Web API(例如 Postman、.NET 或 JavaScript)。

Web API 服务的基本功能(包括模板套件)是免费提供的。关于详细许可信息,请参考最终用户许可协议。
如何使用
您可以将 Web API 添加到现有的 Blazor Server 项目或使用此服务创建新项目:
- 创建独立的 Web API 应用程序
- 将 Web API 集成到现有的 XAF Blazor 应用程序中
将 Web API 添加到项目后,您可以按照以下主题使用它:
- 添加和保护 CRUD Web API 端点
- 向 Web API 发出 HTTP 请求
- 对端点请求执行自定义操作
- 创建自定义端点
- 在自定义端点方法中访问对象空间、安全系统和标题帮助器
此外,参考 GitHub 示例:
- JavaScript with DevExtreme + ASP.NET Core Web API/OData App
- JavaScript with Svelte + ASP.NET Core Web API/OData App
- Blazor WebAssembly App
- .NET MAUI (iOS/Android) App
- WinForms Application (with OData)
身份验证选项
Web API 支持所有标准的 ASP.NET Core 身份验证技术,您可以在 MySolution.WebApi\Startup.cs 或 MySolution.Blazor.Server\Startup.cs 文件中指定。详见:Web API 项目中的身份验证。
性能考虑
您可以禁用日志记录以提高 Web API 性能。为此,将 LogLevel.DevExpress.ExpressApp 选项设置为 None。
文件: MySolution.Blazor.Server\appsettings.json(调试时使用 MySolution.Blazor.Server\appsettings.Development.json)
{
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"DevExpress.ExpressApp": "None"
}
}
使用除 None 以外的日志记录选项(例如 DevExpress.ExpressApp = Debug)仅用于调试目的,因为日志记录会降低性能。详见:日志文件。
限制
- 不支持在 XPO 数据模型中使用自定义字段。底层 ASP.NET Core Web API / OData v4 基础结构以 System.Type 对象的形式通过反射直接访问类型信息,这些对象不包含有关自定义字段的信息。
常见问题
Q: 必须在我的项目中包括 XAF UI 依赖关系吗?
A: Web API 服务依赖于 Visual Studio 2022 和一些非可视化跨平台 .NET 包(例如 DevExpress.Data, DevExpress.Xpo, DevExpress.Document.Processor 等)。虽然这些包的名称中有'XAF'或'ExpressApp',但您不需要在项目中引入 XAF WinForms 和 ASP.NET Core Blazor 依赖。
换句话说,如果您不需要 XAF,就不必强制使用它。可选地,您可以告诉模板套件在 XAF Blazor UI 应用程序中创建 Web API 服务。这有助于那些希望在同一包中合并 Web 管理面板和嵌入式 API 服务器的人(更容易托管和维护)。当然,您也可以始终在独立的基础上使用 Web API 服务。
Q: 如果我不开发 XAF UI 应用程序,我会从 Web API 服务中受益吗?
A: Web API 服务可以在 XAF 驱动的 UI 应用程序之外使用。许多开发人员已经成功地使用 Web API 服务作为他们的 Angular、Vue、React、Blazor WebAssembly、Xamarin 等的后端 .NET/JavaScript UI 客户端。
Q: 我必须学习很多 XAF 术语才能使用 Web API 吗?
A: 就客户端或消费者而言,Web API 服务是一个标准的 ASP.NET Core OData 8.0 服务——使用标准的 OData v4 查询选项来使用 API。您还可以使用 Swagger UI、Postman、浏览器开发者工具或标准的 .NET/JavaScript API。
Q: 可以自定义 API 吗?
A: 您可以执行 ASP.NET Core OData 支持的所有操作。您可以自定义自己的 EF Core 或 XPO 数据模型,并在 XAF 层微调(安全权限、CRUD 行为等)。


