llmbackend/app/Constants/ErrorCode.php
Jethro Lin c5258233a8 5. [请求与响应格式](#5-请求与响应格式)
- [5.1 通用请求头](#51-通用请求头)
   - [5.2 响应格式](#52-响应格式)
6. [错误代码](#6-错误代码)
7. [安全性考虑](#7-安全性考虑)
2024-12-04 12:14:43 +08:00

97 lines
3.9 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Constants;
class ErrorCode
{
// 通用错误 (1000-1999)
public const VALIDATION_ERROR = 'E1001';
public const UNAUTHORIZED = 'E1002';
public const FORBIDDEN = 'E1003';
public const RESOURCE_NOT_FOUND = 'E1004';
public const METHOD_NOT_ALLOWED = 'E1005';
public const TOO_MANY_REQUESTS = 'E1006';
public const SERVER_ERROR = 'E1007';
public const SERVICE_UNAVAILABLE = 'E1008';
// 认证相关错误 (2000-2999)
public const INVALID_CREDENTIALS = 'E2001';
public const TOKEN_EXPIRED = 'E2002';
public const TOKEN_INVALID = 'E2003';
public const TOKEN_BLACKLISTED = 'E2004';
public const TOKEN_NOT_FOUND = 'E2005';
// 客户相关错误 (3000-3999)
public const CLIENT_NOT_FOUND = 'E3001';
public const CLIENT_INACTIVE = 'E3002';
public const CLIENT_RATE_LIMIT_EXCEEDED = 'E3003';
public const CLIENT_QUOTA_EXCEEDED = 'E3004';
public const CLIENT_HAS_ACTIVE_TOKENS = 'E3005';
// LLM 提供商相关错误 (4000-4999)
public const PROVIDER_NOT_FOUND = 'E4001';
public const PROVIDER_INACTIVE = 'E4002';
public const PROVIDER_ERROR = 'E4003';
public const PROVIDER_TIMEOUT = 'E4004';
public const PROVIDER_RATE_LIMIT = 'E4005';
// 业务逻辑错误 (5000-5999)
public const INVALID_REQUEST_FORMAT = 'E5001';
public const INVALID_RESPONSE_FORMAT = 'E5002';
public const OPERATION_FAILED = 'E5003';
public const RESOURCE_ALREADY_EXISTS = 'E5004';
public const RESOURCE_IN_USE = 'E5005';
/**
* 获取错误代码对应的默认消息
*
* @param string $code 错误代码
* @return string 错误消息
*/
public static function getMessage(string $code): string
{
return match ($code) {
// 通用错误
self::VALIDATION_ERROR => '请求参数验证失败。',
self::UNAUTHORIZED => '未经授权的访问。',
self::FORBIDDEN => '无权访问该资源。',
self::RESOURCE_NOT_FOUND => '请求的资源不存在。',
self::METHOD_NOT_ALLOWED => '请求方法不允许。',
self::TOO_MANY_REQUESTS => '请求过于频繁,请稍后重试。',
self::SERVER_ERROR => '服务器内部错误。',
self::SERVICE_UNAVAILABLE => '服务暂时不可用。',
// 认证相关错误
self::INVALID_CREDENTIALS => '无效的认证凭据。',
self::TOKEN_EXPIRED => '认证令牌已过期。',
self::TOKEN_INVALID => '无效的认证令牌。',
self::TOKEN_BLACKLISTED => '认证令牌已被禁用。',
self::TOKEN_NOT_FOUND => '认证令牌不存在。',
// 客户相关错误
self::CLIENT_NOT_FOUND => '客户不存在。',
self::CLIENT_INACTIVE => '客户状态为非活跃。',
self::CLIENT_RATE_LIMIT_EXCEEDED => '已超过请求速率限制。',
self::CLIENT_QUOTA_EXCEEDED => '已超过配额限制。',
self::CLIENT_HAS_ACTIVE_TOKENS => '客户存在活跃的认证令牌。',
// LLM 提供商相关错误
self::PROVIDER_NOT_FOUND => 'LLM 提供商不存在。',
self::PROVIDER_INACTIVE => 'LLM 提供商状态为非活跃。',
self::PROVIDER_ERROR => 'LLM 提供商服务错误。',
self::PROVIDER_TIMEOUT => 'LLM 提供商服务超时。',
self::PROVIDER_RATE_LIMIT => 'LLM 提供商限制请求速率。',
// 业务逻辑错误
self::INVALID_REQUEST_FORMAT => '无效的请求格式。',
self::INVALID_RESPONSE_FORMAT => '无效的响应格式。',
self::OPERATION_FAILED => '操作失败。',
self::RESOURCE_ALREADY_EXISTS => '资源已存在。',
self::RESOURCE_IN_USE => '资源正在使用中。',
default => '未知错误。',
};
}
}