preprio/php-graphql-sdk

Prepr PHP GraphQL SDK

1.0.0 2023-05-24 10:40 UTC

This package is not auto-updated.

Last update: 2024-09-26 15:04:48 UTC


README

本包是GraphQL API的SDK。

基本内容

SDK位于GitHub

最小PHP版本:^8.2

需要GuzzleHttp ^7.7.0

对于Laravel项目,我们推荐使用RESTGraphQL的Laravel提供者。

安装

您可以将SDK作为composer包安装。

composer require preprio/php-graphql-sdk

发送第一个请求

让我们从获取一些来自您的Prepr环境的文章内容开始。

<?php

use Preprio\Prepr;

$apiRequest = new Prepr('{ENDPOINT_URL}');

$apiRequest
    ->rawQuery('{
                  Posts( limit : 30 ) {
                    items {
                        _id
                        _slug
                        title
                    }
                  }
                }')
    ->request();

print_r($apiRequest->getResponse());

在上面的示例中,我们将所有参数都写在了查询字符串中。然而,在大多数应用程序中,字段的参数将是动态的。为了添加这些属性,请使用variables方法。

<?php

use Preprio\Prepr;

$apiRequest = new Prepr('{ENDPOINT_URL}');

$apiRequest
    ->rawQuery('query ($search : String) {
                    Posts(where: { _search : $search }) {
                        items {
                            title
                        }
                    }
                }')
    ->variables([
        'search' => "amsterdam",
    ])
    ->request();

print_r($apiRequest->getResponse());

使用查询文件

如果您已将GraphQL查询保存到静态文件中,可以使用以下方法执行这些查询

<?php

use Preprio\Prepr;

$apiRequest = new Prepr('{ENDPOINT_URL}');

$apiRequest
    ->query('query_file.graphql')
    ->request();

print_r($apiRequest->getResponse());

添加头部

在某些情况下,您可能需要向请求中添加头部。例如,当使用带有Prepr-Customer-Id头部的Prepr个性化时。

以下示例显示了如何向请求中添加额外头部。

<?php

use Preprio\Prepr;

$apiRequest = new Prepr('{ENDPOINT_URL}');

$apiRequest
    ->headers([
        'Prepr-Customer-Id' => 'your-customers-session-or-customer-id'
    ])
    ->request();

print_r($apiRequest->getResponse());

调试错误

使用$apiRequest->getRawResponse(),您可以获取Prepr API的原始响应。