Fern:为 API 生成即时文档与多语言 SDK
Fern 官方网站 是一款面向开发者的 API 开发工具,能够从 API 规范自动生成多语言 SDK 和交互式文档,提升开发者体验。
产品概览
Fern 专为开发团队设计,通过解析 OpenAPI、AsyncAPI、gRPC 或自有的 Fern Definition 格式,自动生成类型安全、符合语言习惯的 SDK。它支持 TypeScript、Python、Go、Java、Ruby、C#、PHP 等多种语言,Swift 和 Rust 支持即将推出。
核心能力
SDK 生成
Fern 生成的每个 SDK 均由语言专家设计,包含强类型、内联文档和直观的错误处理。它支持以下特性:
- OAuth 2.0 认证:无缝处理 OAuth 2.0 认证,支持自动令牌管理和刷新
- 服务器发送事件(SSE):内置 SSE 支持,轻松流式传输实时更新
- 自动分页:内置分页辅助工具,自动迭代分页数据
- 多态性(联合类型):在每个语言中本地处理复杂多态数据
- 多部分表单上传:内置实用程序处理多部分上传,支持流式二进制数据和 MIME 类型
- 指数退避重试:自动重试失败请求,最大化 API 正常运行时间
- 幂等性标头:发送幂等性标头确保敏感操作的安全重试
文档生成
Fern 提供完整的文档平台,具备以下功能:
- 代码即文档:使用 git 版本控制和发布文档更改
- SEO 优化:采用行业最佳实践,使网站快速且 SEO 优化
- 预览部署:为每个拉取请求提供唯一 URL 预览文档更改
- API 密钥注入:自动填充 API 密钥,用户可即时进行 API 调用
- 访问控制(RBAC):分配基于角色的权限,配置用户可访问的内容
- 联合认证:支持 SSO、OAuth 和用户名+密码认证
- 版本控制:文档和管理多个版本的产品或 API
- WebSocket 支持:通过 AsyncAPI 规范文档 WebSocket 发送和接收事件
工作流程
Fern 的 SDK 生成过程分为四个简单步骤:
- 导入 API 规范:支持 OpenAPI、AsyncAPI、OpenRPC、gRPC 或 Fern Definition 格式
- 选择生成语言:支持 TypeScript、Python、Go、Java、Ruby、C#、PHP,Swift 和 Rust 即将推出
- 添加自定义代码:使用实用函数和自定义逻辑扩展生成的客户端,重新生成时不会覆盖更改
- 发布包:Fern 语义版本控制并将包发布到每个注册表(如 npm、pypi、maven)
企业级功能
Fern 为企业客户提供专属服务:
- 专业支持:团队协助完善 OpenAPI 规范并启动可扩展至数百万次下载的 SDK
- 自定义主题:为文档创建自定义主题,迁移所有内容并启动网站
- 持续集成:使用 Fern CLI 在发布过程中生成 SDK
- 依赖漏洞扫描:遵循 SLA 检测和修复易受攻击的依赖项
典型使用场景
Fern 已被多家知名公司采用,包括:
- Intercom:自动化 SDK 维护,支持所有流行编程语言
- LaunchDarkly:迁移 700+ 页面内容,创建直观的信息架构
- Merge:从 OpenAPI Generator 迁移,客户对新 SDK 质量印象深刻
- Cohere:从 1 个 SDK 扩展到 4 个 SDK,每年释放 2 名工程师时间
上手建议
开发者可以通过以下方式开始使用 Fern:
小结
Fern 通过自动化 SDK 和文档生成过程,显著提升了 API 开发效率。其企业级功能和对多种编程语言的全面支持,使其成为开发团队提升开发者体验的理想选择。
评论区