mirror of
https://github.com/pelican-dev/panel.git
synced 2025-03-16 23:20:34 +00:00
Better scrambling to fix #235
This commit is contained in:
@ -6,6 +6,9 @@ use App\Extensions\Themes\Theme;
|
||||
use App\Models;
|
||||
use App\Models\ApiKey;
|
||||
use App\Models\Node;
|
||||
use Dedoc\Scramble\Scramble;
|
||||
use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Facades\Broadcast;
|
||||
@ -66,6 +69,10 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
$this->bootAuth();
|
||||
$this->bootBroadcast();
|
||||
|
||||
Scramble::registerApi('application', ['api_path' => 'api/application', 'info' => ['version' => '1.0']]);
|
||||
Scramble::registerApi('client', ['api_path' => 'api/client', 'info' => ['version' => '1.0']]);
|
||||
Scramble::registerApi('remote', ['api_path' => 'api/remote', 'info' => ['version' => '1.0']]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,6 +88,9 @@ class AppServiceProvider extends ServiceProvider
|
||||
$this->app->singleton('extensions.themes', function () {
|
||||
return new Theme();
|
||||
});
|
||||
|
||||
Scramble::extendOpenApi(fn (OpenApi $openApi) => $openApi->secure(SecurityScheme::http('bearer')));
|
||||
Scramble::ignoreDefaultRoutes();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,51 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Dedoc\Scramble\Http\Middleware\RestrictedDocsAccess;
|
||||
use Dedoc\Scramble\Scramble;
|
||||
use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::group(['prefix' => 'api'], function () {
|
||||
Scramble::extendOpenApi(fn (OpenApi $openApi) => $openApi->secure(SecurityScheme::http('bearer')));
|
||||
Scramble::registerUiRoute(path: 'application', api: 'application');
|
||||
Scramble::registerJsonSpecificationRoute(path: 'application.json', api: 'application');
|
||||
|
||||
Route::view('application', 'scramble::docs', ['api' => 'application'])->name('scramble.docs.api.application');
|
||||
Route::view('client', 'scramble::docs', ['api' => 'client'])->name('scramble.docs.api.client');
|
||||
Route::view('remote', 'scramble::docs', ['api' => 'remote'])->name('scramble.docs.api.remote');
|
||||
Scramble::registerUiRoute(path: 'client', api: 'client');
|
||||
Scramble::registerJsonSpecificationRoute(path: 'client.json', api: 'client');
|
||||
|
||||
Route::get('application.json', function (Dedoc\Scramble\Generator $generator) {
|
||||
config()->set('scramble.api_path', 'api/application');
|
||||
config()->set('scramble.info.description', '
|
||||
These are the Application API endpoints for admins.
|
||||
They let you interact with your Panel on a root basis.
|
||||
');
|
||||
|
||||
return $generator();
|
||||
})->name('scramble.docs.application');
|
||||
|
||||
Route::get('client.json', function (Dedoc\Scramble\Generator $generator) {
|
||||
config()->set('scramble.api_path', 'api/client');
|
||||
config()->set('scramble.info.description', '
|
||||
These are the Client API endpoints for individual users.
|
||||
They let your users interact with your Panel.
|
||||
');
|
||||
|
||||
return $generator();
|
||||
})->name('scramble.docs.client');
|
||||
|
||||
Route::get('remote.json', function (Dedoc\Scramble\Generator $generator) {
|
||||
config()->set('scramble.api_path', 'api/remote');
|
||||
config()->set('scramble.info.description', '
|
||||
These are the Remote API endpoints for Wings.
|
||||
They let Wings interact with your Panel.
|
||||
');
|
||||
|
||||
return $generator();
|
||||
})->name('scramble.docs.remote');
|
||||
Scramble::registerUiRoute(path: 'remote', api: 'remote');
|
||||
Scramble::registerJsonSpecificationRoute(path: 'remote.json', api: 'remote');
|
||||
|
||||
Route::get('', fn () => '
|
||||
<li><a href="/docs/api/application">Application API for Admins</a></li>
|
||||
<li><a href="/docs/api/client">Client API for Users</a></li>
|
||||
<li><a href="/docs/api/remote">Daemon API for Wings</a></li>
|
||||
');
|
||||
})->middleware(config('scramble.middleware', [RestrictedDocsAccess::class]));
|
||||
});
|
||||
|
Reference in New Issue
Block a user