Fern 定义中的端点
Fern 定义中的端点
在 Fern 中,您可以将相关的端点组织到一个服务中。这种分组方式提高了清晰度,使生成的 SDK 更加符合习惯。
服务定义
每个服务定义:
- 一个基础路径:所有端点 HTTP 路径的共同前缀
- 服务是否需要身份验证
- 端点
要定义空基础路径的服务,请使用空字符串:base-path: ""
章节显示名称
默认情况下,API 参考中的章节名称来源于服务文件名(例如,user.yml 变成 “User”)。要覆盖章节的显示名称,请在 docs.yml 中使用 section 属性。
SDK 方法名称
SDK 方法名称直接从服务文件名和端点键派生而来。文件名成为命名空间,端点键成为方法名称。
例如,给定以下定义:
Fern 生成一个名为 client.users.create() 的方法。
端点
端点包括:
- 一个 URL 路径 (可选择性地包括路径参数)
- 一个显示名称 (可选)
- 一个 HTTP 方法
- 请求信息 (可选)
- 查询参数
- 标头
- 请求体
- 成功(200)响应信息 (可选)
- 此端点可能返回的错误(非 200)响应 (可选)
URL 路径
每个端点都有一个 URL 路径。
端点的完整路径是以下内容的连接:
- 环境 URL
- 服务
base-path - 端点
path
端点显示名称
显示名称将作为端点的标题出现。默认情况下,显示名称等于端点名称的”标题大小写”。如果您想要自定义端点名称,可以设置显示名称。
在下面的示例中,“Add a new plant to the store” 显示为 API 参考中端点页面的标题。
路径参数
为您的端点提供路径参数以创建动态 URL。
服务也可以有路径参数:
查询参数
每个端点可以指定查询参数:
allow-multiple
使用 allow-multiple 指定查询参数在 URL 中允许多次出现,如 ?filter=jane&filter=smith。这将修改生成的 SDK,以便使用者可以为查询参数提供多个值。
身份验证
每个端点可以覆盖服务中指定的身份验证行为。
标头
每个端点可以指定请求标头:
服务也可以指定请求标头。这些标头将级联到服务的端点。
请求体
端点可以指定请求体类型。
内联请求体
如果请求体是一个对象,您可以内联类型声明。这使生成的 SDK 更加符合习惯。
成功响应
端点可以指定 response,这是成功(200)调用时将返回的体的类型。
响应状态码
您还可以使用 status-code 字段为成功响应指定自定义状态码。
分页
Fern 支持偏移量、游标、URI 和基于路径的分页方案。要在生成的 SDK 中设置自动分页:
- 使用
pagination字段标注所需的分页端点 - 指定分页方案(
offset、cursor、next_uri或next_path) - 使用点访问表示法指定
results的位置。
偏移分页选项
在大多数偏移分页配置中包含 step,以确保偏移量按页面大小递增。当您的 API 为附加页面返回布尔指示符时,请使用 has-next-page。
pagination 字段支持以下属性:
幂等端点
将端点标记为幂等,以允许 SDK 用户指定幂等性标头进行安全的请求重试。您还必须在 api.yml 中配置幂等性标头来定义哪些标头可用。
错误响应
端点可以指定错误响应,详细说明端点可能返回的非 200 响应。
您可以在错误页面了解更多关于如何定义错误的信息。
指定示例
当您声明一个示例时,您也可以指定该端点可能如何使用的一些示例。编译器使用这些示例来增强生成的输出。示例将在您的 SDK、API 文档和 Postman 集合中显示为注释。
您可以为端点、类型和错误添加示例。
如果您要向端点添加示例,而该类型已经有示例,您可以使用 $ 引用它。
示例包含端点调用的所有信息,包括请求体、路径参数、查询参数、标头和响应体。
失败示例
您也可以指定失败的端点调用示例。向响应示例添加 error 属性来指定您正在演示的失败。
如果错误有体,那么您必须在示例中包含该体。
从类型引用示例
为了避免重复,您可以使用 $ 从类型引用示例。