softlayer/softlayer-api-php-client

SoftLayer API PHP 客户端

v2.0.0 2022-11-07 22:06 UTC

This package is not auto-updated.

Last update: 2024-09-13 05:45:52 UTC


README

Build Status

警告

对于旧版PHP版本(php < 8.0),请使用 v1.2.0。对于php 8.0或更高版本,请使用 v2.0.0

PHP 8.0 已将 XMLRPC 从内置扩展中移除。因此,它不再是此项目的 composer 文件的一部分。如果需要,XmlRpcClient 仍然存在于此处,但我们假设大多数用户正在使用 SoapClient。如果有任何问题,请在 GitHub 上通知我们

概述

SoftLayer API PHP 客户端类提供了一种简单的方法来连接到 SoftLayer API 并调用它,并提供了对 SoftLayer API 的许多功能的支持。方法调用和客户端管理由 PHP SOAP 和 XML-RPC 扩展处理。

使用 \SoftLayer\SoapClient 进行 API 调用的步骤如下

  1. 使用 \SoftLayer\SoapClient::getClient() 方法实例化一个新的 \SoftLayer\SoapClient 对象。提供您要查询的服务名称、要实例化的对象的可选 id 号、SoftLayer API 用户名、SoftLayer API 密钥和可选的 API 端点基本 URL。客户端类默认通过公共互联网连接。
  2. 使用 \SoftLayer\SoapClient::API_PRIVATE_ENDPOINT 通过 SoftLayer 的私有网络连接到 API。进行 API 调用的系统必须连接到 SoftLayer 的私有网络(例如,从 SoftLayer 购买或通过 VPN 连接)才能使用私有网络 API 端点。
  3. 定义并添加可选的标头到客户端,例如对象掩码和结果限制。
  4. 就像它是您客户端对象的本地方法一样调用您想调用的 API 方法。此类在无法执行查询时抛出异常,因此最好在 try / catch 语句中放置 API 方法调用以进行适当的错误处理。

一旦您的操作执行完成,如果您需要连接到同一服务,您可以使用相同的客户端,或者如果您想同时处理多个服务,您还可以定义另一个客户端对象。

此库的最新版本可在 SoftLayer GitHub 公共存储库中找到:https://github.com/softlayer/softlayer-api-php-client。有关使用此库的问题,请打开 GitHub 问题

系统要求

\SoftLayer\SoapClient 类至少需要 PHP 8.0.0 以及安装并启用了 PHP SOAP 扩展(在 php.ini 文件中 extension=soap)。由于 php 8.0 已删除 xmlrpc 扩展,您需要手动安装此库以使用 \SoftLayer\XmlRpcClient。如果您正在使用仍然包含 ext-xml 的较早版本的 PHP,请使用此库的 v1.2.0 版本。

调用SoftLayer API需要有效的API用户名和密钥。连接到SoftLayer的私有网络API端点需要连接到SoftLayer私有网络。有关如何获取这些API密钥的说明,请参阅SoftLayer API认证

安装

使用Composer安装SoftLayer API客户端。

composer require softlayer/softlayer-api-php-client:~2.0.0

使用方法

以下示例使用\SoftLayer\SoapClient类。如果您想使用XML-RPC API,请将SoapClient.class.php替换为XmlrpcClient.class.php,并将\SoftLayer\SoapClient替换为\SoftLayer\XmlRpcClient

以下是一个简单的使用示例,通过调用getObject()方法从SoftLayer_Account服务获取账户信息。

<?php

require_once __DIR__.'/vendor/autoload.php';

$apiUsername = 'set me';
$apiKey = 'set me too';

// Initialize an API client for the SoftLayer_Account service.
$client = \SoftLayer\SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);

// Retrieve our account record
try {
    $account = $client->getObject();
    print_r($account);
} catch (\Exception $e) {
    die('Unable to retrieve account information: ' . $e->getMessage());
}

为了一个更复杂的示例,我们将检索ID为123456的支持票据及其更新、分配给的用户、附加的服务器以及这些服务器所在的数据中心。我们将使用嵌套对象掩码检索额外信息。获取票据后,我们将使用文本'Hello!'更新它。

<?php

require_once __DIR__.'/vendor/autoload.php';

$apiUsername = 'set me';
$apiKey = 'set me too';

// Initialize an API client for ticket 123456
$client = \SoftLayer\SoapClient::getClient('SoftLayer_Ticket', 123456, $apiUsername, $apiKey);

// Create an object mask and assign it to our API client.
$objectMask = new \SoftLayer\Common\ObjectMask();
$objectMask->updates;
$objectMask->assignedUser;
$objectMask->attachedHardware->datacenter;
$client->setObjectMask($objectMask);

// Retrieve the ticket record
try {
    $ticket = $client->getObject();
} catch (\Exception $e) {
    die('Unable to retrieve ticket record: ' . $e->getMessage());
}

// Update the ticket
$update = new \stdClass();
$update->entry = 'Hello!';

try {
    $update = $client->addUpdate($update);
    echo "Updated ticket 123456. The new update's id is " . $update[0]->id . '.');
} catch (\Exception $e) {
    die('Unable to update ticket: ' . $e->getMessage());
}

作者

本软件由SoftLayer开发团队编写 <sldn@softlayer.com>。

版权

本软件版权所有 © 2009 – 2022 SoftLayer Technologies, Inc。有关更多信息,请参阅捆绑的LICENSE.textile文件。