项目

本文档有多个版本。请选择最适合您的选项。

UI
Database

微服务教程第三部分:构建目录服务

在上一部分中,我们创建了一个名为 Catalog 的新微服务。本部分我们将构建在系统中创建和管理产品的功能。

在本部分中,我们将使用 ABP Suite 自动生成所有必需的代码。因此,您将看到如何在微服务解决方案中使用 ABP Suite。在接下来的部分中创建 Ordering 微服务时,我们会手动完成所有操作,以便您更好地了解细节。我们建议在可能的情况下使用 ABP Suite,因为它可以节省大量时间。然后,您可以研究 ABP Suite 所做的更改,以了解它生成了什么。

打开 ABP Suite

首先,停止 ABP Studio 解决方案运行器 面板中的所有应用程序,因为 ABP Suite 会对解决方案进行更改,并且在某些步骤中也需要构建解决方案。运行解决方案会阻止构建。

现在,在主菜单中选择 ABP Suite -> 打开 命令来打开 ABP Suite:

abp-studio-open-abp-suite

它会询问您要使用哪个模块:

abp-studio-open-abp-suite-select-module

CloudCrm 微服务解决方案包含不止一个 .NET 解决方案。通常,每个 ABP Studio 模块代表一个独立的 .NET 解决方案(请参阅 概念 文档)。ABP Suite 在单个 .NET 解决方案上工作以生成代码,因此我们应该在这里选择一个模块。

选择 CloudCrm.CatalogService 模块并单击 确定 按钮。它将打开 ABP Suite,如下图所示:

abp-studio-abp-suite-inside

生成产品页面

在下一节中,我们将使用 ABP Suite 通过 ABP Suite 创建一个功能齐全的 CRUD 页面。UI 部分将位于主 Web 应用程序( CloudCrm.Blazor )中,应用程序服务和其他部分将生成在目录微服务中。

配置产品实体信息

名称 字段中输入 Product,其他选项保持默认。ABP Suite 会自动为您计算合适的值:

abp-suite-product-info

配置产品实体的属性

打开 属性 选项卡,并创建下图所示的属性:

abp-suite-product-properties

具体细节如下:

  • Name 是必填项,最小长度为 2,最大长度为 120
  • Description 不是必填项,它是 文本区域不可筛选不在列表页面显示
  • StockCount默认值0,最小值为 0,最大值为 999999
  • ReleaseDate可空 的。

您可以保持其他配置为默认设置。

生成代码

abp-suite-product-generating.png

就是这样。您可以点击 保存并生成 按钮开始代码生成过程。

abp-suite-product-generated

ABP Suite 将为您生成必要的代码。完成该过程需要一些时间。过程完成后,您将看到成功消息,点击 确定 按钮。

abp-studio-catalog-service-build-and-start

现在,我们可以通过点击 解决方案运行器 面板中的 启动 按钮(或者直接点击 运行 图标)来启动 CloudCrm.CatalogService 应用程序。

abp-studio-browse-catalog-service-2

应用程序启动后,您可以右键单击并在 CloudCrm.CatalogService 应用程序上选择 浏览,在 ABP Studio 预集成的浏览器中打开它。您可以在 Swagger UI 中看到 Products 控制器。

生成 UI 代理

现在,我们需要为 UI 项目生成 静态 API 代理。右键单击 CloudCrm.Blazor 并选择 ABP CLI -> 生成代理 -> C# 命令:

abp-studio-generate-proxy-blazor-server

它将打开 生成 C# 代理 窗口。选择 CloudCrm.CatalogService 应用程序,它将自动填充 URL 字段。选择 catalog 模块,将服务类型设置为 应用程序,并勾选 不带合约 复选框,因为 CloudCrm.Blazor 项目已经依赖于 CloudCrm.CatalogService.Contracts 包:

abp-studio-generate-proxy-window

要能够选择 应用程序,您必须事先 启动 相关的应用程序。您可以使用 解决方案运行器 来启动应用程序,如前几部分所述。

运行应用程序

现在,停止 解决方案运行器 面板中正在运行的任何应用程序,然后通过点击 解决方案运行器 面板中根项目上的 全部启动 按钮来运行应用程序:

abp-studio-run-build-and-start-all

应用程序启动后,您可以右键单击并在 CloudCrm.Blazor 应用程序上选择 浏览,在 ABP Studio 预集成的浏览器中打开它:

abp-studio-browse-cloud-crm-products

如果看不到 Products 菜单项,您需要将 CatalogServiceProduct 权限授予 admin 角色。您可以通过导航到 身份管理 -> 角色 并编辑 admin 角色来完成此操作。或者,您可以重新启动 CloudCrm.AdministrationService 应用程序以自动为 admin 角色填充所有权限。

当我们创建 Catalog 微服务时,如果选择了“启用集成”选项,CatalogService API 范围也会自动创建。您可以在 CloudCrm.IdentityService 模块(.NET 解决方案)中的 CloudCrm.IdentityService 项目的 OpenIddictDataSeeder 类的 CreateApiScopesAsync 方法中验证新的范围。如果您已经登录到应用程序,您可能需要注销并重新登录,以使用新创建的 API 范围重新授权。

您可以打开 SQL Server Management Studio 查看创建的表和数据:

sql-server-management-studio-products

总结

在本部分中,我们创建了一个名为 Product 的新实体,并为其生成了必要的代码。我们还为 CatalogService 应用程序生成了 UI 代理,并在 CloudCrm.Blazor 项目中为其配置了静态 HTTP 客户端。我们运行了应用程序并测试了 Products 页面。


在本文档中