PHP

O SoftLayer fornece um cliente da API baseado em PHP que retira o peso de fazer chamadas manuais SOAP ou XML-RPC. Para usar o cliente da API baseado em PHP, os requisitos do sistema a seguir devem ser atendidos:

  • PHP 5.2.3 ou superior
  • Uma das extensões PHP a seguir:

Faça download do cliente da API da SoftLayer PHP a partir de sua página de projeto no perfil do github da SoftLayer. Após ser transferido por download, extraia o cliente da API PHP para um diretório local do projeto PHP ou no include_path da instalação do PHP.
Fazer download do cliente da API da SoftLayer PHP

Fazendo chamadas SOAP

Quando o cliente da API tiver sido transferido por download e instalado, a primeira coisa a fazer é incluir o arquivo SoapClient.class.php em seu script. Esse arquivo define os objetos do cliente SoftLayer.

require_once('/path/to/SoftLayer/SoapClient.class.php');

Em seguida, crie um objeto do cliente para o serviço da API da SoftLayer que deseja usar. SoftLayer_SoapClient::getClient() cuidará disso para você e aceita quatro parâmetros:

  • O nome do serviço que você deseja chamar.
  • Um número de ID opcional do objeto específico com o qual deseja trabalhar. Passe um valor null se estiver trabalhando com o serviço SoftLayer_Account ou não estiver trabalhando com um servidor, chamado de suporte, fatura ou outro objeto específico. Esse ID cria um parâmetro de inicialização na chamada API.
  • Seu nome do usuário da API.
  • A chave da API.

O fragmento de código abaixo fornece um exemplo de como fazer uma chamada SOAP usando os parâmetros esboçados acima:

require_once('/path/to/SoftLayer/SoapClient.class.php');
 
$apiUsername = 'set me';
$apiKey = 'set me';
 
/**
 * Create a client to the SoftLayer_Account API service.
 */
$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);
 
/**
 * Work directly with the SoftLayer_Hardware_Server record with the hardware id 
 * 1234.
 */
$serverId = 1234;
$client = SoftLayer_SoapClient::getClient('SoftLayer_Hardware_Server', $serverId, $apiUsername, $apiKey);

Quando o objeto do cliente da API estiver pronto, chame um método de API da SoftLayer como se fosse local para o objeto do cliente. Atribua o resultado da chamada API a uma variável para obter o resultado da chamada. Objetos de tipo complexo são retornados como objetos PHP stdClass. De forma semelhante, use objetos stdClass se precisar passar parâmetros de tipo complexo para suas chamadas de API. Por exemplo:

require_once('/path/to/SoftLayer/SoapClient.class.php');
 
$apiUsername = 'set me';
$apiKey = 'set me';
$domainId = 1234;
 
$client = SoftLayer_SoapClient::getClient('SoftLayer_Dns_Domain', $domainId, $apiUsername, $apiKey);
 
/**
 * Create a new A record in a domain.
 */
$newRecord = $client->createARecord('myhost', '127.0.0.1', 86400);
 
echo 'New A record id: ' . $newRecord->id;
 
/**
 * Create a new domain record. 
 * 
 * This requires an API client with a null id, and use a stdClass object to model 
 *our new domain.
 */
$client = SoftLayer_SoapClient::getClient('SoftLayer_Dns_Domain', null, $apiUsername, $apiKey);
 
$domain = new stdClass();
$domain->name = 'example.org';
$domain->resourceRecords = array();
$domain->resourceRecords[0] = new stdClass();
$domain->resourceRecords[0]->host = '@';
$domain->resourceRecords[0]->data = '127.0.0.1';
$domain->resourceRecords[0]->type = 'a';
 
$newDomain = $client->createObject($domain);
 
echo 'New domain id: ' . $newDomain->id;

Usando XML-RPC

O cliente da API da SoftLayer PHP suporta os protocolos SOAP e XML-RPC de forma intercambiável. Se desejar usar XML-RPC em vez de SOAP, duas mudanças são necessárias:

  • Inclua XmlrpcClient.class.php em vez de SoapClient.class.php
  • Crie um cliente da API com SoftLayer_XmlrpcClient::getClient() em vez de SoftLayer_SoapClient::getClient()
    Por exemplo:
require_once('/path/to/SoftLayer/XmlrpcClient.class.php');
 
$apiUsername = 'set me';
$apiKey = 'set me';
 
$client = SoftLayer_XmlrpcClient::getClient('SoftLayer_Account' null, $apiUsername, $apiKey);

Usando máscaras de objetos

Crie uma máscara de objeto na chamada API declarando primeiramente um novo
objeto SoftLayer_ObjectMask. Defina as propriedades relacionais que deseja recuperar como propriedades locais no novo objeto de máscara. Por fim, ligue-o ao cliente da API usando o método setObjectMask(). Este exemplo recupera as informações a seguir:

  • O hardware físico da conta
  • O registro do sistema operacional do hardware
  • A senha do sistema operacional
  • Componentes de rede
  • O datacenter no qual o hardware está localizado
  • O número de processadores em cada hardware
require_once('/path/to/SoftLayer/SoapClient.class.php');
 
$apiUsername = 'set me';
$apiKey = 'set me';
 
$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);
 
/**
 * Retrieve items related to hardware.
 *
 * Operating system, operating system passwords, all network components, the
 * datacenter the server is located in, and the number of processors in each 
 * server.
 */
$objectMask = new SoftLayer_ObjectMask();
$objectMask->hardware->operatingSystem->passwords;
$objectMask->hardware->networkComponents;
$objectMask->hardware->datacenter;
$objectMask->hardware->processorCount;
$client->setObjectMask($objectMask);
 
$hardware = $client->getHardware();

Usando limites de resultados

Ao chamar dados, principalmente consultas que envolvem puxar fragmentos de informações de grupos maiores, usar limites de resultados irá reduzir muito seu tempo de espera pelo retorno.
Limite o número de resultados na chamada API com o método setResultLimit() do objeto do cliente. Esse método aceita dois parâmetros:

  • O número de resultados para limitar sua chamada.
  • Um deslocamento opcional para iniciar o conjunto de resultados.
    O exemplo abaixo incorpora as informações necessárias para configurar um limite de resultados:
require_once('/path/to/SoftLayer/SoapClient.class.php');
 
$apiUsername = 'set me';
$apiKey = 'set me';
 
$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);
 
/**
 * Retrieve our first two open support tickets.
 */
$client->setResultLimit(2);
 
$tickets = $client->getOpenTickets();

Manipulação de erros

Erros de chamada API da SoftLayer são lançados pelo cliente PHP como exceções. Faça chamadas à API da SoftLayer em blocos de tentar/capturar para assegurar a manipulação adequada. Use o método PHP
getMessage() de classes de exceção para acessar erros retornados pela API da SoftLayer. O script a seguir contém um exemplo desse erro:

require_once('/path/to/SoftLayer/SoapClient.class.php');
 
$apiUsername = 'set me!';
$apiKey = 'an incorrect API key';
 
$client = new SoftLayer_SoapClient('SoftLayer_Account', null, $apiUsername, $apiKey);
 
/**
 * Exit the script with the message:
 * "Unable to retrieve account information: Invalid API key"
 */
try {
    $account = $client->getObject();
} catch (Exception $e) {
    die('Unable to retrieve account information: ' . $e->getMessage());
}

Componentes da API referidos

Serviços

Tipos de dados

Métodos