OpenAPI模块提供了完整的API管理平台,支持应用管理、多种认证方式、权限控制、频率限制、Webhook回调、统计分析等功能。
确保模块已在 config/app.php 中注册:
'providers' => [
// ...
App\Module\OpenAPI\Providers\OpenAPIServiceProvider::class,
],
运行SQL文件创建相关表:
# 执行数据库SQL文件
mysql -u username -p database_name < app/Module/OpenAPI/Databases/GenerateSql/openapi_tables.sql
在 .env 文件中添加配置:
# OpenAPI基础配置
OPENAPI_LOGGING_ENABLED=true
OPENAPI_STATS_ENABLED=true
# 频率限制配置
OPENAPI_RATE_LIMIT_PER_MINUTE=60
OPENAPI_RATE_LIMIT_PER_HOUR=1000
OPENAPI_RATE_LIMIT_PER_DAY=10000
# Webhook配置
OPENAPI_WEBHOOK_TIMEOUT=30
OPENAPI_WEBHOOK_RETRY_COUNT=3
# 缓存配置
OPENAPI_CACHE_DRIVER=redis
OPENAPI_CACHE_TTL=3600
php artisan vendor:publish --provider="App\Module\OpenAPI\Providers\OpenAPIServiceProvider"
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')) {
// 执行操作
}