Loading...

文章背景图

Strapi:开源 Headless CMS 安装与内容 API 搭建指南

2026-10-27
0
- 字
- 分钟
|

Strapi 是开源、可自托管的 Headless CMS,让开发者快速构建内容 API,同时给内容编辑者提供友好的编辑界面。你定义好内容模型,Strapi 就自动生成完整的 REST 与 GraphQL API,供前端、移动 App、IoT 设备直接消费。100% JavaScript/TypeScript,灵活可定制。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/strapi/strapi
官方网站 https://strapi.io
开源协议 自定义 SEE LICENSE(源码可用,详见 LICENSE)
主要语言 JavaScript/TypeScript(约 88.9%)
Star 数 约 73.0k
支持数据库 SQLite、PostgreSQL、MySQL、MariaDB

核心能力:可视化 Content-Type Builder 定义内容结构、自动生成 REST 与 GraphQL API、开箱即用的细粒度角色权限、内置媒体库、国际化(i18n)、草稿与发布、TypeScript 支持、可扩展插件系统。

二、官方图片

Strapi 官方 Logo:

Strapi Logo

Strapi 后端请求流程(Routes → Middlewares → Controllers → Services):

Strapi 后端架构

三、环境要求

  • Node.js(LTS,Strapi 官方文档列明支持版本)。
  • 包管理器 npm/yarn/pnpm。
  • 数据库:默认 SQLite(零配置);生产推荐 PostgreSQL/MySQL/MariaDB。
  • 内存:建议至少 2GB。

四、完整部署步骤

1. 用 Quickstart 创建项目

npx create-strapi@latest my-project

该命令会生成一个带默认功能的全新项目:认证、权限、内容管理、Content-Type Builder、文件上传。

2. 进入目录并启动开发服务器

cd my-project
npm run develop

启动后浏览器访问 http://localhost:1337/admin ,首次进入会引导创建管理员账号。

3. 创建管理员账号

在欢迎页填写邮箱、密码、名,即可进入 Strapi 管理后台。

4. 定义内容类型

在后台 Content-Type Builder 中点击「Create new collection type」,例如命名 Article,添加字段:title(文本)、content(富文本)、cover(媒体)、publishedAt(日期)。保存后 Strapi 自动重建并生成对应 API。

5. 录入内容并发布

进入 Content Manager,选择 Article,点击「Create new entry」填写内容,保存后点击「Publish」。

6. 暴露 API

在 Settings → Users & Permissions 里给 Public 角色勾选 Article: find、Article: findOne,保存后即可通过 REST 访问:

GET http://localhost:1337/api/articles
GET http://localhost:1337/api/articles/:id

GraphQL 则访问 http://localhost:1337/graphql 。

7. Docker 部署

Strapi 不提供官方镜像,用社区 CLI 工具基于你的项目生成 Dockerfile 与 docker-compose:

npx @strapi-community/dockerize@latest

也可直接部署到 Strapi Cloud(https://cloud.strapi.io),官方托管含数据库、媒体库与 CDN。

五、使用方法

Content-Type Builder

可视化设计内容结构,无需写代码。支持文本、富文本、数字、布尔、日期、媒体、枚举、关系、组件、动态区等字段。

自动 API

每个内容类型自动生成 REST 与 GraphQL 接口,支持过滤、排序、分页、字段筛选、人口(populate)关联数据。

角色与权限

内置 Users & Permissions 插件,可对 Public/Authenticated 及自定义角色精细配置每个 API 的访问权限。

媒体库

内置媒体库管理上传的图片/文件,支持文件夹、替代文本、预览。

i18n 与草稿发布

开启国际化后内容可按多语言版本管理;Draft & Publish 支持草稿与已发布版本分离。

Strapi AI

内置 AI 层,可自动完成内容建模、媒体 alt 文本、翻译等工作。

六、常见问题 FAQ

1. 启动后访问不了 admin? 确认 npm run develop 成功启动在 1337 端口;防火墙/反向代理放行;首次需在 /admin 创建管理员账号。

2. 为什么前端调 API 返回 403? 没有给 Public 角色开放权限。到 Settings → Users & Permissions → Public 勾选对应内容类型的 find/findOne 后保存。

3. 生产环境用什么数据库? 默认 SQLite 只适合开发/小规模;生产推荐 PostgreSQL 或 MySQL/MariaDB,在配置中切换连接。

4. 如何自定义 API 逻辑? Strapi 的请求走 Routes → Middlewares → Controllers → Services,可在项目 src/api/ 下自定义 controller/service 覆盖默认行为。

5. 有官方 Docker 镜像吗? 没有。用社区工具 npx @strapi-community/dockerize 基于项目生成 Dockerfile 与 compose;或直接用 Strapi Cloud。

6. 能用 GraphQL 吗? 可以。安装 GraphQL 插件后,访问 /graphql 端点即可用 GraphQL 查询内容。

七、跳转链接

  • GitHub 仓库:https://github.com/strapi/strapi
  • 官方网站:https://strapi.io
  • 官方文档:https://docs.strapi.io
  • CLI 安装:https://docs.strapi.io/cms/installation/cli
  • Strapi Cloud:https://cloud.strapi.io
  • 演示模板 LaunchPad:https://github.com/strapi/LaunchPad
评论交流

文章目录