webdock / php-sdk
Webdock API PHP 包装器
Requires
- guzzlehttp/guzzle: >= 6.0
Requires (Dev)
- phpunit/phpunit: ^9.2
This package is auto-updated.
Last update: 2024-09-16 21:02:06 UTC
README
PHP SDK 库/用于 Webdock API 的包装器
安装
Composer
要使用 Webdock SDK,请使用 Composer 将其安装到您的项目中。
composer require webdock/php-sdk
示例用法
<?php
require_once 'vendor/autoload.php';
$appName = 'YourAppName/v1.0';
$token = 'Your access token';
$client = new \Webdock\Client($token, $appName);
# Create a new server instance
$params = [
'name' => 'mynewserver1',
'slug' => 'mynewserver1',
'locationId' => 'fi',
'profileSlug' => 'webdockmicro',
'imageSlug' => 'krellide:webdock-focal-lemp-php74',
];
$newServer = $client->server->create($params);
# To view HTTP Header Response
var_dump($newServer->getHeaders()->toArray());
# To view API call stats
var_dump($newServer->getApiStats());
# To view server response object
var_dump($newServer->getResponse());
# To view Server response in Array
var_dump($newServer->getResponse()->toArray());
# To view callbackID (if the endpoint is in asynchronous task. i.e. deleting server)
var_dump($newServer->getCallbackID());
?>
文档
完整的 API 文档可在 https://api.webdock.io/ 找到
API 参考
-
GET /ping 向 Webdock API 发送 ping 请求
显示示例
$ping = $client->ping(); var_dump($ping->getResponse()->toArray());
-
GET /account/accountInformation 获取账户信息
显示示例
$accountInfo = $client->accountInformation->get();
-
GET /servers 获取您的服务器列表
显示示例
$status = 'active'; // [all, suspended, active] $serverList = $client->server->list($status); # to view the result foreach ($serverList->getResponse() as $server) { echo $server->name; } # or cast the response as arrays var_dump($serverList->getResponse()->toArray()); # each individual item can be casted as an array too foreach ($serverList->getResponse() as $server) { var_dump($server->toArray()); }
-
POST /servers 创建服务器
显示示例
$params = [ 'name' => 'mynewserver1', 'slug' => 'mynewserver1', 'locationId' => 'fi', # get available locations: $client->location->list(); 'profileSlug' => 'webdockmicro', 'imageSlug' => 'krellide:webdock-focal-lemp-php74', ] $newServer = $client->server->create($params);
-
GET /servers/{serverSlug} 通过 slug 获取特定服务器
显示示例
$slug = 'your-server-slug'; $server = $client->server->get($slug); # Since the result is a single element, compared to the previous example (GET /servers), the response is in object/stdclass style echo $server->getResponse()->name; # We can also cast the response as an array var_dump($server->getResponse()->toArray());
-
DELETE /servers/{serverSlug} 删除服务器
此端点需要特殊权限,如果您想启用此端点,请联系 Webdock 支持!
显示示例
$slug = 'your-server-slug'; $deleteServer = $client->delete($slug);
-
PATCH /servers/{serverSlug} 更新服务器元数据
显示示例
$slug = 'mynewserver1'; $params = [ 'nextActionDate' => '2020-10-10', 'name' => 'new server name', 'description' => 'new server description', 'notes' => 'another notes', ]; $updateServer = $client->server->update($slug, $params);
-
POST /servers/{serverSlug}/actions/start 启动服务器
显示示例
$slug = 'mynewserver1'; $startServer = $client->serverAction->start($slug);
-
POST /servers/{serverSlug}/actions/stop 停止服务器
显示示例
$slug = 'mynewserver1'; $stopServer = $client->serverAction->stop($slug);
-
POST /servers/{serverSlug}/actions/reboot 重新启动服务器
显示示例
$slug = 'mynewserver1'; $stopServer = $client->serverAction->reboot($slug);
-
POST /servers/{serverSlug}/actions/suspend 暂停服务器
显示示例
$slug = 'mynewserver1'; $stopServer = $client->serverAction->suspend($slug);
-
POST /servers/{serverSlug}/actions/reinstall 重新安装服务器
显示示例
$slug = 'mynewserver1'; $image = 'krellide:webdock-focal-lemp-php74'; $stopServer = $client->serverAction->reinstall($slug, $image);
-
POST /servers/{serverSlug}/actions/snapshot 为服务器创建快照
显示示例
$slug = 'mynewserver1'; $snapshotName = 'my server snapshot'; $stopServer = $client->serverAction->snapshot($slug, $snapshotName);
-
POST /servers/{serverSlug}/actions/restore 将服务器恢复到快照
显示示例
$slug = 'mynewserver1'; $snapshotId = 1203; $stopServer = $client->serverAction->restore($slug, $snapshotId);
-
POST /servers/{serverSlug}/actions/resize/dryrun 服务器配置更改的 Dry Run
显示示例
$slug = 'mynewserver1'; $profileSlug = 'server-profile-a'; # Get the server profile in $client->profile->list($locationId); $stopServer = $client->serverAction->dryRunResize($slug, $profileSlug);
-
POST /servers/{serverSlug}/actions/resize 更改服务器配置
显示示例
$slug = 'mynewserver1'; $profileSlug = 'server-profile-a'; $stopServer = $client->serverAction->resize($slug, $profileSlug);
-
GET /locations 获取可能的的服务器数据中心位置列表
显示示例
$locations = $client->location->list();
-
GET /profiles 获取可能的的服务器硬件配置列表
显示示例
$locationId = 1002; $locations = $client->profile->list($locationId);
-
GET /images 获取可能的的服务器软件镜像列表
显示示例
$images = $client->image->list();
-
GET /account/publicKeys 获取您的 Webdock 账户中的公钥列表
显示示例
$myPublicKeys = $client->publicKey->list();
-
POST /account/publicKeys 添加新的公钥
显示示例
$params = [ 'name' => 'my laptop public key', 'publicKey' => 'ssh-rsa AAAB3...', ]; $addPublicKey = $client->publicKey->create($params);
-
DELETE /account/publicKeys/{id} 删除公钥
显示示例
$publicKeyId = 12021; $deletePublicKey = $client->publicKey->delete($publicKeyId);
-
GET /servers/{serverSlug}/shellUsers 获取服务器的 shell 用户列表
显示示例
$serverSlug = 'mynewserver1'; $shellUsers = $client->serverShellUser->list($serverSlug);
-
POST /servers/{serverSlug}/shellUsers 在服务器中创建 shell 用户
显示示例
$serverSlug = 'mynewserver1'; $params = [ 'username' => 'user1', 'password' => 'X1xq0e-12k', 'group' => 'user1', 'shell' => 'zsh', 'publicKeys' => [12021], ]; $createShellUser = $client->serverShellUser->create($serverSlug, $params);
-
DELETE /servers/{serverSlug}/shellUsers/{shellUserId} 删除 shell 用户
显示示例
$serverSlug = 'mynewserver1'; $shellUserId = 40591; $deleteShellUser = $client->serverShellUser->delete( $serverSlug, $shellUserId );
-
PATCH /servers/{serverSlug}/shellUsers/{shellUserId} 更新服务器中的 shell 用户公钥
显示示例
$serverSlug = 'mynewserver1'; $shellUserId = 40591; $params = ['publicKeys' => [1293, 19283]]; $updateShellUser = $client->serverShellUser->update( $serverSlug, $shellUserId, $params );
-
GET /account/scripts 获取账户脚本列表
显示示例
$accountScripts = $client->accountScript->list();
-
POST /account/scripts 创建账户脚本
显示示例
$params = [ 'name' => 'my account script', 'filename' => 'filename', 'content' => 'the content', ]; $createAccountScript = $client->accountScript->create($params);
-
GET /account/scripts/{scriptId} 通过 ID 获取账户脚本
显示示例
$scriptId = 1203; $accountScript = $client->accountScript->get($scriptId);
-
DELETE /account/scripts/{scriptId} 删除账户脚本
显示示例
$scriptId = 1203; $deleteAccountScript = $client->accountScript->delete($scriptId);
-
PATCH /account/scripts/{scriptId} /account/scripts/{scriptId}
显示示例
$scriptId = 1203; $params = [ 'name' => 'updated script#1', 'filename' => 'myscript.sh', 'content' => 'thecontent', ]; $updateAccountScript = $client->accountScript->update($scriptId, $params);
-
GET /scripts 获取公共脚本列表
显示示例
$scripts = $client->script->list();
-
GET /servers/{serverSlug}/scripts 获取服务器脚本列表
显示示例
$serverSlug = 'mynewserver1'; $scripts = $client->serverScript->list($serverSlug);
-
POST /servers/{serverSlug}/scripts 创建服务器脚本
显示示例
$serverSlug = 'mynewserver1'; $params = [ 'scriptId' => 123, 'path' => '/path/to/script', 'makeScriptExecutable' => true, 'executeImmediately' => true, ]; $createServerScript = $client->serverScript->create($serverSlug, $params);
-
GET /servers/{serverSlug}/scripts/{scriptId} 通过 ID 获取服务器脚本
显示示例
$serverSlug = 'mynewserver1'; $scriptId = 123; $script = $client->serverScript->get($serverSlug, $scriptId);
-
DELETE /servers/{serverSlug}/scripts/{scriptId} 删除服务器脚本
显示示例
$serverSlug = 'mynewserver1'; $scriptId = 123; $deleteScript = $client->serverScript->delete($serverSlug, $scriptId);
-
POST /servers/{serverSlug}/scripts/{scriptId}/execute 执行服务器脚本
显示示例
$serverSlug = 'mynewserver1'; $scriptId = 123; $executeScript = $client->serverScript->executeScript($serverSlug, $scriptId); $callbackId = $executeScript->getCallbackID();
-
POST /servers/{serverSlug}/fetchFile 从服务器获取文件
显示示例
$serverSlug = 'mynewserver1'; $filePath = '/path/to/file'; $fetchFile = $client->serverScript->fetchFile($serverSlug, $filePath);
-
GET /servers/{serverSlug}/metrics 获取服务器指标
显示示例
$serverSlug = 'mynewserver1'; $metric = $client->serverMetric->getMetrics($serverSlug);
-
GET /servers/{serverSlug}/metrics/now 获取即时指标
显示示例
$serverSlug = 'mynewserver1'; $metric = $client->serverMetric->getMetricsNow($serverSlug);
-
GET /servers/{serverSlug}/snapshots 获取服务器的快照列表
显示示例
$serverSlug = 'mynewserver1'; $snapshots = $client->serverSnapshot->list($serverSlug);
-
GET /servers/{serverSlug}/snapshots/{snapshotId} 获取服务器的 ID 快照
显示示例
$serverSlug = 'mynewserver1'; $snapshotId = 1022; $snapshot = $client->serverSnapshot->get($serverSlug, $snapshotId);
-
DELETE /servers/{serverSlug}/snapshots/{snapshotId} 通过ID删除服务器的快照
显示示例
$serverSlug = 'mynewserver1'; $snapshotId = 1022; $deleteSnapshot = $client->serverSnapshot->delete($serverSlug, $snapshotId);
-
GET /hooks 获取事件钩子列表
显示示例
$eventHooks = $client->eventHook->list();
-
POST /hooks 创建事件钩子
显示示例
$params = [ 'callbackUrl' => 'the_callback_url', 'callbackId' => 10293, ]; $createEventHook = $client->eventHook->create($params);
-
GET /hooks/{hookId} 通过ID获取事件钩子
显示示例
$hookId = 1223; $eventHook = $client->eventHook->get($hookId);
-
DELETE /hooks/{hookId} 删除事件钩子
显示示例
$hookId = 1223; $deleteEventHook = $client->eventHook->delete($hookId);
-
GET /events 获取事件列表
显示示例
$params = []; $events = $client->eventPoll->list($params);