alsbury/chiphpotle-rest

用于与 SpiceDB REST API 交互的库

v0.7.1 2024-05-09 18:38 UTC

This package is auto-updated.

Last update: 2024-09-09 19:24:16 UTC


README

SpiceDB 的 PHP REST API 客户端

SpiceDB 是一个用于创建和管理安全关键型应用程序权限的数据库。Chiphpotle 是它们 REST API 的 PHP 客户端。更多信息,请访问 https://github.com/authzed/api

要求

支持 PHP 8.1 及以上版本,并支持 SpiceDB 1.30 及以上版本。

使用 Composer 安装

composer require alsbury/chiphpotle-rest

入门指南

初始化客户端

<?php
require_once(__DIR__ . '/vendor/autoload.php');

$apiClient = Client::create('http://spicedb:8443/', 'mysecret');

$request = new CheckPermissionRequest(
    SubjectReference::create('user', 'bob'),
    'view',
    ObjectReference::create('document', 'topsecret1'),
);
try {
    $response = $apiClient->checkPermission($request);
    if ($response->getPermissionship() == Permissionship::HAS_PERMISSION) {
        echo 'You may Pass!'
    }
} catch (Exception $e) {
    echo 'Exception when calling PermissionsServiceApi->permissionsServiceCheckPermission: ', $e->getMessage(), PHP_EOL;
}

实验性 API

客户端中包含三个实验性 API。虽然 SpiceDB 在 1.25 和更早版本中宣布了这些 API,但它们在 http 网关中无法工作。这已在版本 1.26 及以上版本中得到修复。在 SpiceDB 1.30 中,批量权限检查已毕业,实验性 API 已弃用。

测试

将 .env.dist 复制到 .env 并调整 BASE_URL 和 API_KEY。Spicedb 必须在指定的 URL 上运行,我们建议使用 serve-testing 模式运行。

要运行测试,请开始使用

composer install
spicedb serve-testing --http-enabled
vendor/bin/phpunit

代码生成

此客户端是通过使用 jane-openapi 从 spicedb 提供的 open-api json 架构生成的客户端开始的。

一旦 SpiceDB 运行,您可以通过运行以下命令来重新生成所有类和客户端,以获取任何新的 spicedb API:

vendor/bin/jane-openapi generate

这将在生成目录中生成客户端,然后可以清理并移动到 src 目录。为了良好地开始,运行 PHP CS Fixer 以更一致的方式格式化内容。

vendor/bin/php-cs-fixer fix