cursor-init/.cursor/rules/elysia-api-rules.mdc
expressgy 5b0b37ef78 chore: 项目初始化相关配置与文档归档优化
- Prettier 配置迁移为 .prettierrc.cjs,解决 ESM/CJS 兼容问题
- 优化 package.json,补全元信息、整理依赖、完善 Bun 热更新脚本
- 归档项目初始化 PRD 与任务清单到 tasks/archive,并加日期前缀
- 同步代码风格与格式化配置,提升团队协作一致性

归档文件:tasks/archive/20240610-prd-项目初始化.md, tasks/archive/20240610-tasks-prd-项目初始化.md
2025-06-28 02:03:40 +08:00

110 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description:
globs:
alwaysApply: true
---
# Elysia 后台接口 API 设计与校验规范
## 1. 接口文档自动生成Swagger/OpenAPI
- 每个接口必须通过 `@elysiajs/swagger` 插件自动生成 Swagger 文档,便于前后端协作与接口管理。
- 路由、参数、返回类型、错误码等需在 Swagger 中完整描述。
- 推荐在开发环境默认启用 Swagger UI。
## 2. 参数与返回类型校验
- 所有接口参数body、query、params、headers必须定义类型并进行严格校验。
- 推荐使用Elysia原生t类型校验库。
- 校验规则需明确字段必填、类型、长度、格式、范围等。
- 校验失败时,接口需返回标准 JSON 错误响应,便于用户理解。
- 返回类型也需定义并校验,保证接口契约。
## 3. 错误响应规范
- 所有参数校验失败、类型不匹配等错误,需统一返回如下结构:
```json
{
"code": 400,
"message": "error message",
"data": null
}
```
- 错误码、错误信息需文档化,便于前后端协作。
- 常见的公共的错误和正常相应统一放在validators中的global.response.ts
**注意其他的请求参数和响应验证在同一批接口下放在同一个validators文件中**
## 4. 示例代码
### 4.1 安装依赖
```sh
bun add elysia @elysiajs/swagger valibot
```
### 4.2 接口定义与参数校验
```ts
.get(
'/note/:index',
({ note, params: { index } }) => {
return note.data[index]
},
{
params: t.Object({
index: t.Number()
})
}
)
```
### 4.3 调用接口示例
- 请求:
```json
POST /api/user
{
"name": "A"
}
```
- 响应:
```json
{
"code": 400,
"message": "姓名长度不能少于2个字符",
"data": null
}
```
- 请求:
```json
POST /api/user
{
"name": "张三丰丰丰丰丰丰丰丰"
}
```
- 响应:
```json
{
"code": 400,
"message": "姓名长度不能超过8个字符",
"data": null
}
```
- 请求:
```json
POST /api/user
{
"name": "张三"
}
```
- 响应:
```json
{
"code": 0,
"message": "创建成功",
"data": { "name": "张三" }
}
```
---
**请所有开发者严格遵守以上规范,确保接口文档完整、参数校验严格、错误提示友好(中文),提升用户体验与协作效率。**