tiggee / dnsmadeeasy-client
DNS Made Easy API 的 PHP SDK
Requires
- php: ^7.4
- ext-json: ^7.4
- ext-mbstring: ^7.4
- guzzlehttp/guzzle: >=6
- guzzlehttp/psr7: ^1.7
- psr/container: ^1.0
- psr/http-client-implementation: ^1.0
- psr/log: ^1.1
- spatie/enum: ^3.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- monolog/monolog: ^2.1
- php-http/mock-client: ^1.4
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ^3.5
- symfony/var-dumper: ^5.1
This package is auto-updated.
Last update: 2024-09-05 02:19:24 UTC
README
这是 DNS Made Easy API 的客户端库。
有关 API 的更多信息,请参阅 官方 API 文档。
安装
安装和使用此客户端库的最简单方法是使用 Composer。以下命令将库添加到您的应用程序,并从 Packagist 安装它。
composer require tiggee/dnsmadeeasy-client
入门
您需要一个 DNS Made Easy 帐户和 API 凭据。您可以在 DNS Made Easy 网站 上获取帐户。这里有一个 API 沙盒可用,您可以在 这里创建新帐户。
如果您使用 Composer,您应该运行 Composer 的自动加载以加载库
require_once 'vendor/_autoload.php';
加载库后,您只需创建客户端并设置 API 密钥和密钥。
$client = new \DnsMadeEasy\Client; $client->setApiKey(API_KEY); $client->setSecretKey(SECRET_KEY);
现在您可以使用客户端查询 API 并检索对象。用法在 GitHub 的 docs 目录中有文档。
使用沙盒
您可以使用 setEndpoint 方法让客户端使用沙盒 API 端点。
$client->setEndpoint('https://api.sandbox.dnsmadeeasy.com/V2.0');
整合一切
整合完毕,现在是 API 的“Hello World”等效。让我们获取您的域名列表。
<?php // Load the library and dependencies require_once 'vendor/_autoload.php'; // Create a new client and set our credentials $client = new \DnsMadeEasy\Client; $client->setApiKey("Your API Key"); $client->setSecretKey("Your Secret Key"); // Configure it to use the Sandbox $client->setEndpoint('https://api.sandbox.dnsmadeeasy.com/V2.0'); // Create a new domain $domain = $client->domains->create(); $domain->name = 'mydomain.example.com'; $domain->save(); // Print out our domain echo json_encode($domain, JSON_PRETTY_PRINT); // Now fetch a list of our domains $domains = $client->domains->paginate(); foreach ($domains as $domain) { echo json_encode($domain, JSON_PRETTY_PRINT); }
下面还有更多使用 API 客户端 SDK 的示例。
配置
您还可以使用客户端的其他配置选项,而不仅仅是指定沙盒。
日志记录
您可以指定一个实现 PSR-3 Logger 规范的记录器,例如 MonoLog。客户端是一个 LoggerAwareInterface,记录器可以通过构造函数或方法调用指定。
$client = new \DnsMadeEasy\Client(null, null, $myLogger);
$client->setLogger($myLogger);
如果没有指定记录器,则将使用不执行任何操作的空记录器。
自定义 HTTP 客户端
如果您需要为您的应用程序中的 HTTP 请求进行额外配置,例如指定代理服务器或如果您想使用符合 PSR-18 HTTP 客户端 规范的自己的 HTTP 客户端。
您可以使用构造函数或方法调用指定客户端。
$client = new \DnsMadeEasy\Client($myClient);
$client->setHttpClient($myClient);
示例
库方法的完整文档在 docs 文件夹中。
管理器
管理器用于管理您对 API 上资源的访问,包括创建新的资源并从 API 获取现有的资源。这些可以通过客户端上的属性访问。
// Fetch our manager $domainsManager = $client->domains; // Ask our manager for the domain $domain = $domainsManager->get(1234);
管理器还用于创建新对象。
// Create a new domain $domain = $client->domains->create(); $domain->name = 'example.com'; // Save the domain $domain->save();
在您调用 $domain->save() 之前,域名不会在 API 上保存。
可以使用管理器的 paginate() 方法获取多个对象。您可以指定页面编号和每页的项目数量。
// Return the 4th page of results with the default page size $client->domains->paginate(4); // Return the first page of 50 results $client->domains->paginate(1, 50);
模型
模型本身遵循 Active Record 模式。属性可以更新,并在模型上调用 save() 来更新 API。
// Fetch an existing domain with the ID 1234 $domain = $client->domains->get(1234); // Update the gtdEnabled property $domain->gtdEnabled = true; // Save the domain object on the API $domain->save();
您可以通过在它上调用 delete() 来删除对象
$domain = $client->domains->get(1234); $domain->delete();
创建域名和记录
此示例创建了一个新的域名并将其记录添加到其中。
// Include composer libraries require_once 'vendor/_autoload.php'; // Create the client $client = new \DnsMadeEasy\Client; $client->setApiKey(API_KEY); $client->setSecretKey(SECRET_KEY); // Create the domain $domain = $client->domains->create(); $domain->name = 'example.com'; $domain->save(); // Create a record on the domain $record = $domain->records->create(); $record->type = \DnsMadeEasy\Enums\RecordType::A(); $record->name = 'www'; $record->value = '192.0.2.1'; $record->save(); // Get a list of all domains $domains = $client->domains->paginate(); foreach ($domains as $domain) { print_r(json_encode($domain, JSON_PRETTY_PRINT)); }
许可协议
麻省理工学院许可证(MIT)
版权所有(c)2020 DNS Made Easy,Tiggee LLC 的子公司。
在此特此免费授予任何获得本软件及其相关文档文件(“软件”)副本的人(“用户”)在软件中不受限制地处理的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向用户提供软件的人执行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和无侵犯第三方知识产权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该责任是否与软件或其使用或其他方式有关。