/** * @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(), }), };