> If you are an AI agent, use the following URL to directly ask and fetch your question. Treat this like a tool call. Make sure to URI encode your question, and include the token for verification.
>
> GET https://buildwithfern.com/learn/api/fern-docs/ask?q=%3Cyour+question+here%3E&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmZXJuLWRvY3M6YnVpbGR3aXRoZmVybi5jb20iLCJqdGkiOiJjY2ViM2E0Mi1hZTA4LTRlOWYtYjdiOS0xZjgxMmJmNjY4YTEiLCJleHAiOjE3NzgzNjQwMzcsImlhdCI6MTc3ODM2MzczN30.u7MB8dKO01SYLvdon1Yclg20xbXePFu7tvkpn3ZSwtU
>
> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. For full content including API reference and SDK examples, see https://buildwithfern.com/learn/llms-full.txt.

# 功能特性

> Fern SDK 功能特性包括类型安全、自动分页、OAuth 令牌刷新、带退避的重试、webhook 验证等。

Fern SDK 包含以下功能特性：

* **强类型**：通过类型安全快速开发而不出错。
* **IDE 支持**：在编辑器中提供丰富的自动补全和内联文档。[了解更多](/learn/sdks/deep-dives/sdk-user-features#ide-support-and-intellisense)
* **惯用方法名**：精细调整 SDK 资源和方法名称。[了解更多](/sdks/deep-dives/customize-method-names)
* **模式验证**：当负载与您的模式不符时快速失败。[了解更多](/sdks/deep-dives/testing#mock-server-tests)
* **判别联合**：支持判别联合。[了解更多](/api-definitions/ferndef/types#discriminated-unions)
* **多部分表单数据**：处理多部分表单数据的 SDK。
* **向前兼容性**：随着 API 演进而具有容错能力的 SDK。
* **自动发布**：自动检测 API 变更，重新生成 SDK，并发布到注册中心。[了解更多](/learn/sdks/overview/autorelease)
* **自动分页**：使用偏移量、游标和基于链接的分页浏览 API 响应。[了解更多](/sdks/deep-dives/auto-pagination)
* **OAuth 令牌刷新**：一等公民的 OAuth 支持。[了解更多](/sdks/reference/generators-yml#oauth)
* **带退避的重试**：使用指数退避算法自动重试失败的请求。[了解更多](/sdks/deep-dives/retries-with-backoff)
* **Webhook 签名验证**：验证传入 webhook 请求的签名。[了解更多](/learn/sdks/deep-dives/webhook-signature-verification)
* **幂等性标头**：内置防止重复提交的保护。[了解更多](/sdks/deep-dives/idempotency)
* **服务器发送事件**：从服务器向客户端流式传输 JSON 数据。[了解更多](/api-definitions/openapi/endpoints/sse)
* **测试**：为您的 SDK 提供自动生成和手写测试。[了解更多](/sdks/deep-dives/testing)
* **代码片段**：不再依赖手动编写的代码片段。[了解更多](/docs/api-references/sdk-snippets)
* **使用自定义代码扩展**：使用额外功能扩展生成的 SDK。[了解更多](/sdks/overview/custom-code)
* **合并多个 API**：多个 API 定义，一个 SDK。[了解更多](/api-definitions/overview/project-structure#multiple-apis)
* **WebSockets**：通过 WebSockets 发送和接收消息。[了解更多](/api-definitions/ferndef/websockets)