For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
预约演示登录免费开始
  • 概览
    • 什么是 API 定义?
    • 项目结构
      • 概览
      • 覆盖层(Overlays)
      • 覆盖(Overrides)
      • 身份验证
      • 服务器
      • 同步您的规范
      • OpenAPI generators.yml 参考
Checking status...
SOC2Soc 2 Type II
© 2026 Fern • Birch Solutions, Inc., a Postman company

Documentation

SDKsDocsAsk FernCLI Reference

API Definitions

OpenAPIAsyncAPIOpenRPCgRPC

Resources

BlogSupportPricing

Company

Brand KitPrivacy PolicyTerms of Service
LogoLogo
预约演示登录免费开始
在本页
  • 配置叠加层
  • 定义叠加层文件
  • 跨 API 管理叠加层
OpenAPI

叠加层

||以 Markdown 格式查看|
此页面是否有帮助?
在仪表板中编辑
上一个

什么是 OpenAPI 规范?

下一个

重写

叠加层允许您在不修改原始文件的情况下自定义 OpenAPI 规范。这在以下情况下很有用:

  • 您的 API 规范是从服务器代码自动生成的
  • 您需要为 SDK、文档或生成的 CLI 配置不同的设置
  • 您想要添加 Fern 配置,如分页或 SDK 方法名称
  • 您想要使用 JSONPath 通配符对多个端点进行批量更改

叠加层遵循 OpenAPI 叠加层规范 并在 OpenAPI 生态系统中可移植。

Fern 推荐对 OpenAPI 规范使用叠加层而非覆盖。

覆盖 也完全受支持。如果覆盖对您的团队有效,则无需切换。您也可以同时使用两者(先应用覆盖,再应用叠加层)。

配置叠加层

要使用叠加层,请在规范文件所在的文件夹中创建 overlays 文件,并在 generators.yml 中引用它:

generators.yml
1api:
2 specs:
3 - openapi: openapi.json
4 overlays: overlays.yml

定义叠加层文件

叠加层中的每个操作使用 JSONPath 定位元素,并应用 update 或 remove 操作:

openapi-overlays.yml
1overlay: 1.0.0 # 必需:叠加层规范版本
2info:
3 title: Customize Plant Store API # 必需:叠加层用途的人类可读描述
4 version: 1.0.0 # 必需:用于跟踪此叠加层更改的版本标识符
5actions: # 必需:要应用的有序更改列表
6 - target: $.info # 选择要修改的元素的 JSONPath 表达式
7 update: # 与目标元素合并的属性
8 x-fern-sdk-group-name: plants
9 - target: $.paths['/plants/{plantId}'].get.parameters[?(@.name == 'plantId')]
10 update:
11 x-fern-parameter-name: id

Fern 要求在 JSONPath 过滤器表达式周围使用括号。使用 [?(@.name == 'plantId')] 而不是 [?@.name == 'plantId']。

修改 OpenAPI 属性

使用 update 来更改标准 OpenAPI 属性,如描述、摘要或其他字段:

openapi-overlays.yml
1overlay: 1.0.0
2info:
3 title: Improve API documentation
4 version: 1.0.0
5actions:
6 - target: $.paths['/plants'].get
7 update:
8 summary: List all available plants
9 description: Returns a paginated list of plants in the store inventory.
使用 Fern 扩展进行自定义

使用 update 添加 Fern 扩展:

openapi-overlays.yml
1overlay: 1.0.0
2info:
3 title: Add Fern SDK customizations
4 version: 1.0.0
5actions:
6 # 添加 SDK 组和方法名称
7 - target: $.paths['/plants'].get
8 update:
9 x-fern-sdk-group-name: plants
10 x-fern-sdk-method-name: list
11 - target: $.paths['/plants'].post
12 update:
13 x-fern-sdk-group-name: plants
14 x-fern-sdk-method-name: create
15 # 重命名参数
16 - target: $.paths['/plants/{plantId}'].get.parameters[?(@.name == 'includeDetails')]
17 update:
18 x-fern-parameter-name: withDetails
移除元素

使用 remove: true 从规范中删除元素:

openapi-overlays.yml
1overlay: 1.0.0
2info:
3 title: Remove internal endpoints
4 version: 1.0.0
5actions:
6 - target: $.paths['/internal/debug']
7 description: Remove debug endpoint from public SDK
8 remove: true

跨 API 管理叠加层

generators.yml 中的每个规范接受一个叠加层文件。您可以在多个规范中引用同一个文件,或为不同的配置使用单独的文件。

跨多个规范共享叠加层

当多个规范需要相同的自定义时,将它们指向同一个叠加层文件以避免重复:

generators.yml
1api:
2 specs:
3 - openapi: ./payments-api.yml
4 overlays: shared-overlays.yml # 两个规范使用相同的叠加层
5 - openapi: ./users-api.yml
6 overlays: shared-overlays.yml

如果每个规范需要独特的自定义,请为每个规范创建单独的叠加层文件:

generators.yml
1api:
2 specs:
3 - openapi: ./payments-api.yml
4 overlays: payments-overlays.yml
5 - openapi: ./users-api.yml
6 overlays: users-overlays.yml
为 SDK 和文档分别设置叠加层

通过创建各自包含 generators.yml 的单独文件夹,为 SDK 生成与文档使用不同的叠加层文件:

fern
fern.config.json
openapi.yml
docs
generators.yml
docs-overlays.yml
sdks
generators.yml
sdk-overlays.yml
sdks/generators.yml
1api:
2 specs:
3 - openapi: ../openapi.yml
4 overlays: sdk-overlays.yml
为不同环境设置叠加层

为生产环境与内部 API 配置不同的叠加层:

generators.yml
1groups:
2 production:
3 specs:
4 - openapi: openapi.yml
5 overlays: production-overlays.yml
6 generators:
7 ...
8 internal:
9 specs:
10 - openapi: openapi.yml
11 overlays: internal-overlays.yml
12 generators:
13 ...