菜单

快速入门

相关源文件

本页提供了设置和运行 RealWorld 项目的本地说明。内容涵盖了安装、开发工作流程、数据库设置和应用程序的基本操作。有关 API 规范和端点的信息,请参阅 API 规范

先决条件

在开始 RealWorld 项目之前,请确保已安装以下软件

  • Node.js:版本 18 或更高版本
  • pnpm:版本 8.9.0 或更高版本(首选包管理器)
  • Git:用于克隆存储库

来源:package.json35-37

安装

按照以下步骤在本地设置 RealWorld 项目

  1. 克隆仓库:

  2. 安装依赖项:

这将安装 monorepo 的所有依赖项,包括 API 和文档应用程序的依赖项。

开发工作流

RealWorld 项目使用 Turbo 来协调 monorepo 中的任务。主要开发命令是

命令描述
pnpm dev启动所有应用程序的开发服务器
pnpm build构建所有应用程序以供生产使用
pnpm lint运行所有包的 linting
pnpm format使用 Prettier 格式化代码

来源:package.json24-28 turbo.json4-16

开发架构

以下是开发工作流程的图示

来源:package.json24-28 apps/api/package.json3-9 turbo.json4-16

数据库设置

RealWorld 应用程序使用 SQLite 和 Prisma 作为 ORM。数据库架构定义在 Prisma schema 文件和迁移文件中。

初始设置

  1. 生成 Prisma 客户端:

  2. 运行数据库迁移:

  3. 填充数据库(可选)

数据库 Schema

数据库包含以下主要实体

来源:apps/api/prisma/migrations/20241009081140_init/migration.sql1-95 apps/api/prisma/dev.db20-50

运行 API

API 使用 Nitro 构建,为 Conduit 应用程序提供 RESTful 端点。

开发模式

要在开发模式下运行 API

这将启动一个启用热重载的开发服务器。

API 结构和组件

来源:apps/api/package.json3-9 api/openapi.yml1-30

项目结构

RealWorld 存储库被组织成一个包含多个应用程序的 monorepo。

目录描述
apps/api使用 Nitro 和 Prisma 实现的 API
apps/documentation文档站点
api/API 规范(OpenAPI)和测试工具
.github/GitHub 工作流和模板

关键文件

文件描述
package.json根目录包配置
turbo.jsonTurbo 构建系统配置
api/openapi.ymlOpenAPI 格式的 API 规范
apps/api/prisma/schema.prisma数据库架构定义

来源:package.json1-38 apps/api/package.json1-26 api/openapi.yml1-10

为生产环境构建

构建项目以供生产使用

这将为 monorepo 中的所有应用程序创建优化构建。

启动生产服务器

在生产模式下启动 API 服务器

部署

存储库包含一个用于部署到 Heroku 等平台的 Procfile

web: cd apps/api && npx prisma generate && pnpm build && pnpm start

此命令将

  1. 生成 Prisma 客户端
  2. 构建 API 应用程序
  3. 启动服务器

来源:Procfile1 apps/api/package.json3-9

与 API 交互

服务器运行后,您可以使用 cURL、Postman 或任何 HTTP 客户端等工具与 API 进行交互。API 遵循 api/openapi.yml 中定义的 OpenAPI 规范。

默认用户

系统包含一个用于测试目的的默认用户

来源:apps/api/prisma/dev.db69

故障排除

如果在设置项目时遇到任何问题

  1. 确保已安装 Node.js 18 或更高版本
  2. 确保 pnpm 已正确安装
  3. 尝试删除 node_modules 文件夹并重新安装依赖项
  4. 通过运行 npx prisma migrate reset 检查任何数据库迁移问题

对于 API 特定问题,请参阅 wiki 的 API 规范 部分。