统治API文档领域十年的Swagger,正被两个后来者从不同方向瓦解。
为什么API文档工具需要重新评估
API文档是前后端协作的契约,也是开发者体验的第一张名片。文档不清晰,联调效率直接打折;文档过时,Bug数量指数上升。过去十年,Swagger(现OpenAPI生态)凭借代码注解自动生成文档的工作流,几乎成为API文档的事实标准。
但2026年的前端生态已经变了——.NET 9移除了默认的Swagger UI脚手架,FastAPI社区大量项目从Swagger UI切到Scalar,Stoplight被SmartBear收购后战略方向调整。工具选型不再理所当然。
Swagger、Stoplight、Scalar三者代表了三种完全不同的产品哲学:代码优先、设计优先、文档渲染优先。理解它们的底层逻辑,比单纯对比功能列表更有价值。
Swagger:代码优先的生态霸主
Swagger的核心工作流是代码注解驱动文档。以Spring Boot为例:
@RestController@RequestMapping("/api/users")public class UserController { @Operation(summary = "获取用户信息", description = "根据用户ID返回用户详情") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "成功返回用户信息"), @ApiResponse(responseCode = "404", description = "用户不存在") }) @GetMapping("/{id}") public ResponseEntity<User> getUser( @Parameter(description = "用户ID", required = true, example = "12345") @PathVariable Long id ) { User user = userService.findById(id); return ResponseEntity.ok(user); }}通过springdoc-openapi等库在运行时解析这些注解,生成openapi.json规范文件,再通过Swagger UI渲染成交互式文档。流程完全自动化,代码即文档,文档即代码。
技术实现细节:Swagger UI本质上是一个静态HTML页面,通过JavaScript加载并解析OpenAPI规范文件(JSON或YAML格式),使用Preact渲染交互式界面。这种架构决定了它不依赖任何后端服务,可以部署在任何静态托管平台上。
核心优势:
• 零额外维护成本:文档跟随代码变更自动更新,不会出现"代码改了文档没改"的问题 • 生态极广:几乎所有主流后端框架(Spring Boot、FastAPI、Gin、ASP.NET Core、NestJS等)都有对应的OpenAPI生成库 • 规范标准:OpenAPI规范本身就是行业标准,生成的规范文件可以被任何兼容工具消费
核心劣势:
• UI设计过时:绿蓝配色、扁平布局,社区长期吐槽"像2010年的产品",对面向外部开发者的API门户尤其不友好 • 功能边界明确:Swagger UI只能做"API参考文档"的渲染,不包含入门指南、认证教程、变更日志、SDK下载等门户级功能 • 团队协作需付费:多人在线编辑、版本管理、审核流程等功能需要购买SwaggerHub(现SmartBear API Hub),个人版每月23美元起,团队版价格更高
Stoplight:设计优先的可视化平台
Stoplight的产品哲学是设计驱动开发——在写任何代码之前,先用可视化工具把API设计出来,团队达成一致后再开始编码。
核心工作流:
1. 在Stoplight Studio的可视化界面中定义API,包括路径、参数、请求体、响应结构、错误码 2. 系统自动生成符合OpenAPI规范的YAML/JSON文件 3. 基于规范自动生成交互式文档门户 4. 内置Mock服务器,前端可在后端未开发时直接对接模拟数据 5. 提供校验工具,在设计阶段检测规范错误和风格违规
实际使用示例:
# Stoplight Studio 生成的 OpenAPI 规范片段openapi: 3.0.3info: title: 用户服务API version: 1.0.0paths: /api/users/{id}: get: summary: 获取用户信息 parameters: - name: id in: path required: true schema: type: integer example: 12345 responses: '200': description: 成功 content: application/json: schema: $ref: '#/components/schemas/User'components: schemas: User: type: object properties: id: type: integer name: type: string email: type: string required: - id - name - email核心优势:
• 可视化降低门槛:产品经理、技术文档工程师也可以参与API设计,无需手写YAML • 设计即规范:从源头保证OpenAPI规范的正确性,避免手写YAML的语法错误 • Mock开箱即用:规范定义好后立即生成Mock服务器,前后端可以并行开发 • 风格指南强制执行:内置规则引擎,确保所有API遵循统一的命名规范和数据结构风格
核心劣势:
• 价格门槛高:2023年被SmartBear收购后,免费自托管方案被放弃。团队版从每月44美元起,个人免费版只支持3个API设计文件和基础功能 • 产品定位模糊:被收购后功能逐步向SwaggerHub合并,产品路线图不明确,长期稳定性存疑 • 学习曲线:需要理解"设计优先"的完整工作流,而不仅仅是"生成文档"这一个环节
Scalar:开源的现代化文档渲染引擎
Scalar的定位极为精准——替代Swagger UI。它不做API设计、不生成OpenAPI规范,专注把已有的OpenAPI规范文件渲染成体验优秀的交互式文档。
核心使用方式:
<!DOCTYPE html><html><head> <title>API文档</title> <style> /* 可选:自定义主题变量 */ :root { --scalar-font: 'Inter', sans-serif; --scalar-color-1: #1a1a1a; --scalar-color-accent: #8b5cf6; }</style></head><body> <div id="app"></div> <script type="module"> import { createScalarApp } from '@scalar/next'; // 加载 OpenAPI 规范 const response = await fetch('/openapi.json'); const spec = await response.json(); // 渲染文档 const app = createScalarApp({ spec: spec, // 可选配置 theme: 'purple', // 内置多种主题 darkMode: true, // 默认开启暗色模式 showSidebar: true, }); document.getElementById('app').appendChild(app);</script></body></html>对于主流框架,Scalar提供了专门集成方案。以React为例:
import { ApiReference } from '@scalar/next-react';import '@scalar/next-react/dist/style.css';function ApiDocs() { return (<ApiReference spec={openapiSpec} configuration={{ theme: 'purple', darkMode: true, withDefaultFonts: true, // 自定义标头,显示品牌信息 customCss: ` .scalar-app .sidebar .sidebar-header { background: #1a1a2e; } ` }} /> );}框架集成覆盖范围从.NET、FastAPI、Express到Next.js、Laravel、Hono。尤其值得关注的是,.NET 9官方移除了Swagger UI脚手架后,在迁移指南中将Scalar列为推荐替代方案:
# .NET 9 中使用 Scalardotnet add package Scalar.AspNetCore// Program.csapp.MapScalarApiReference(options => { options.WithTheme(ScalarTheme.Purple); options.WithTitle("My API Docs");});核心优势:
• 完全开源且可自托管:MIT协议,代码托管在GitHub,无厂商锁定 • 内置完整API客户端:比Swagger UI的"Try It"强大得多,支持环境变量、请求历史、响应时间线、离线模式,有开发者评价"像Postman++" • 设计现代:暗色/亮色主题、干净排版、响应式布局,API门户气质拉满 • 零配置接入:一个HTML文件 + 几行JavaScript即可,对已有OpenAPI规范的项目几乎没有接入成本
核心劣势:
• 生态较新:虽然GitHub Star数增长极快,但社区规模和插件生态不如Swagger • 不做设计:假设你已经有了完整的OpenAPI规范,不提供Stoplight那种从零设计的可视化编辑器 • 品牌定制需代码:虽然支持自定义CSS,但深度品牌定制需要写代码,不像Stoplight那样有点击式配置
横向对比
选型建议
场景一:已有OpenAPI规范,只想换掉Swagger UI的界面
→ 选Scalar。零配置、零成本,一个HTML文件完成切换,文档颜值和交互体验直接提升一个档次。从Swagger UI迁移到Scalar是2025-2026年社区最流行的做法。
场景二:从零设计API,团队有产品经理或技术文档工程师参与
→ 选Stoplight。可视化编辑器降低了非开发者的参与门槛,设计评审可以在工具内完成。前提是预算充足(团队版每月44美元起)。
场景三:追求轻量、开源、可自托管、无厂商锁定
→ 选Scalar。MIT协议意味着你可以随意修改、商用、再分发。代码在自己手里,不依赖任何商业公司的产品路线。
场景四:需要完整API生命周期管理(设计+文档+测试+Mock+SDK生成)
→ 三个工具都不够用。Swagger+SwaggerHub组合成本高,Stoplight被收购后战略不明,Scalar定位单一。建议评估Apifox、Insomnia等一体化平台。
场景五:需要API门户(含入门指南、变更日志、SDK下载等)
→ 考虑Stoplight或Scalar自建门户,配合文档站生成工具(如Docusaurus、VitePress)做完整组合。Swagger UI单独使用无法满足门户需求。
三个工具解决的是API文档生命周期的不同环节。Swagger是行业标准,Stoplight是设计平台,Scalar是渲染引擎。选哪个,取决于你的OpenAPI规范现在处于什么状态、团队里谁在参与API设计、以及你愿意花多少钱解决文档问题。
夜雨聆风