Contoso 房地产的打包解决方案

Contoso 房地产应用程序包含用于生成企业级现代可组合前端(或微前端)和云原生应用程序的参考体系结构和组件。 它是一系列最佳做法、体系结构模式和功能组件,可用于生成新式 JavaScript 应用程序并将其部署到 Azure。

Diagram showing cloud architecture of Contoso real estate with Hero services on the left and the complete interaction of the services on the right.

以下包按学习优先级顺序列出。

容器应用和 Azure Database for PostgreSQL 的公共博客

此包为垂直微前端应用程序(博客和门户)提供数据创作和存储功能。 我们通过实现由 Strapi 提供支持的无外设 CMS 来启用这些功能。

Architectural diagram of the blog client and API scenario.

有两个组件构成此解决方案的体系结构:

  • 使用 Strapi 实现的无外设 CMS。
  • 使用 Next.js 实现的前端应用程序,它使用无外设 CMS 中的数据并呈现博客页面。
  • 一个 PostegreSQL 数据库,用于存储无外设 CMS 的数据。 CMS 托管在 Azure 容器应用中,数据库托管在 Azure Database for PostgreSQL 中。 它们将通过带式服务器实现中内置的终结点相互连接。

这两个应用程序都托管在 Azure 容器应用中

包:

使用静态Web 应用和 Azure Functions API 保护门户

此前端应用程序是将 Angular 实现为 JavaScript 框架的用户的主要入口点。

Architectural diagram of the portal client and API scenario.

此服务部署到 Azure Static Web 应用,包括功能,例如

  • 使用简易身份验证进行身份验证和授权

API 后端部署到 Azure Functions,这是一种无服务器计算服务,允许按需运行代码,而无需显式管理基础结构。

集成到无服务器 API 后端的内容数据库是一个 从方案 1 中的无外设 CMS 实现填充的 Azure Database for PostgreSQL

集成到无服务器 API 后端中的用户事件和用户配置文件的数据库是一个 Azure Cosmos DB,它是一种完全托管的 NoSQL 数据库服务,提供多个 API,包括 MongoDB API。

包:

使用安全门户的内置功能进行用户身份验证

用户身份验证在门户的 Azure 静态 Web 应用中作为内置功能提供。 向多个社交媒体提供商提供典型的登录,将用户重定向到授权提供程序以完成身份验证,然后将经过身份验证的用户重定向回应用程序。

Architectural diagram of the user authentication in the portal application.

用户登录后,其用户信息将 存储在 Cosmos DB for MongoDB API 中,例如收藏夹属性和属性预留。

条带付款

此包支持门户中的检查输出过程,以支付属性预留费用。 付款流是通过 Stripe 实现的,这是一种付款处理平台,允许你在线接受付款。 此包容器化部署到 Azure 容器应用的 Fastify 应用程序中的付款处理功能

Architectural diagram of the payments service to the Stripe payment provider.

当 Azure API 管理从 Stripe 收到 Webhook 终结点 URL 的请求时,它会将请求转发到 Fastify API。 API 处理传入的 Webhook 事件,并执行付款操作,例如检查out、检查out 已完成、检查过期。

条带包源代码

剧作家测试

此包提供 Contoso 房地产的端到端测试。 它使用 Playwright 自动执行浏览器并测试应用程序的用户体验。

测试包源代码

文档网站

此包提供了 Contoso 房地产参考体系结构的广泛文档。 它是使用 Docusaurus 构建的,它是一个现代静态网站生成器。

文档包源代码

下一步