lonnylot / crud-sugar
REST API的CRUD糖
Requires
- guzzlehttp/guzzle: ^7.0
- illuminate/validation: ^7.0|^8.0
- quazardous/php-bump-version: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-19 22:40:27 UTC
README
这旨在成为新的REST API的基础。您可以使用它开始,这样您就不必担心基础知识(例如:设置API密钥,发送请求)。
Composer
您可以通过Composer安装绑定。运行以下命令
composer require lonnylot/crud-sugar
要使用绑定,请使用Composer的自动加载
require_once('vendor/autoload.php');
依赖项
该库需要GuzzleHTTP库。
入门指南
使端点正常工作的有三个步骤
设置您的客户端
$client = \CrudSugar\Client::getInstance(); $client->setBaseUrl('https://api.telnyx.com/'); $client->setApiKey('secret-key');
注意 请参阅创建实例
注册您的端点
$client->registerEndpointClass(NumberSearch::class);
注意 请参阅端点示例类 所有端点都必须使用
\CrudSugar\Concerns\IsEndpoint
使用您的端点
$response = $client->numberSearch->index();
处理响应
所有请求都会返回一个 Response 对象。
注意:响应装饰了GuzzleHTTP Response。所有GuzzleHTTP Response上的方法也都可通过返回的Response对象访问。
响应API
isJson
如果Content-Type
头包含\json
或+json
,则返回true
isSuccessful
如果状态码是 >= 200 < 300,则返回true
getContent
如果isJson
,则返回关联数组。否则返回字符串。
IsEndpoint API
setPath(string $path)
必需。端点的基准路径。不应以/
开始或结束。不应包含任何资源特定ID。自动重建资源路径。
setResources(array $resources)
此端点拥有的资源列表。默认为['index', 'show', 'store', 'update', 'delete']
。
setResourcePath(string $resource, string $path)
为特定资源设置路径。覆盖由setPath
生成的资源路径。
setResourceMethod(string $resource, string $method)
为特定资源设置方法。
高级
创建实例
您可以通过调用\CrudSugar\Client::getInstance()
来创建实例,但您也可以通过调用\CrudSugar\Client::getInstance('telnyx')
来创建命名实例。如果您命名了实例,那么您可以在应用程序的任何地方获取相同的实例。
端点
所有端点都必须使用\CrudSugar\Concerns\IsEndpoint
特质。
资源验证
此包使用Laravel Validator。
注意 需要数据库(存在、唯一等)的规则未实现。
要验证资源,您可以创建一个返回规则的验证函数。
端点示例
use CrudSugar\Concerns\IsEndpoint; class NumberOrder { use IsEndpoint; public function boot() { $this->setResources(['store']); $this->setPath('number_orders'); } public function validateIndexRules() { return [ "phone_numbers" => ['required', 'array'], "phone_numbers.*.phone_number" => ['required', 'string'] ]; } }