tv2regionerne / statamic-private-api
Requires
- php: ^8.2
- statamic/cms: ^4.0 || ^5.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.13
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.4
- pestphp/pest-plugin-watch: ^2.0
- dev-main
- v1.16.0
- v1.15.0
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.1
- v1.11.0
- v1.10.0
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- dev-fix-asset-auth
- dev-feature/filters
- dev-feature/permissions
- dev-feature/v5-fixes
- dev-bug/fix_global_tests
- dev-bug/asset_url_upload
- dev-bug/globals
- dev-feature/assets-cache
- dev-feature/patch
- dev-fix/asset-entries-max-1
- dev-feature/docs
- dev-feature/allow-additional-routes-to-be-added
- dev-fix/bugs-on-update
- dev-feature/pint
- dev-feature/support-file-uploads
- dev-fix/merge-patch-data
This package is auto-updated.
Last update: 2024-09-24 10:41:03 UTC
README
Statamic Private Api 是一个 Statamic 插件,它可以使私有 REST API 成为可能。
路由应该由 Laravel Passport、Sanctum 或类似的服务保护。
功能
添加了从 Statamic 内置的公共 API 分离的私有 API。
使用 Laravel 的内置身份验证保护,因此您可以使用 Laravel Passport、Laravel Sanctum 或其他类似服务。
权限将遵循 Statamic 内部用户分配的权限。
有关将 Laravel Passport 集成到 Statamic 的信息,请参阅https://statamic.com/addons/tv2reg/laravel-passport-ui。
限制
私有 API 使用 Statamic CP 控制器。
集合条目修订版本尚未实现。
如何安装
从您的项目根目录运行以下命令
composer require tv2regionerne/statamic-private-api
请确保您的 config/auth.php 中配置了 'api' 保护器。
以下示例使用 Laravel Passport 进行 API 身份验证。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
发布配置文件
php artisan vendor:publish --tag=private-api-config
然后,在 /config/private-api.php 中启用您想使用的路由,例如
'resources' => [
'collections' => true,
'navs' => false,
'taxonomies' => false,
'assets' => false,
'globals' => false,
'forms' => false,
'users' => true,
],
如何使用
更新配置或环境变量以启用私有 API。
使用以下值配置 .env 以启用具有 "api/private" 前缀的私有 API。
PRIVATE_API_ENABLED=true PRIVATE_API_ROUTE="api/private"
私有 API 端点
其他插件可以在私有 API 中注册它们的私有 API 端点。
以下示例检查私有 API 插件是否已安装,然后添加插件私有 API 端点。
这些路由将与其他私有 API 端点相同的身份验证保护器进行保护。
授权和政策应在插件控制器内部处理。
use Illuminate\Support\Facades\Route; use Tv2regionerne\StatamicPrivateApi\Facades\PrivateApi; if (class_exists(PrivateApi::class)) { PrivateApi::addRoute(function () { Route::prefix('/statamic-events/handlers') ->group(function () { Route::get('/', [Controller::class, 'index']); Route::get('{id}', [Controller::class, 'show']); Route::post('/', [Controller::class, 'store']); Route::patch('{id}', [Controller::class, 'update']); Route::delete('{id}', [Controller::class, 'destroy']); }); }); }