zumba/deadmanssnitch-sdk

Deadmanssnitch API SDK

3.0.0 2022-10-26 17:22 UTC

This package is auto-updated.

Last update: 2024-09-19 23:40:34 UTC


README

此库允许轻松访问 Deadmanssnitch 的 API。

您可以使用它通过 API 管理监听器,或者在一个进程完成时通知监听器。

示例通知器使用

<?php

use Zumba\Deadmanssnitch\Notifier;

$notifier = new Notifier();
$notifier->pingSnitch('snitch id', 'just checking in.');

示例 API 使用

<?php

use Zumba\Deadmanssnitch\Client;
use Zumba\Deadmanssnitch\Snitch;
use Zumba\Deadmanssnitch\Interval;
use Zumba\Deadmanssnitch\ResponseError;

$client = new Client('your api key here');

// creating a snitch
$snitch = new Snitch('My cool process', new Interval(Interval::I_DAILY), [
    'tags' => ['production', 'critical']
]);
try {
    $client->createSnitch($snitch);
} catch (ResponseError $e) {
    // Failed to create the snitch
    echo $e->getMessage();
}

echo $snitch;
// 12312412

安装

composer require zumba/deadmanssnitch-sdk

支持的 API

支持 ping nosnch.in 域以特定监听器。请参阅 Notifier::pingSnitch(string $token, string $message = ''): void

SDK 目前支持 DMS API 的 v1

  • 创建监听器 - Client::createSnitch(Snitch $snitch): void
  • 列出监听器 - Client::listSnitches(array $tags = []): []Snitch
    • 包括通过标签过滤的能力
  • 检查监听器 - Client::examineSnitch(string $token): Snitch
  • 编辑监听器 - Client::editSnitch(Snitch $snitch): void
    • 还支持添加标签和删除单个标签(根据 API)。
    • 在监听器上设置标签并使用编辑将用提供的标签替换它们。
  • 暂停监听器 - Client::pauseSnitch(string $token): void
  • 删除监听器 - Client::removeSnitch(string $token): void

注意,我们不会支持使用用户名/密码获取 API 密钥。

高级使用

您可以使用自己的 http 客户端和记录器,只要它们分别满足 GuzzleHttp\ClientInterfacePsr\Log\LoggerInterface 即可。

<?php

use Zumba\Deadmanssnitch\Client;
use GuzzleHttp\Client as GuzzleClient;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$http = new GuzzleClient([
    'base_uri' => Client::HOST,
    'auth' => ['my api key', '']
]);

$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

$client = new Client('my api key', $http, $logger);

但是,请注意,guzzle 客户端是不可变的,因此您将负责设置基本 URI 和身份验证参数。内部,http_errors 被禁用,以便包装和使用我们自己的异常。如果您不禁用此功能,您将需要捕获 Guzzle 异常而不是 Zumba\Deadmanssnitch\ResponseError