rs/builder-api

调用Builder API

v1.0.6 2024-08-22 11:58 UTC

This package is auto-updated.

Last update: 2024-09-22 13:29:00 UTC


README

用于查询Builder API的Laravel包

安装

您可以通过composer安装此包

composer require rs/builder-api

配置

默认情况下,API客户端将尝试从以下环境变量中查找设置

# .env

BUILDER_SITE_NAME=sitename # the name of the site in Builder
BUILDER_PUBLISHED=true # whether to query the published or unpublished data of the Builder site (defaults to true if not defined)
BUILDER_API_USER=builderuser 
BUILDER_API_KEY=key-123

或者,您可以发布配置文件并在其中定义您的设置

php artisan vendor:publish --provider="RedSnapper\Builder\BuilderApiServiceProvider" --tag="config"
# config/builder-api.php

return [
    'site'       => 'sitename',
    'published'  => true,
    'user'       => 'builderuser',
    'password'   => 'key-123',
];

授权

如果您提供了用户名和密码,则将尝试基本认证。

或者,您只需提供用户名 - 这将在请求中添加一个X-USER头。这仅在您的应用程序与Builder实例位于同一网络上时才有效

使用方法

您可以使用BuilderApi外观创建一个PendingRequest。您可以使用该对象上可用的流畅方法覆盖任何配置。

$pendingRequest = BuilderApi::new();
$pendingRequest->forSite('sitename')
    ->withAuth('builderuser', 'key-123')
    ->unpublished()
    ->get('apiPages');

要执行GET请求,请提供Builder宏名称,并可选地提供作为第二个参数的参数。

 $response = $pendingRequest->forSite('sitename')->get('apiPages', ['foo', 'bar']);

您也可以直接使用外观进行请求。这将使用您在配置文件或环境变量中定义的配置。

$response = BuilderApi::get('apiPages'); // returns BuilderResponse object

如果您不想使用外观,您可以在构造方法中使用BuilderRequestFactory类进行类型提示,或者使用app()->make()

use RedSnapper\Builder\BuilderRequestFactory;

    public function __construct(BuilderRequestFactory $factory)
    {
        $this->factory = $factory;
        
        # or...
        $factory = app()->make(BuilderRequestFactory::class);
        
        $pendingRequest = $factory->new();
        $response = $pendingRequest->get('apiPages');
    }

当发出请求时,将返回一个BuilderResponse对象,该对象提供了用于检索Builder数据或Builder错误消息的方法。

 $data = $response->data(); # get json decoded data
 
 if($response->failed()) {
    $errorMsg = $response->errorMsg();
 }

以下是提供的完整方法列表,以帮助您分析响应

$response->data();

$response->successful();

$response->failed();

$response->errorMsg(); # error msg provided by Builder

$response->status(); # status code of the response

$response->throw(); # throw an exception if a server or client error occurred

$response->getResponse(); # get the underlying 'Illuminate\Http\Client\Response' object

测试

vendor/bin/phpunit

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件