lonnylot/crud-sugar

REST API的CRUD糖

4.1.1 2022-04-13 18:16 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']
    ];
  }
}