chrgriffin/wave-api

一个简单的 PHP 客户端,用于利用 Webaim 的 WAVE API。

v1.0.1 2019-02-07 15:57 UTC

This package is auto-updated.

Last update: 2024-09-08 07:11:52 UTC


README

wave-api 是一个用于与 Webaim 的 WAVE API 交互的强类型包。

要求

wave-api 需要 PHP 7.1 或更高版本。您还需要在 WAVE API 中创建一个账户,才能使用它。

安装

您可以通过 composer 进行安装

composer install chrgriffin/wave-api

使用方法

基本使用

使用客户端非常简单

require_once './vendor/autoload.php';

use ChrGriffin\WaveApi\Client as WaveClient;

$wave = new WaveClient('my-api-key');
$response = $wave->analyze('my-url');

附加参数

如果您想指定可选参数,例如 viewportwidthreporttypeformat,有多种方式可以实现。

首先,您可以在实例化客户端时指定任何附加参数

$wave = new WaveClient('my-api-key', [
    'viewportwidth' => 1440,
    'reporttype'    => 2,
    'format'        => 'json'
]);

其次,您可以在发出请求时指定任何附加参数

$response = $wave->analyze('my-url', [
    'viewportwidth' => 1440,
    'reporttype'    => 2,
    'format'        => 'json'
]);

或者第三,您可以使用多个设置器链式操作

$wave->setViewportwidth(1440)
    ->setReporttype(2)
    ->setFormat('json')
    ->analyze('my-url);

响应格式

format 参数有两个有效选项:jsonxml。设置此参数将更改响应类型

  • 如果格式是 json,则 $wave->analyze() 将返回一个 \stdClass 对象
  • 如果格式是 xml,则 $wave->analyze() 将返回一个 \SimpleXMLElement 对象

文档

可用方法

  • getClient() : GuzzleHttp\Client (默认值)
  • setClient($client) : ChrGriffin\WaveApi\Client
    • $client:用您自己的 GuzzleHttp 客户端替换默认客户端。
  • getKey() : string
  • setKey(string $key) : ChrGriffin\WaveApi\Client
    • $key:您的 WAVE API 密钥。
  • getFormat() : string (默认值 json)
  • setFormat(string $format) : ChrGriffin\WaveApi\Client
    • $format:期望的报表格式。如果值既不是 json 也不是 xml,将抛出异常。
  • getViewportwidth() : int
  • setViewportwidth(int $viewportwidth) : ChrGriffin\WaveApi\Client
    • $viewportwidth:分析时的期望视口宽度。
  • getEvaldelay() : int
  • setEvaldelay(int $evaldelay) : ChrGriffin\WaveApi\Client
    • $evaldelay:分析前期望等待的毫秒数。
  • getReporttype() : int
  • setReporttype(int $reporttype) : ChrGriffin\WaveApi\Client
    • $reporttype:期望的报表类型。如果值不是 123 之一,将抛出异常。
  • getUsername() : string
  • setUsername(string $username) : ChrGriffin\WaveApi\Client
    • $username:给定 URL 的基本 HTTP 认证所期望的用户名。
  • getPassword() : string
  • setPassword(string $password) : ChrGriffin\WaveApi\Client
    • $password:给定 URL 的基本 HTTP 认证所期望的密码。
  • getResponseContents() : null|\stdClass|\SimpleXMLElement _(请求之前将为 null)
  • setParams(array $params) : ChrGriffin\WaveApi\Client
    • $params:任何或所有参数的关联数组。有效的参数
      • format : string (必须是 jsonxml 之一)
      • viewportwidth : int
      • evaldelay : int
      • reporttype : int (必须是 123 之一)
      • username : string
      • password : string
  • analyze(string $url, array $params = []) : \stdClass|\SimpleXMLElement
    • $url:期望分析的目标 URL。
    • $params:任何或所有参数的关联数组。有效的参数
      • format : string (必须是 jsonxml 之一)
      • viewportwidth : int
      • evaldelay : int
      • reporttype : int (必须是 123 之一)
      • username : string
      • password : string

异常

  • 每当向方法传递无效类型参数时,将会抛出 \TypeError 异常(有关有效类型的说明,请参阅上述文档)。
  • 在以下情况下将抛出 ChrGriffin\WaveApi\Exceptions\InvalidArgumentException(继承自 \InvalidArgumentException)异常:
    • 尝试将 format 设置为无效值(既不是 xml 也不是 json)。
    • 尝试将 reporttype 设置为无效值(既不是 12 也不是 3)。
    • 尝试设置不存在的参数。
  • 当 WAVE API 返回错误时,将抛出 ChrGriffin\WaveApi\Exceptions\ResponseException 异常。如果提供了错误信息,它将是异常的消息。