1.3 KiB
1.3 KiB
API 合约
本文定义后端 API 的目标形状。实现前可细化,但不要在代码里另起一套不兼容接口。
如果项目没有后端 API,可改成本地模块接口、CLI 参数或事件合约。
通用约定
- 传输:【JSON over HTTPS / GraphQL / gRPC / 本地函数调用】。
- 鉴权:【Session Cookie / Bearer Token / 无】。
- 请求体和响应体编码:【UTF-8 JSON】。
- 时间格式:【ISO 8601 / Unix timestamp】。
- 未登录访问需要权限的接口时返回:【401 / 403】。
通用错误响应:
{
"error": {
"code": "bad_request",
"message": "请求参数不正确"
}
}
账号
POST /api/auth/login
请求:
{
"email": "user@example.com",
"password": "password"
}
成功响应:
{
"user": {
"id": 1,
"email": "user@example.com"
}
}
核心资源
把项目的核心资源按 REST 或其他风格写清楚。
GET /api/items
成功响应:
{
"items": [
{
"id": 1,
"name": "示例"
}
]
}
POST /api/items
请求:
{
"name": "示例"
}
成功响应返回新增资源。
待实现时确认
- 参数校验规则。
- 分页、排序、筛选方式。
- 重复提交是否幂等。
- 错误码枚举。
- 鉴权过期时间和刷新策略。