- 重构项目结构:controllers/services -> modules模块化组织 - 新增Drizzle ORM集成和数据库schema定义 - 添加完整的开发规范文档(.cursor/rules/) - 重新组织插件结构为子目录方式 - 新增用户模块和示例代码 - 更新类型定义并移除试验性代码 - 添加API文档和JWT使用示例 关联任务计划文档
82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
/**
|
|
* @file 样例接口响应Schema定义
|
|
* @author hotok
|
|
* @date 2025-06-29
|
|
* @lastEditor hotok
|
|
* @lastEditTime 2025-06-29
|
|
* @description 样例接口的响应结构定义,基于全局响应格式扩展
|
|
*/
|
|
|
|
import { t } from 'elysia';
|
|
import { UserInfoSchema } from './example.schema';
|
|
|
|
/**
|
|
* 根据用户名查询用户成功响应
|
|
*/
|
|
export const GetUserByUsernameSuccessResponse = t.Object({
|
|
code: t.Literal(0, {
|
|
description: '成功响应码',
|
|
}),
|
|
message: t.String({
|
|
description: '成功消息',
|
|
examples: ['查询用户成功'],
|
|
}),
|
|
data: UserInfoSchema,
|
|
});
|
|
|
|
/**
|
|
* 根据用户名查询用户失败响应
|
|
*/
|
|
export const GetUserByUsernameErrorResponse = t.Object({
|
|
code: t.Number({
|
|
description: '错误响应码',
|
|
examples: [400, 401, 404],
|
|
}),
|
|
message: t.String({
|
|
description: '错误消息',
|
|
examples: ['用户不存在', '参数验证失败', '身份认证失败'],
|
|
}),
|
|
data: t.Null({
|
|
description: '错误时数据字段为null',
|
|
}),
|
|
});
|
|
|
|
/**
|
|
* 根据用户名查询用户接口的所有可能响应
|
|
*/
|
|
export const GetUserByUsernameResponses = {
|
|
/** 200 查询成功 */
|
|
200: GetUserByUsernameSuccessResponse,
|
|
/** 400 业务错误 */
|
|
400: t.Object({
|
|
code: t.Literal(400),
|
|
message: t.String({
|
|
examples: ['用户不存在', '用户状态异常'],
|
|
}),
|
|
data: t.Null(),
|
|
}),
|
|
/** 401 认证失败 */
|
|
401: t.Object({
|
|
code: t.Literal(401),
|
|
message: t.String({
|
|
examples: ['身份认证失败,请重新登录', 'Token已过期'],
|
|
}),
|
|
data: t.Null(),
|
|
}),
|
|
/** 422 参数验证失败 */
|
|
422: t.Object({
|
|
code: t.Literal(422),
|
|
message: t.String({
|
|
examples: ['用户名长度必须在2-50字符之间', '用户名不能为空'],
|
|
}),
|
|
data: t.Null(),
|
|
}),
|
|
/** 500 服务器内部错误 */
|
|
500: t.Object({
|
|
code: t.Literal(500),
|
|
message: t.String({
|
|
examples: ['服务器内部错误,请稍后重试', '数据库查询失败'],
|
|
}),
|
|
data: t.Null(),
|
|
}),
|
|
};
|