专门处理对外开放API的需求,为第三方应用提供安全、稳定的API接入服务
OpenAPI模块是专门用于管理对外开放API的模块,作为服务提供方,为第三方应用提供API接入服务。该模块提供完整的API管理功能,包括应用注册、认证授权、权限控制、访问限制、调用监控等。
app/Module/OpenAPI/
├── AdminControllers/ # 后台管理控制器
│ ├── AppController.php # 应用管理控制器
│ ├── ApiController.php # API管理控制器
│ ├── LogController.php # 调用日志控制器
│ └── StatController.php # 统计分析控制器
├── Controllers/ # API控制器
│ ├── AuthController.php # 认证控制器
│ ├── AppController.php # 应用信息控制器
│ └── WebhookController.php # 回调控制器
├── Middleware/ # 中间件
│ ├── ApiAuthMiddleware.php # API认证中间件
│ ├── RateLimitMiddleware.php # 频率限制中间件
│ ├── ScopeMiddleware.php # 权限范围中间件
│ └── IpWhitelistMiddleware.php # IP白名单中间件
├── Commands/ # 命令行工具
│ ├── GenerateApiKeyCommand.php # 生成API密钥命令
│ ├── CleanExpiredTokensCommand.php # 清理过期令牌命令
│ └── ApiStatsCommand.php # API统计命令
├── Databases/ # 数据库相关文件
│ └── GenerateSql/ # 数据库创建脚本
├── Docs/ # 详细文档目录
│ ├── README.md # 文档索引
│ ├── API文档.md # API接口文档
│ ├── SDK使用指南.md # SDK使用指南
│ └── 开发者指南.md # 开发者指南
├── Enums/ # 枚举类型定义
│ ├── API_STATUS.php # API状态枚举
│ ├── APP_STATUS.php # 应用状态枚举
│ ├── AUTH_TYPE.php # 认证类型枚举
│ ├── SCOPE_TYPE.php # 权限范围枚举
│ └── RATE_LIMIT_TYPE.php # 限流类型枚举
├── Events/ # 事件类
│ ├── ApiCallEvent.php # API调用事件
│ ├── AppCreatedEvent.php # 应用创建事件
│ └── RateLimitExceededEvent.php # 限流超出事件
├── Listeners/ # 事件监听器
│ ├── ApiCallListener.php # API调用监听器
│ ├── AppCreatedListener.php # 应用创建监听器
│ └── RateLimitListener.php # 限流监听器
├── Models/ # 数据模型
│ ├── OpenApiApp.php # 开放API应用模型
│ ├── OpenApiKey.php # API密钥模型
│ ├── OpenApiScope.php # API权限范围模型
│ ├── OpenApiLog.php # API调用日志模型
│ ├── OpenApiRateLimit.php # 频率限制模型
│ └── OpenApiWebhook.php # 回调配置模型
├── Providers/ # 服务提供者
│ └── OpenAPIServiceProvider.php # OpenAPI服务提供者
├── Repositorys/ # 数据仓库
│ ├── OpenApiAppRepository.php # 应用仓库
│ ├── OpenApiLogRepository.php # 日志仓库
│ └── OpenApiStatRepository.php # 统计仓库
├── Services/ # 服务类
│ ├── OpenApiService.php # 开放API服务
│ ├── AuthService.php # 认证服务
│ ├── RateLimitService.php # 限流服务
│ ├── ScopeService.php # 权限服务
│ ├── LogService.php # 日志服务
│ └── WebhookService.php # 回调服务
├── Validators/ # 验证器
│ ├── AppValidator.php # 应用验证器
│ ├── ApiValidator.php # API验证器
│ └── AuthValidator.php # 认证验证器
├── SDK/ # 客户端SDK
│ ├── PHP/ # PHP SDK
│ ├── JavaScript/ # JavaScript SDK
│ └── Python/ # Python SDK
├── Documentation/ # API文档
│ ├── openapi.yaml # OpenAPI规范文档
│ ├── postman.json # Postman集合
│ └── examples/ # 示例代码
└── Config/ # 配置文件
└── openapi.php # OpenAPI配置
Controller结尾Service结尾Middleware结尾OpenApi开头use App\Module\OpenAPI\Services\OpenApiService;
$apiService = new OpenApiService();
$app = $apiService->createApp([
'name' => '第三方应用',
'description' => '应用描述',
'callback_url' => 'https://example.com/callback',
'scopes' => ['user:read', 'data:write']
]);
use App\Module\OpenAPI\Middleware\ApiAuthMiddleware;
// 在路由中使用认证中间件
Route::middleware(['api.auth'])->group(function () {
Route::get('/api/user', [UserController::class, 'index']);
});
use App\Module\OpenAPI\Services\ScopeService;
$scopeService = new ScopeService();
if ($scopeService->hasScope($app, 'user:read')) {
// 执行操作
}