Home > Megoldások partnereinknek > API használat - példák

API használat - példák

Nemrégiben üzemeltetésbe helyeztük a vadonatúj REST API-t. A pontos leírást és minden egyéb információt megtalál a https://rest.websupport.sk/docs/index oldalon.

Az eredeti API-t idővel lecseréljük a REST API-ra, ezért a régi verzió használatát nem ajánljuk!


Az eredeti API:

Az API legegyszerűbb üzembe helyezéséhez készítettünk egy PHP könyvtárat. Ebben a fejezetben megtalálja a könyvtár leírását és példákat a használathoz.

WebsupportApi.php könyvtár egy egyszerű felületet biztosít a HTTP komunikációra az API-val, ami cURL alapú. A könyvtár használata előtt az API kulcs beállítását a fajleconfig.php-ben kell elvégezni. Az API URL változó alapértelmezettként a tesztelési API-ra mutat -  https://apitest.websupport.sk/. Ez az API az üzemeltetett API-tól abban különbözik, hogy a szolgáltatásokat nem rendeli meg.

A könyvtárat a saját projektjébe a következő formában építheti be:<?php

include 'include/WebsupportApi.php';
include 
'include/config.php';

$api = new WebsupportApi($apiKey);
$api->setApiUrl($apiUrl);

A tárgy fő módszere a  sendRequest(). 5 kritériumot tartalmaz, amiből az első kettő kötelező:

  • requestType - láncolat, ami az API hívás HTTP módszerére utal. Engedélyezett értékek GETPOSTPUT és DELETE

  • resource - láncolat, ami a lekért resource-ra utal.

  • resourceParams - indexált mező (parameter_név=> parameter_ertek az egyes resource paraméterekkel)

  • serviceParams - indexált mező (parameter_név=> parameter_ertek az egyes service paraméterekkel)

  • body - mező (array) test, ami a HTTP lekérdezéshez kapcsolódik. GET esetében a lekérdezés az URL-hez kapcsolódik, POST vagy PUT esetében a tartalom a lekérdezéshez kapcsolódik.


Példák


Ebben a fejezetben pár rövid mintapédát ismertetünk. Hasonló pédákat talál az archívumban, vagy megtekintheti a forráskódokat.


A domainszolgáltatások listájának lekérdezése

<?php

require_once '../include/config.php';
require_once 
'../include/WebsupportApi.php';


$api = new WebsupportApi($apiKey);
$api->setApiUrl($apiUrl);


$response $api->sendRequest('GET''availabletlds');
if (
$api->error) {
    echo 
"Unable to load services!\n========================\n\n";
    echo 
"Code : {$api->statusCode}\n";
    echo 
"Msg  : {$api->errorMessage}\n";

} else {
    echo 
"API response:\n=============\n\n";

    
print_r($response);
}

A szkript kimenete:

API response:
=============

stdClass Object
(
    [1] => sk
    [11] => com
    [12] => to
    [14] => cz
    [15] => jp
    [16] => eu
    [17] => net
    [18] => cx
    [19] => cc
    [20] => org
    [21] => se
    [22] => biz
    [23] => as
    [24] => info
    [25] => ro
    [26] => name
    [27] => nl
    [28] => ws
    [29] => us
    [30] => lv
    [31] => cn
    [32] => dk
    [33] => be
    [34] => tv
    [35] => mobi
    [36] => li
    [37] => ch
    [38] => at
    [39] => pl
    [40] => de
    [41] => ru
    [42] => co.uk
    [43] => hu
    [44] => org.uk
    [59] => ca
    [60] => tk
    [63] => tw
    [65] => fr
    [66] => co
    [67] => lt
)


Custom hoszting részletei (ár)

<?php

require_once '../include/config.php';
require_once 
'../include/WebsupportApi.php';


$api = new WebsupportApi($apiKey);
$api->setApiUrl($apiUrl);

$response $api->sendRequest('GET''price', array('service' => 'custom'), array(
    
'period' => 6,
    
'limit_web' => 500,
    
'limit_mail' => 2,
    
'limit_database' => 1,
));
if (
$api->error) {
    echo 
"Unable to load service!\n=======================\n\n";
    echo 
"Code : {$api->statusCode}\n";
    echo 
"Msg  : {$api->errorMessage}\n";

} else {
    echo 
"API response:\n=============\n\n";
    echo 
"id             : {$response->pk}\n";
    echo 
"name           : {$response->attributes->name}\n";
    echo 
"price          : {$response->attributes->price}\n";
    echo 
"limit_mail     : {$response->attributes->limit_mail}\n";
    echo 
"limit_database : {$response->attributes->limit_database}\n";
    echo 
"limit_web      : {$response->attributes->limit_web}\n\n";
}

A szkript kimenete:

API response:
=============

id             : 3
name           : Custom hosting
price          : 10.2
limit_mail     : 2
limit_database : 1
limit_web      : 500

Rendelés

<?php

require_once '../include/config.php';
require_once 
'../include/WebsupportApi.php';


$api = new WebsupportApi($apiKey);
$api->setApiUrl($apiUrl);


$orderArray = array(
    array(
        
'id' => 1// .sk domain
        
'domain_name' => 'testovacia-domena.sk',
        
'sk_nic_handle' => 'WEBS-0001'
        
'dns_servers' => 'ns1.scaledo.com;ns2.scaledo.com'// POZOR! Funguje len pri .sk domenach         
    ),
    array(
        
'id' => '3'// Custom hosting
        
'domain_name' => 'aaas.sk',
        
'period' => 4,
        
'limit_web' => 34,
        
'limit_mail' => 34,
        
'limit_database' => 2,
    ),
    array(
        
'id' => 47// virtual server
        
'ram' => 512,
        
'disk_space' => 2,
        
'traffic' => 23,
        
'server_name' => 'testvirtual',
    ),
);

$response $api->sendRequest('PUT''order', array(), array(), $orderArray);
// order for custom user
// $response = $api->sendRequest('PUT', 'order/user_id/12345', array(), array(), $orderArray); 

if ($api->error) {
    echo 
"Unable to complete order!\n========================\n\n";
    echo 
"Code : {$api->statusCode}\n";
    echo 
"Msg  : {$api->errorMessage}\n";

} else {
    
var_dump($response);
}


Regisztrálás

<?php

require_once '../include/config.php';
require_once 
'../include/WebsupportApi.php';


$api = new WebsupportApi($apiKey);
$api->setApiUrl($apiUrl);


$regArray = array(
    
'login' => 'jano12345',
    
'password' => 'heslojetest',
    
'email' => 'testovaci@email.sk',
    
'name' => 'Jan Novák',
    
'city' => 'Lehota',
    
'street' => 'Kvetná 21',
    
'psc' => '04221',
);

$response $api->sendRequest('PUT''register', array(), array(), $regArray);

if (
$api->error) {
    echo 
"Unable to complete registration!\n========================\n\n";
    echo 
"Code : {$api->statusCode}\n";
    echo 
"Msg  : {$api->errorMessage}\n";

} else {
    
var_dump($response);
}

A szkript kimenete (ideális esetben):

bool(true)


Interaktív példa

A példák között megtalálja a forráskódot és a példák archívumát is egy interaktív demo-val. Egy leegyszerűsített megrendelő felületről van szó, amit beépíthet a saját weboldalába. A külalak módosításához biztosítjuk a CSS fájl-t is.