自定义开发者门户
本指南涵盖了如何基于 API7 开发者门户脚手架 自定义 开发者门户(Developer Portal)。
概览
API 开发者门户(API Portal) 包含一个可自定义的开发者门户,供开发者发现和消费 API。API7 提供了一个开源的开发者门户脚手架(Developer Portal Boilerplate)作为基础,它包含:
内置组件:
- 基于 Next.js 构建,允许前端工程师使用熟悉的技术栈。
- 使用 Better Auth 构建的完整用户管理系统。
- 集成了 @api7/portal-sdk 以用于 API 开发者门户的 API 集成。
内置功能:
- 邮箱/密码认证(可启用 SSO)。
- 展示 API 产品并渲染 OpenAPI 文档。
- 支持通过
Try it Out功能测试 API。 - 支持创建应用程序(Applications)和凭证(Credentials)。
- 支持使用 DCR 协议与身份提供商(IdP)集成。
你的前端工程师可以自定义和扩展该基础,以满足你的要求。
有关更多详细信息,请参阅脚手架仓库。
配置
所有配置均通过 apps/site/config.yaml 进行管理。从 config.yaml.example 复制并针对你的环境进行自定义。配置支持环境变量替换:
| 语法 | 行为 |
|---|---|
${VAR} | 必填 - 如果未设置 VAR 则报错 |
${VAR:default} | 选填 - 如果未设置 VAR,则使用 default |
连接到 API 开发者门户后端
开发者门户将连接到 API 开发者门户的后端 API。请确保你的开发者门户可以访问此端点:
portal:
url: ${PORTAL_URL}
token: ${PORTAL_TOKEN}
创建 Portal Token:
- 登录到 API7 企业版控制台(Dashboard)并切换到 API7 提供方门户(Provider Portal)。
- 导航到 开发者门户设置(Developer Portal Settings)。
- 生成一个用于 API 访问的 Token。
- 复制该 Token(格式为:
a7prt-xxxxxxxxxxxx)。
应用程序设置
app:
name: "Your Developer Portal" # 浏览器标题和页眉中显示的名称
desc: "Your portal description" # 用于 SEO 的 meta description
baseURL: "https://your-portal.example.com" # 用于生成链接和 SEO 的公共 URL
trustedOrigins: # 允许跨域和认证回调的来源
- "https://your-portal.example.com"
品牌化自定义
本节中的更改需要重新构建并重新部署应用程序才能生效。对 config.yaml 的更改需要重新启动应用程序。
Logo 与静态资源
将以下文件替换为你组织的静态资源:
| 文件 | 位置 | 目的 |
|---|---|---|
| Favicon | apps/site/app/favicon.ico | 浏览器标签页图标 |
| Logo | apps/site/public/logo.svg | 页眉 Logo |
主题自定义
编辑 apps/site/app/globals.css 以自定义颜色和样式。门户使用了 Tailwind CSS、Shadcn UI 和 Ant Design。
示例:自定义主色调
:root {
--primary: oklch(0.205 0 0);
--primary-foreground: oklch(0.985 0 0);
}
关于可用的主题变量,请参阅脚手架仓库中的 globals.css 文件。
身份验证
脚手架使用 Better Auth 进行身份验证。
邮箱和密码
此配置控制用户注册和登录的邮箱和密码身份验证。
auth:
emailAndPassword:
enabled: true
requireEmailVerification: false
Better Auth 不提供内置的电子邮件服务商集成。若要启用电子邮件验证,你需要在 apps/site/src/lib/auth/server.ts 中集成你首选的电子邮件服务商的 SDK。在没有此集成的情况下,设置 requireEmailVerification: true 将不会发送任何电子邮件。有关更多详细信息,请参阅 Better Auth 电子邮件文档。