项目结构
项目结构
在使用 Fern 生成 SDK 之前,需要设置合适的 GitHub 仓库结构来存放 API 定义和 SDK 代码,使您和用户都能直观地访问、维护和更新代码。
仓库架构
Fern 推荐使用多仓库结构,包含:
- 源仓库 包含 API 定义和 SDK 生成配置
- SDK 仓库 为每个 SDK(TypeScript、Python、Go 等)分别创建仓库
company-repo# 源仓库
.github
workflows# 所有 SDK 的发布工作流
fern
fern.config.json# 根级配置
generators.yml# 引用 SDK 仓库
definition
typescript-sdk-repo# SDK 仓库
python-sdk-repo# SDK 仓库
go-sdk-repo# SDK 仓库
这种分离结构允许您集中管理 API 定义,同时将每个 SDK 保存在独立的仓库中,便于独立版本控制和分发。
示例
查看 Cohere 的 fern 文件夹 以及 TypeScript 和 Python SDK 仓库。
核心配置文件
源仓库包含一个 fern/ 文件夹,其中包含 API 定义和顶级 generators.yml 文件。
fern.config.json
fern.config.json 文件存储您的组织名称和 Fern CLI 版本。固定版本可以提供确定性的构建。
fern.config.json
在使用本地安装的 CLI 时,将 version 设置为 "*"。有关详细信息,请参见 本地安装 Fern CLI。
generators.yml
generators.yml 文件在 groups 部分配置 SDK 生成。对于 OpenAPI/AsyncAPI,您还必须在 api.specs 部分声明 API 规范位置。
OpenAPI/AsyncAPI
Fern Definition
generators.yml
示例
查看 Cohere 的 generators.yml 文件 和 Vapi 的 generators.yml 文件。
完整的配置选项请参见 generators.yml 参考页面。
API 定义文件
有关组织 API 定义文件和处理多个 API 的详细信息,请参见 项目结构(API 定义)。