本页提供了设置和运行 RealWorld 项目的本地说明。内容涵盖了安装、开发工作流程、数据库设置和应用程序的基本操作。有关 API 规范和端点的信息,请参阅 API 规范。
在开始 RealWorld 项目之前,请确保已安装以下软件
按照以下步骤在本地设置 RealWorld 项目
克隆仓库:
安装依赖项:
这将安装 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 文件和迁移文件中。
生成 Prisma 客户端:
运行数据库迁移:
填充数据库(可选)
数据库包含以下主要实体
来源:apps/api/prisma/migrations/20241009081140_init/migration.sql1-95 apps/api/prisma/dev.db20-50
API 使用 Nitro 构建,为 Conduit 应用程序提供 RESTful 端点。
要在开发模式下运行 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.json | Turbo 构建系统配置 |
api/openapi.yml | OpenAPI 格式的 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
此命令将
来源:Procfile1 apps/api/package.json3-9
服务器运行后,您可以使用 cURL、Postman 或任何 HTTP 客户端等工具与 API 进行交互。API 遵循 api/openapi.yml 中定义的 OpenAPI 规范。
系统包含一个用于测试目的的默认用户
如果在设置项目时遇到任何问题
node_modules 文件夹并重新安装依赖项npx prisma migrate reset 检查任何数据库迁移问题对于 API 特定问题,请参阅 wiki 的 API 规范 部分。