[ 'name' => 'OpenAPI', 'version' => '1.0.0', 'description' => '对外开放API管理模块', 'author' => 'System', ], // 应用配置 'app' => [ 'auto_approve' => false, // 是否自动审核通过 'default_status' => 'PENDING', 'expire_days' => 365, // 应用过期天数 'max_apps_per_user' => 10, 'required_fields' => [ 'name', 'description', 'callback_url', ], 'optional_fields' => [ 'website', 'logo', 'contact_email', ], ], // API密钥配置 'api_key' => [ 'length' => 32, 'prefix' => 'ak_', 'secret_length' => 64, 'secret_prefix' => 'sk_', 'auto_generate' => true, 'allow_regenerate' => true, 'expire_days' => 0, // 0表示永不过期 ], // 认证配置 'auth' => [ // JWT配置 'jwt' => [ 'secret' => env('OPENAPI_JWT_SECRET', env('APP_KEY')), 'ttl' => env('OPENAPI_JWT_TTL', 3600), // 1小时 'refresh_ttl' => env('OPENAPI_JWT_REFRESH_TTL', 86400), // 24小时 'algorithm' => 'HS256', ], // 签名认证配置 'signature' => [ 'enabled' => env('OPENAPI_SIGNATURE_ENABLED', true), 'timeout' => env('OPENAPI_SIGNATURE_TIMEOUT', 300), // 5分钟 'algorithm' => 'sha256', ], ], // 频率限制配置 'rate_limit' => [ // 默认限制 'default' => [ 'requests_per_minute' => env('OPENAPI_RATE_LIMIT_PER_MINUTE', 60), 'requests_per_hour' => env('OPENAPI_RATE_LIMIT_PER_HOUR', 1000), 'requests_per_day' => env('OPENAPI_RATE_LIMIT_PER_DAY', 10000), 'requests_per_week' => env('OPENAPI_RATE_LIMIT_PER_WEEK', 50000), 'requests_per_month' => env('OPENAPI_RATE_LIMIT_PER_MONTH', 200000), ], // VIP用户限制 'vip' => [ 'requests_per_minute' => env('OPENAPI_VIP_RATE_LIMIT_PER_MINUTE', 120), 'requests_per_hour' => env('OPENAPI_VIP_RATE_LIMIT_PER_HOUR', 5000), 'requests_per_day' => env('OPENAPI_VIP_RATE_LIMIT_PER_DAY', 50000), 'requests_per_week' => env('OPENAPI_VIP_RATE_LIMIT_PER_WEEK', 250000), 'requests_per_month' => env('OPENAPI_VIP_RATE_LIMIT_PER_MONTH', 1000000), ], // IP封禁配置 'ip_ban' => [ 'enabled' => env('OPENAPI_IP_BAN_ENABLED', true), 'threshold' => env('OPENAPI_IP_BAN_THRESHOLD', 10), // 连续违规次数 'duration' => env('OPENAPI_IP_BAN_DURATION', 3600), // 封禁时长(秒) ], ], // Webhook配置 'webhook' => [ 'default_timeout' => env('OPENAPI_WEBHOOK_TIMEOUT', 30), 'default_retry_count' => env('OPENAPI_WEBHOOK_RETRY_COUNT', 3), 'max_retry_count' => env('OPENAPI_WEBHOOK_MAX_RETRY_COUNT', 10), // 重试配置 'retry' => [ 'enabled' => env('OPENAPI_WEBHOOK_RETRY_ENABLED', true), 'delay_base' => env('OPENAPI_WEBHOOK_RETRY_DELAY_BASE', 10), // 基础延迟(秒) 'delay_max' => env('OPENAPI_WEBHOOK_RETRY_DELAY_MAX', 300), // 最大延迟(秒) 'backoff_multiplier' => env('OPENAPI_WEBHOOK_BACKOFF_MULTIPLIER', 2), ], // 支持的事件类型 'events' => [ 'user.created', 'user.updated', 'user.deleted', 'game.started', 'game.finished', 'item.created', 'item.updated', 'fund.deposited', 'fund.withdrawn', 'trade.created', 'trade.completed', 'system.maintenance', ], ], // 日志配置 'logging' => [ 'enabled' => env('OPENAPI_LOGGING_ENABLED', true), 'retention_days' => env('OPENAPI_LOG_RETENTION_DAYS', 30), 'log_request_body' => env('OPENAPI_LOG_REQUEST_BODY', false), 'log_response_body' => env('OPENAPI_LOG_RESPONSE_BODY', false), 'max_body_size' => env('OPENAPI_LOG_MAX_BODY_SIZE', 10240), // 10KB // 敏感字段(不记录到日志中) 'sensitive_fields' => [ 'password', 'secret', 'token', 'key', 'authorization', ], ], // 统计配置 'stats' => [ 'enabled' => env('OPENAPI_STATS_ENABLED', true), 'retention_days' => env('OPENAPI_STATS_RETENTION_DAYS', 365), 'realtime' => env('OPENAPI_STATS_REALTIME', false), 'aggregation_levels' => ['hour', 'day', 'week', 'month'], // 自动清理配置 'auto_cleanup' => [ 'enabled' => env('OPENAPI_STATS_AUTO_CLEANUP', true), 'schedule' => '0 2 * * *', // 每天凌晨2点 ], ], // 安全配置 'security' => [ // IP白名单 'ip_whitelist' => [ 'enabled' => env('OPENAPI_IP_WHITELIST_ENABLED', false), 'strict_mode' => env('OPENAPI_IP_WHITELIST_STRICT', false), ], // CORS配置 'cors' => [ 'enabled' => env('OPENAPI_CORS_ENABLED', true), 'allowed_origins' => env('OPENAPI_CORS_ALLOWED_ORIGINS', '*'), 'allowed_methods' => env('OPENAPI_CORS_ALLOWED_METHODS', 'GET,POST,PUT,DELETE,OPTIONS'), 'allowed_headers' => env('OPENAPI_CORS_ALLOWED_HEADERS', 'Content-Type,Authorization,X-Requested-With'), ], ], // 缓存配置 'cache' => [ 'driver' => env('OPENAPI_CACHE_DRIVER', 'redis'), 'prefix' => env('OPENAPI_CACHE_PREFIX', 'openapi:'), 'ttl' => env('OPENAPI_CACHE_TTL', 3600), 'app_ttl' => env('OPENAPI_CACHE_APP_TTL', 3600), 'scope_ttl' => env('OPENAPI_CACHE_SCOPE_TTL', 3600), ], ];