# Strapi Documentation - [账户账单详情](https://docs.strapi.io/cloud/account/account-billing): 账单详情和发票在个人资料页面管理,可以在此更新付款方式并查看发票历史记录。 - [个人资料设置](https://docs.strapi.io/cloud/account/account-settings): 个人资料页面的设置包括账户详情、已连接的账户以及账户删除选项。 - [数据库](https://docs.strapi.io/cloud/advanced/database): 默认的 PostgreSQL 可以通过调整配置和环境变量来替换为任何支持的 SQL 数据库。 - [电子邮件提供商](https://docs.strapi.io/cloud/advanced/email): 第三方电子邮件服务通过插件和环境变量集成,以替代默认发件人。 - [为 Strapi Cloud 上传提供商配置](https://docs.strapi.io/cloud/advanced/upload): 像 S3 或 Cloudinary 这样的外部存储需要插件设置、安全中间件和云变量。 - [命令行接口 (CLI) {#command-line-interface-cli}](https://docs.strapi.io/cloud/cli/cloud-cli): CLI 命令处理登录、项目部署、关联、列出和注销,无需远程存储库。 - [缓存与性能 {#caching--performance}](https://docs.strapi.io/cloud/getting-started/caching): 通过 Cache-Control 头进行边缘缓存可以减少大型静态内容的延迟和服务器负载。 - [Strapi 云基础 {#strapi-cloud-fundamentals}](https://docs.strapi.io/cloud/getting-started/cloud-fundamentals): 🌐 Strapi Cloud fundamentals - [Strapi 云端 - 仪表板部署](https://docs.strapi.io/cloud/getting-started/deployment): 了解如何将你的 Strapi 应用部署到 Strapi 云。 - [Strapi 云端 - CLI 部署](https://docs.strapi.io/cloud/getting-started/deployment-cli): 学习如何通过 CLI 部署你的 Strapi 应用。 - [项目部署](https://docs.strapi.io/cloud/getting-started/deployment-options): 学习如何通过 Cloud 仪表板或 CLI 在 Strapi Cloud 上部署你的 Strapi 应用。 - [欢迎使用 Strapi Cloud 文档! {#welcome-to-the-strapi-cloud-documentation}](https://docs.strapi.io/cloud/getting-started/intro): Strapi Cloud 文档包含与设置、部署、更新和自定义你的 Strapi Cloud 账户和应用相关的所有技术文档。 - [账单和使用信息 {#information-on-billing--usage}](https://docs.strapi.io/cloud/getting-started/usage-billing): 🌐 Information on billing & usage - [合作](https://docs.strapi.io/cloud/projects/collaboration): 项目所有者通过“分享”按钮邀请维护者,管理待处理的邀请,并撤销访问权限。 - [部署管理](https://docs.strapi.io/cloud/projects/deploys): 部署触发器可以是手动的,也可以在 git 推送时自动触发,并且能够从仪表板或命令行接口取消正在进行的构建。 - [部署历史和日志](https://docs.strapi.io/cloud/projects/deploys-history): 部署选项卡列出每个构建的状态,并允许深入检查构建和运行时日志。 - [通知](https://docs.strapi.io/cloud/projects/notifications): 铃铛图标打开最近部署事件的动态,在30天后自动清除。 - [项目概览](https://docs.strapi.io/cloud/projects/overview): 项目页面列出了所有应用及其状态和快捷操作;选择某一个会打开一个显示指标和控制的仪表板。 - [运行时日志](https://docs.strapi.io/cloud/projects/runtime-logs): 运行时日志标签流式传输服务器的实时输出,尽管免费计划的日志在应用缩放为零时会重置。 - [项目设置](https://docs.strapi.io/cloud/projects/settings): 设置区域涵盖项目级别的控制(通用、账单、计划、发票)以及每个环境的配置。 - [管理面板定制](https://docs.strapi.io/cms/admin-panel-customization): 管理员面板可以通过编辑 src/admin/app 并使用 extensions 文件夹来替换徽标、网站图标、本地语言、翻译、主题、打包器或编辑器,从而定制以匹配你的品牌。 - [管理面板打包器](https://docs.strapi.io/cms/admin-panel-customization/bundlers): 支持的 JavaScript 打包工具会影响构建和开发流程。 - [管理面板扩展](https://docs.strapi.io/cms/admin-panel-customization/extension): 了解有关扩展 Strapi 管理面板的更多信息。 - [网站图标](https://docs.strapi.io/cms/admin-panel-customization/favicon): 替换 Strapi 管理面板中显示的 favicon。 - [首页自定义](https://docs.strapi.io/cms/admin-panel-customization/homepage): 管理面板主页显示默认内容和个人资料小部件,并支持通过 app.widgets.register API 添加自定义内容。 - [本地化与翻译](https://docs.strapi.io/cms/admin-panel-customization/locales-translations): 通过更新 config.locales 数组来配置管理面板语言,并使用 config.translations 或自定义翻译文件覆盖默认或插件字符串。 - [标志](https://docs.strapi.io/cms/admin-panel-customization/logos): 通过扩展管理应用来更新登录和导航徽标。优先使用 SVG 以获得清晰的显示效果;如可能,请提供明/暗两种版本以增强对比度。 - [主题扩展](https://docs.strapi.io/cms/admin-panel-customization/theme-extension): 扩展 Strapi 的管理面板主题。 - [自定义富文本编辑器](https://docs.strapi.io/cms/admin-panel-customization/wysiwyg-editor): 了解有关在 Strapi 管理面板中自定义所见即所得编辑器的各种策略的更多信息。 - [Strapi 客户端](https://docs.strapi.io/cms/api/client): Strapi 客户端库简化了与你的 Strapi 后端的交互,提供了一种方法来获取、创建、更新和删除内容。 - [内容 API](https://docs.strapi.io/cms/api/content-api): 了解更多关于 Strapi 5 的内容 API - [文件](https://docs.strapi.io/cms/api/document): 了解 Strapi v5 中的文档是什么 - [文档服务 API](https://docs.strapi.io/cms/api/document-service): 文档服务 API 是从后端服务器或插件与你的内容交互的推荐方式。 - [使用文档服务 API 的字段](https://docs.strapi.io/cms/api/document-service/fields): 使用 Strapi 的文档服务 API 来选择查询中要返回的字段。 - [在文档服务 API 中使用过滤器](https://docs.strapi.io/cms/api/document-service/filters): 本文档提供有关文档服务 API 中可用过滤器的信息。 - [在文档服务 API 中使用区域参数](https://docs.strapi.io/cms/api/document-service/locale): 使用 Strapi 的文档服务 API 在查询中处理本地版本。 - [扩展文档服务行为](https://docs.strapi.io/cms/api/document-service/middlewares): 本文档提供有关文档服务 API 中间件的信息。 - [使用 Document Service API 的 Populate](https://docs.strapi.io/cms/api/document-service/populate): 使用 Strapi 的文档服务 API 来填充或选择一些字段。 - [在文档服务 API 中使用排序和分页](https://docs.strapi.io/cms/api/document-service/sort-pagination): 使用 Strapi 的文档服务 API 对查询结果进行排序和分页 - [在文档服务 API 中使用草稿与发布](https://docs.strapi.io/cms/api/document-service/status): 使用 Strapi 的文档服务 API 返回文档的草稿或已发布版本 - [GraphQL API](https://docs.strapi.io/cms/api/graphql): import DeepFilteringBlogLink from '/docs/snippets/deep-filtering-blog.md' - [OpenAPI 规范](https://docs.strapi.io/cms/api/openapi): 学习如何使用 @strapi/openapi 包为你的 Strapi 应用生成 OpenAPI 规范 - [REST API参考](https://docs.strapi.io/cms/api/rest): 使用 Strapi 为你生成的 REST API 端点与你的内容类型进行交互。 - [过滤器](https://docs.strapi.io/cms/api/rest/filters): 使用 Strapi 的 REST API 来过滤请求的结果。 - [REST API 指南](https://docs.strapi.io/cms/api/rest/guides/intro): 深入研究一些特定的 REST API 主题,使用详细解释某些用例或提供分步说明的指南。 - [交互式查询构建器](https://docs.strapi.io/cms/api/rest/interactive-query-builder): 使用一个利用 querystring 库来构建查询 URL 的交互式工具 - [本地化](https://docs.strapi.io/cms/api/rest/locale): 浏览 REST API 参考以获取 locale 参数,通过 REST 利用国际化功能。 - [参数](https://docs.strapi.io/cms/api/rest/parameters): 使用 API 参数来优化你的 Strapi REST API 查询。 - [填充并选择](https://docs.strapi.io/cms/api/rest/populate-select): 使用 populate 参数在 REST API 响应中包含关系、媒体字段、组件和动态区域。使用 fields 参数仅返回特定字段。 🌐 Use the populate parameter to include relations, media fields, components, and dynamic zones in REST API responses. Use the fields parameter to return only specific fields. - [关系](https://docs.strapi.io/cms/api/rest/relations): 使用 REST API 管理关系的顺序 - [排序与分页](https://docs.strapi.io/cms/api/rest/sort-pagination): 使用 Strapi 的 REST API 对你的数据进行排序或分页。 - [状态](https://docs.strapi.io/cms/api/rest/status): 使用 Strapi 的 REST API 来处理文档的草稿或已发布版本。 - [上传文件](https://docs.strapi.io/cms/api/rest/upload): 学习如何使用 /api/upload 端点通过 REST API 向 Strapi 上传文件。 - [后端定制](https://docs.strapi.io/cms/backend-customization): Strapi 的后端是一个基于 Koa 的服务器,请求会通过全局中间件、路由、控制器、服务和模型,然后 Document 服务才返回响应。 - [控制器](https://docs.strapi.io/cms/backend-customization/controllers): 控制器将处理业务逻辑的操作打包在 Strapi 的 MVC 模式中的每个路由下。本文档演示了如何生成控制器、使用 createCoreController 扩展核心控制器,以及将繁重的逻辑委托给服务。 - [中间件](https://docs.strapi.io/cms/backend-customization/middlewares): 中间件在应用或 API 级别上改变请求或响应的流程。本文档区分了全局中间件与路由中间件,并通过生成模式展示了自定义实现方法。 - [模型](https://docs.strapi.io/cms/backend-customization/models): 模型通过内容类型和可重用组件定义 Strapi 的内容结构。本指南将介绍如何在内容类型构建器或 CLI 中创建这些模型,以及如何使用可选的生命周期钩子管理模式文件。 - [政策](https://docs.strapi.io/cms/backend-customization/policies): 策略在控制器之前执行,以对路由执行授权或其他检查。本文档中的说明涵盖了生成全局或特定范围的策略以及将它们连接到路由配置中。 - [请求与响应](https://docs.strapi.io/cms/backend-customization/requests-responses): Koa 的上下文(ctx)在每个 Strapi 端点中携带请求信息、状态和响应数据。本文档详细说明了 ctx.request、ctx.state 和 ctx.response,以及用于在任何地方访问上下文的辅助工具。 - [路线](https://docs.strapi.io/cms/backend-customization/routes): 路由将传入的 URL 映射到控制器,并为每种内容类型预生成页面。本文档展示了如何添加或自定义核心和自定义路由,并附加策略或中间件以实现额外控制。 - [服务](https://docs.strapi.io/cms/backend-customization/services): 服务存储可重用的函数,以保持控制器简洁并遵循 DRY 原则。本文件说明了如何使用 createCoreService 生成或扩展服务,以及如何为 API 或插件组织它们。 - [网络钩子](https://docs.strapi.io/cms/backend-customization/webhooks): Webhooks 让 Strapi 在内容发生变化时通知外部系统,同时为了隐私省略 Users 类型。在 config/server 中的配置设置了默认的头信息和触发第三方处理的端点。 - [命令行接口](https://docs.strapi.io/cms/cli): Strapi 配备了功能齐全的命令行接口(CLI),让你可以在几秒钟内搭建和管理你的项目。 - [配置](https://docs.strapi.io/cms/configurations): 了解如何管理和自定义你的 Strapi 应用的配置。 - [API 调用配置](https://docs.strapi.io/cms/configurations/api): /config/api 集中管理响应隐私、REST 默认设置(前缀、分页限制、最大请求大小)以及对 REST 内容 API 和文档服务的严格参数验证。 - [CRON 任务](https://docs.strapi.io/cms/configurations/cron): Cron 作业通过 node-schedule 在特定时间安排自定义函数,通过服务器配置和可选任务文件激活。 - [数据库配置](https://docs.strapi.io/cms/configurations/database): /config/database 定义了对 SQLite、MySQL 和 PostgreSQL 等支持的数据库的连接、客户端和连接池。 - [环境变量配置](https://docs.strapi.io/cms/configurations/environment): Strapi 特定的环境变量和 .env usage 启用每个环境的配置,并且提供 env() 辅助工具来转换值。 - [功能配置](https://docs.strapi.io/cms/configurations/features): /config/features 中的未来标志用于切换 Strapi 的实验性功能,允许你自行承担风险进行早期测试。 - [生命周期函数](https://docs.strapi.io/cms/configurations/functions): src/index 托管全局注册、引导和销毁函数,以在应用生命周期中运行逻辑。 - [中间件配置](https://docs.strapi.io/cms/configurations/middlewares): /config/middlewares 下达全局中间件,启用自定义名称或解析,并公开内置配置选项。 - [插件配置](https://docs.strapi.io/cms/configurations/plugins): /config/plugins 启用或禁用插件并覆盖其设置,并提供用于本地插件开发的示例。 - [服务器配置](https://docs.strapi.io/cms/configurations/server): /config/server 管理主机、端口、URL、代理、定时任务等;更改需要重新构建管理面板。 - [TypeScript 配置](https://docs.strapi.io/cms/configurations/typescript): TypeScript 配置说明了项目的 tsconfig 文件、输出目录以及一个可选的 config/typescript.js|ts,该选项可以在服务器重启时自动生成类型。本文档解释了哪些文件夹存储已编译的代码以及如何切换此实验性功能。 - [自定义](https://docs.strapi.io/cms/customization): 了解更多关于 Strapi 5 自定义的可能性 - [数据库迁移](https://docs.strapi.io/cms/database-migrations): 数据库迁移在模式同步之前运行一次性脚本,以在升级过程中保留数据。实验性 API 使用按字母顺序排列的 up() 文件,并会警告缺少向下迁移和可能的表删除。 - [数据库事务](https://docs.strapi.io/cms/database-transactions): 数据库事务将多个操作组合在一起,使它们作为一个整体成功或回滚。实验性的 strapi.db.transaction 辅助工具提供 trx、提交和回滚功能,用于封装的服务调用。 - [部署](https://docs.strapi.io/cms/deployment): 部署选项包括硬件/软件先决条件、环境变量设置以及在启动前构建管理面板。在文档中:提供了针对特定提供商的指南和高级指南的链接,以帮助选择合适的托管策略。 - [错误处理](https://docs.strapi.io/cms/error-handling): Strapi 的 API 会以一致的结构返回错误,并允许后端代码为控制器、服务、策略或生命周期抛出自定义异常。本档文档列出了错误类、上下文助手以及编写有意义响应的示例。 - [管理面板](https://docs.strapi.io/cms/features/admin-panel): 管理面板作为 Strapi 的后台,用于管理内容类型、条目以及管理员和终端用户账户。本文件概述了管理面板的功能,然后重点介绍了用于管理界面语言和模式、登录和个人信息以及用于品牌标识的徽标的个人资料设置。 - [API 令牌](https://docs.strapi.io/cms/features/api-tokens): API 令牌为 REST 和 GraphQL 请求提供范围化身份验证,而无需暴露用户凭据。本指南解释了令牌类型、创建、过期以及在管理面板中的安全使用方法。 - [审计日志](https://docs.strapi.io/cms/features/audit-logs): 审计日志捕获每一个可搜索、可过滤历史记录中的管理操作,以帮助排除故障和合规。在本指南中,示例展示了如何查看数据内容以及按用户或日期进行过滤。 - [内容历史](https://docs.strapi.io/cms/features/content-history): 内容历史记录存储以前的文档版本,编辑可以通过内容管理器比较并恢复早期状态。本档说明文档解释了如何浏览和恢复工作流,以便快速回滚错误。 - [内容经理](https://docs.strapi.io/cms/features/content-manager): 内容管理器是 Strapi 用于浏览和编辑条目的界面。本档提供了内容管理器的概述,并解释了视图以及如何在字段、组件、动态区域和关联字段中编写内容。 - [内容类型构建器](https://docs.strapi.io/cms/features/content-type-builder): 内容类型构建器是用于设计内容类型和组件的工具。本指南概述了内容类型构建器,并涵盖字段选项、关联关系、组件使用,以及分享数据建模技巧。 - [自定义字段](https://docs.strapi.io/cms/features/custom-fields): 自定义字段通过新的字段类型扩展 Strapi,这些字段在内容类型构建器和内容管理器中表现得像原生字段。本文档中的说明涵盖了通过插件构建或安装字段以及以编程方式注册字段的步骤。 - [数据管理](https://docs.strapi.io/cms/features/data-management): 数据管理处理基于 CLI 的内容导入、导出以及在 Strapi 实例之间的传输,同时在管理面板中进行部分配置。本文件中解释的逐步命令和前提设置可确保迁移安全。 - [草稿与发布](https://docs.strapi.io/cms/features/draft-and-publish): 草稿与发布将草稿与已发布条目分开,让编辑可以在发布前进行内容准备。本文档展示了如何按内容类型启用该功能,以及如何管理发布或取消发布操作。 - [电子邮件](https://docs.strapi.io/cms/features/email): 电子邮件功能通过本地 SMTP 或外部提供商(如 SendGrid)发送事务信息。本文档中的设置指南涵盖提供商配置以及通过控制器或钩子扩展发送方式。 - [国际化](https://docs.strapi.io/cms/features/internationalization): 国际化可以直接从管理面板管理多个地区的内容。本指南解释了如何添加地区、翻译条目以及控制特定地区的权限。 - [媒体库](https://docs.strapi.io/cms/features/media-library): 媒体库集中管理所有上传的资源,提供搜索、过滤和文件夹组织功能。本说明文档包括供应商选项、上传工作流程,以及在内容中插入媒体的说明。 - [预览](https://docs.strapi.io/cms/features/preview): 预览将内容管理器连接到前端,以便编辑人员在发布之前查看更改。在本指南中:配置预览 URL 的步骤。 - [基于角色的访问控制(RBAC)](https://docs.strapi.io/cms/features/rbac): 基于角色的访问控制(RBAC)管理管理员角色和管理面板中的细粒度权限。本文件涵盖创建角色、分配权限以及保护管理工作流程。 - [发布](https://docs.strapi.io/cms/features/releases): 将组条目发布到可发布的批次中,以触发跨内容类型和地区的同时发布或取消发布操作。本文档中的说明详细介绍了创建发布、添加条目以及了解计划限制的内容。 - [审查工作流程](https://docs.strapi.io/cms/features/review-workflows): 审查工作流定义了用于内容审查的自定义多阶段流程,促进从草稿到发布的协作。本文档演示了如何创建工作流和分配阶段。 - [单点登录 (SSO)](https://docs.strapi.io/cms/features/sso): 单点登录(SSO)允许管理员通过身份提供者(如 Azure AD)进行身份验证,而不是使用本地密码。本指南的配置步骤涵盖了启用 SSO 和映射角色。 - [用户与权限](https://docs.strapi.io/cms/features/users-permissions): 用户与权限管理终端用户账户、基于JWT的身份验证以及基于角色的API访问权限。本文档解释了如何创建角色、配置权限以及发布API令牌以实现安全访问控制。 - [安装](https://docs.strapi.io/cms/installation): 学习安装 Strapi 的多种不同方法以及如何开始使用它。 - [迁移到 Strapi 5 的额外资源](https://docs.strapi.io/cms/migration/v4-to-v5/additional-resources/introduction): 🌐 Additional resources for upgrading to Strapi 5 - [重大变更](https://docs.strapi.io/cms/migration/v4-to-v5/breaking-changes): 查看 Strapi v4 与 v5 之间引入的所有重大更改列表。 - [升级到 Strapi 5 - 简介和常见问题](https://docs.strapi.io/cms/migration/v4-to-v5/introduction-and-faq): 了解更多关于如何升级到 Strapi 5 的信息 - [逐步升级到 Strapi 5 的指南](https://docs.strapi.io/cms/migration/v4-to-v5/step-by-step): 按照此逐步指南从 Strapi v4 升级到 Strapi 5 - [管理员钩子](https://docs.strapi.io/cms/plugins-development/admin-hooks): Hooks API 允许插件创建扩展点(createHook 在 register 中)并订阅它们(registerHook 在 bootstrap 中)。Hooks 可以串行、瀑布式或并行运行。Strapi 为内容管理器的列表和编辑视图包含了预定义的 hooks。 🌐 The Hooks API lets plugins create extension points (createHook in register) and subscribe to them (registerHook in bootstrap). Hooks run in series, waterfall, or parallel. Strapi includes predefined hooks for the Content Manager's List and Edit views. - [管理员注入区](https://docs.strapi.io/cms/plugins-development/admin-injection-zones): 注入区域是在管理界面中预定义的区域,插件可以在这些区域注入 React 组件。使用 getPlugin('content-manager').injectComponent() 来扩展内置视图,或在 registerPlugin 中使用 injectionZones 定义自己的区域。 🌐 Injection zones are predefined areas in the admin UI where plugins can inject React components. Use getPlugin('content-manager').injectComponent() to extend built-in views, or define your own zones with injectionZones in registerPlugin. - [管理员本地化](https://docs.strapi.io/cms/plugins-development/admin-localization): 使用 registerTrads 注册翻译文件,使用你的插件 ID 作为键前缀以避免冲突,并在组件中使用 react-intl 的 useIntl 钩子。Strapi 会自动将插件翻译与核心翻译合并。 🌐 Register translation files with registerTrads, prefix keys with your plugin ID to avoid conflicts, and use react-intl's useIntl hook in components. Strapi merges plugin translations with core translations automatically. - [管理员导航与设置](https://docs.strapi.io/cms/plugins-development/admin-navigation-settings): 在 register 中使用 addMenuLink 来添加侧边栏链接,在 register 中使用 createSettingSection 来创建设置组,并在 bootstrap 中使用 addSettingsLink/addSettingsLinks 来扩展现有的设置部分。 🌐 Use addMenuLink in register to add sidebar links, createSettingSection in register to create settings groups, and addSettingsLink/addSettingsLinks in bootstrap to extend existing settings sections. - [管理面板 API 概述](https://docs.strapi.io/cms/plugins-development/admin-panel-api): 管理面板 API 提供 register、bootstrap 和 registerTrads 钩子,用于向 Strapi 的 UI 注入 React 组件和翻译。菜单、设置、注入区、reducer 和钩子 API 允许插件添加导航、配置面板或自定义操作。 - [Redux 存储和 reducers](https://docs.strapi.io/cms/plugins-development/admin-redux-store): 在 register 期间使用 addReducers() 向 Redux 存储添加自定义状态。然后使用 useSelector 读取状态,使用 useDispatch 更新状态,并使用 useStore 订阅更改。adminapp 切片暴露主题、语言环境、权限和认证数据。 🌐 Use addReducers() during register to add custom state to the Redux store. Then read state with useSelector, update it with useDispatch, and subscribe to changes with useStore. The adminapp slice exposes theme, locale, permissions, and authentication data. - [内容管理器 API](https://docs.strapi.io/cms/plugins-development/content-manager-apis): 内容管理器 API 通过 addEditViewSidePanel、addDocumentAction、addDocumentHeaderAction 或 addBulkAction 向列表或编辑视图添加面板和操作。每个 API 都接受带有类型化上下文的组件函数,从而实现对文档感知 UI 注入的精确控制。 - [插件创建与设置](https://docs.strapi.io/cms/plugins-development/create-a-plugin): 插件 SDK 可以在没有 Strapi 项目的情况下生成插件,并使用 watch:link 和 yalc 将它们链接到现有应用。在本指南中:构建和验证命令用于打包插件以发布到 npm 或市场,以及用于 monorepo 和本地设置的信息。 - [开发插件](https://docs.strapi.io/cms/plugins-development/developing-plugins): 关于 Strapi 插件开发的代际介绍 - [如何从插件创建管理员权限](https://docs.strapi.io/cms/plugins-development/guides/admin-permissions-for-plugins): 学习如何为你的插件创建和配置管理员权限 - [如何为 Strapi 插件创建组件](https://docs.strapi.io/cms/plugins-development/guides/create-components-for-plugins): 学习如何为你的 Strapi 插件创建和配置组件 - [如何通过 Strapi 插件将数据从服务器传递到管理面板](https://docs.strapi.io/cms/plugins-development/guides/pass-data-from-server-to-admin): 学习如何通过 Strapi 插件将数据从服务器传递到管理面板 - [如何从 Strapi 插件存储和访问数据](https://docs.strapi.io/cms/plugins-development/guides/store-and-access-data): 学习如何从 Strapi 插件存储和访问数据 - [插件 SDK 参考](https://docs.strapi.io/cms/plugins-development/plugin-sdk): Strapi 插件 SDK 命令的参考文档 - [插件结构](https://docs.strapi.io/cms/plugins-development/plugin-structure): 了解有关 Strapi 插件结构的更多信息 - [插件扩展](https://docs.strapi.io/cms/plugins-development/plugins-extension): 现有插件可以通过将代码放置在 /src/extensions 或使用全局 register/bootstrap 钩子来覆盖。本手册中的说明涵盖了重塑插件内容类型模式或服务器逻辑 —— 尽管上游更新可能会破坏扩展。 - [插件的服务器 API](https://docs.strapi.io/cms/plugins-development/server-api): 服务器 API 定义了插件在 Strapi 服务器上注册、暴露和执行的内容。它包括生命周期钩子、路由、控制器、服务、策略、中间件和配置。使用入口文件声明插件的贡献内容,然后导航到下面为每个功能提供的专用页面。 - [服务器配置](https://docs.strapi.io/cms/plugins-development/server-configuration): 服务器 API 提供一个带有 default 属性和 validator 函数的 config 对象。Strapi 会将默认值与用户的 config/plugins 文件进行深度合并,然后在插件加载前运行验证。使用 strapi.plugin('my-plugin').config('key') 在运行时读取配置。 - [服务器内容类型](https://docs.strapi.io/cms/plugins-development/server-content-types): 服务器 API 从服务器入口文件导出一个 contentTypes 对象以声明插件内容类型。推荐的命名约定是对导出键和值 info.singularName 使用相同的值,以便在查询或清理数据时运行时 UID 保持可预测。 - [服务器控制器和服务](https://docs.strapi.io/cms/plugins-development/server-controllers-services): 就像 Strapi 核心一样,插件也可以有控制器和服务。插件控制器处理 HTTP 层:它们接收 ctx、调用服务并返回响应。插件服务包含可重用的业务逻辑,并通过文档服务 API 与内容类型交互。保持控制器简洁,将字段逻辑放在服务中。 - [服务器获取器及使用](https://docs.strapi.io/cms/plugins-development/server-getters-usage): 通过顶层 getter (strapi.plugin('my-plugin').service('name')) 或全局 getter (strapi.service('plugin::my-plugin.name')) 访问插件资源。两者返回相同的对象。在自己的插件中使用顶层 getter,在应用代码或其他插件中使用全局 getter。路由没有全局 getter 的对应项。配置使用专用的配置 API。 - [服务器生命周期](https://docs.strapi.io/cms/plugins-development/server-lifecycle): 服务器 API 有 3 个生命周期函数。在应用完全初始化之前,使用 register() 声明功能;初始化 Strapi 后,使用 bootstrap() 运行逻辑;关闭时,使用 destroy() 清理资源。每个函数都接收 { strapi } 作为其参数。 - [服务器策略和中间件](https://docs.strapi.io/cms/plugins-development/server-policies-middlewares): 就像 Strapi 核心一样,插件也可以有策略和中间件。插件策略在控制器动作之前运行,并返回 true 或 false 来允许或阻止请求。插件中间件在整个请求/响应周期中按顺序运行,并调用 next() 以继续。将策略和中间件声明为工厂函数的对象,并在路由中通过插件命名空间的名称引用它们。 - [服务器路由](https://docs.strapi.io/cms/plugins-development/server-routes): 服务器 API 从服务器入口文件导出一个 routes 值以公开插件端点。仅对隐式管理路由使用数组格式,使用命名路由格式分离管理和内容 API 路由,或使用工厂回调格式进行动态路由配置。 - [文档插件](https://docs.strapi.io/cms/plugins/documentation): 文档插件通过扫描内容类型和路由,为你的 API 自动生成 OpenAPI/Swagger 文档。此文档将引导你完成安装、设置自定义以及限制对文档的访问。 - [GraphQL 插件](https://docs.strapi.io/cms/plugins/graphql): GraphQL 插件添加了一个 GraphQL 端点和基于 Apollo 的沙箱,用于创建查询和变更。配置/plugins 中的选项可以让你调整深度、项目限制以及其他 Apollo Server 设置,这些内容在本指南中有详细说明。 - [通过市场安装插件](https://docs.strapi.io/cms/plugins/installing-plugins-via-marketplace): 应用内市场列出了带有徽章、搜索功能以及指向详细 Strapi 市场页面的“更多”链接的插件和提供商。本文件说明了如何浏览卡片并按照特定提供商的说明安装新的集成。 - [Sentry 插件](https://docs.strapi.io/cms/plugins/sentry): Sentry 插件将 Strapi 连接到 Sentry,以报告错误并附加调试元数据。本说明文档详细介绍了安装、基于环境的配置以及在非生产环境中禁用或跳过发送事件的方法。 - [项目结构](https://docs.strapi.io/cms/project-structure): 探索任何默认 Strapi 应用的项目结构。 - [快速入门指南 - Strapi 开发者文档](https://docs.strapi.io/cms/quick-start): 准备好启动 Strapi,你最喜欢的开源无头 CMS,在不到三分钟内运行起来。 - [模板](https://docs.strapi.io/cms/templates): 模板是完整的 Strapi 应用,可以通过 CLI 标志(如 --template、--template-path 和 --template-branch)启动新项目。本指南中的说明涵盖了从 GitHub 引用模板以及将任何 Strapi 项目变成可重用模板的方法。 - [测试](https://docs.strapi.io/cms/testing): 测试依赖于 Jest 和 Supertest,以及一个内存中的 SQLite 数据库,一个经过修补的 Strapi 测试工具,它还支持 TypeScript 配置文件,以及在设置期间自动注册 /hello 路由和认证角色的辅助工具。 - [TypeScript](https://docs.strapi.io/cms/typescript): 为你的 Strapi 应用开始使用 TypeScript - [TypeScript 开发](https://docs.strapi.io/cms/typescript/development): TypeScript 开发展示了 Strapi 类型定义以实现自动补全、使用 ts:generate-types 进行模式类型生成,以及通过 strapi() 或 strapi.compile() 以编程方式启动服务器。本指南涉及插件构建和管理生成的类型定义。 - [TypeScript 指南](https://docs.strapi.io/cms/typescript/guides): 了解如何在开发你的 Strapi 项目时利用 TypeScript。 - [升级工具](https://docs.strapi.io/cms/upgrade-tool): Strapi 升级工具是一个 CLI 命令,可帮助自动升级到新的 Strapi 版本。