API 文档 — Swagger
Finch 内置 OpenAPI/Swagger 文档生成器。直接在 Dart 代码中为端点添加注解。
设置
1. 创建 ApiController
import 'package:finch/finch_route.dart';
class UserApiController extends ApiController {
@override
String get apiTitle => '用户 API';
@override
String get apiVersion => '1.0.0';
@ApiDoc(
summary: '获取所有用户',
description: '返回所有活跃用户的列表',
parameters: [
ApiParameter(name: 'page', in_: 'query', type: 'integer'),
ApiParameter(name: 'limit', in_: 'query', type: 'integer'),
],
responses: [
ApiResponse(statusCode: 200, description: '成功'),
ApiResponse(statusCode: 401, description: '未认证'),
],
)
Future<String> getUsers() async {
// ...
return rq.renderData(data: users);
}
}
2. 注册路由
router.get('/api/users', UserApiController().getUsers);
3. 连接 ApiDoc
FinchConfigs(
enableApiDoc: true,
apiDocPath: '/api/docs',
)
文档 UI 可在 /api/docs 访问。
ApiParameter
| 字段 | 类型 | 描述 |
|---|---|---|
name |
String |
参数名称 |
in_ |
String |
'query'、'path'、'header'、'body' |
type |
String |
数据类型(例如:'string'、'integer') |
required |
bool |
是否必填(默认:false) |
description |
String? |
可选描述 |
ApiResponse
ApiResponse(
statusCode: 201,
description: '用户已创建',
schema: {'type': 'object', 'properties': {'id': {'type': 'integer'}}},
)
预定义快捷方式
Finch 提供简化注解:
@ApiGet(summary: '获取项目')
@ApiPost(summary: '创建项目')
@ApiPut(summary: '更新项目')
@ApiDelete(summary: '删除项目')