Klientų sistemos API: Skirtumas tarp puslapio versijų
(nerodoma viena tarpinė versija, sukurta 3 naudotojų) | |||
1 eilutė: | 1 eilutė: | ||
− | + | = Prisijungimas prie API = | |
Klientų sistemos programavimo sąsaja (API) skirta veiksmų su paslaugomis automatizavimui bei integravimui į trečųjų šalių sistemas. Prisijungimas prie API vyksta per HTTPS protokolą, rezultatai grąžinami [http://en.wikipedia.org/wiki/JSON JSON] formatu. | Klientų sistemos programavimo sąsaja (API) skirta veiksmų su paslaugomis automatizavimui bei integravimui į trečųjų šalių sistemas. Prisijungimas prie API vyksta per HTTPS protokolą, rezultatai grąžinami [http://en.wikipedia.org/wiki/JSON JSON] formatu. | ||
− | + | Užklausų formatas: | |
<pre> | <pre> | ||
13 eilutė: | 13 eilutė: | ||
&...=<kiti parametrai> | &...=<kiti parametrai> | ||
</pre> | </pre> | ||
+ | |||
+ | Užklausos priimamos tiek per GET, tiek per POST HTTP metodus. | ||
Parametrų paaiškinimai: | Parametrų paaiškinimai: | ||
− | * '''prisijungimo vardas''' - specialaus API naudotojo vardas | + | * '''prisijungimo vardas''' - specialaus API naudotojo vardas. |
− | * '''slaptažodis''' - specialaus API naudotojo slaptažodis | + | * '''slaptažodis''' - specialaus API naudotojo slaptažodis. |
− | * '''komanda''' - komanda vykdymui, pvz., "version" arba "account_info" | + | * '''komanda''' - komanda vykdymui, pvz., "version" arba "account_info". |
− | * '''id''' - paslaugos ID, kurį galite rasti per klientų sistemą paslaugos valdymo puslapyje, arba per API paslaugų sąraše | + | * '''id''' - paslaugos ID, kurį galite rasti per klientų sistemą paslaugos valdymo puslapyje, arba per API paslaugų sąraše. |
− | * '''kiti parametrai''' - papildomi parametrai, priklausomai nuo konkrečios komandos | + | * '''kiti parametrai''' - papildomi parametrai, priklausomai nuo konkrečios komandos. |
− | '''SVARBU!''' | + | '''SVARBU!''' Saugumo sumetimais, prisijungimas prie API galimas '''tik iš IV potinklių''', t.y. iš pas mus talpinamų serverių. API šiuo metu yra '''beta stadijos''', todėl gali pasitaikyti tam tikrų klaidų, komandų ir rezultatų formatas gali keistis kol API pasieks 1.0 versiją, šis puslapis kol kas bus vieninteliu informacijos apie naudojimąsi API šaltiniu. Papildoma techninė pagalba API klausimais šiuo metu nėra teikiama. |
− | + | = Specialus API naudotojas = | |
Norėdami jungtis prie klientų sistemos per API, turėsite sukurti specialų API naudotoją. Tam klientų sistemoje apsilankykite naudotojų tvarkymo puslapyje: | Norėdami jungtis prie klientų sistemos per API, turėsite sukurti specialų API naudotoją. Tam klientų sistemoje apsilankykite naudotojų tvarkymo puslapyje: | ||
32 eilutė: | 34 eilutė: | ||
Ir sukurkite papildomą naudotoją su aprašymu "API" (be kabučių). Su šio naudotojo prisijungimo duomenimis galėsite jungtis prie API, tačiau ne prie klientų sistemos. | Ir sukurkite papildomą naudotoją su aprašymu "API" (be kabučių). Su šio naudotojo prisijungimo duomenimis galėsite jungtis prie API, tačiau ne prie klientų sistemos. | ||
− | == API naudojimo pavyzdys | + | = Klaidų apdorojimas = |
+ | |||
+ | Nesant galimybei įvykdyti užklausos, API grąžina vieną iš standartinių HTTP klaidų: | ||
+ | |||
+ | * 400 - nurodyti klaidingi parametrai arba komanda. | ||
+ | * 401 - neteisingi prisijungimo duomenys arba naudotojas neturi "API" aprašo. | ||
+ | * 403 - užklausa gauta nešifruotu HTTPS protokolu, arba ne iš IV tinklui priklausančio IP adreso. | ||
+ | |||
+ | = Apribojimai = | ||
+ | |||
+ | Siekiant užtikrinti patikimą API veikimą, vienam naudotojui leidžiama siųsti ne daugiau kaip 100 užklausų per minutę. | ||
+ | |||
+ | Saugumo sumetimais iš to paties IP leidžiama ne daugiau kaip 100 klaidingų užklausų per parą. Viršijus šį limitą prisijungimai nebebus leidžiami. | ||
+ | |||
+ | = API naudojimo pavyzdys = | ||
Trumpas PHP kodo pavyzdys, iliustruojantis naudojimąsi API: | Trumpas PHP kodo pavyzdys, iliustruojantis naudojimąsi API: | ||
39 eilutė: | 55 eilutė: | ||
$nick = "prisijungimo vardas"; | $nick = "prisijungimo vardas"; | ||
$password = "slaptažodis"; | $password = "slaptažodis"; | ||
+ | $domain_id = "domeno paslaugos ID"; | ||
$server_id = "serverio paslaugos ID"; | $server_id = "serverio paslaugos ID"; | ||
$api_url = "https://api.iv.lt/json.php?nick=$nick&password=$password&command="; | $api_url = "https://api.iv.lt/json.php?nick=$nick&password=$password&command="; | ||
− | $account = json_decode(file_get_contents($api_url."account_info")); | + | $account = json_decode(file_get_contents($api_url."account_info"), true); |
− | $bonuses = json_decode(file_get_contents($api_url."account_bonuses&count=100")); | + | $bonuses = json_decode(file_get_contents($api_url."account_bonuses&count=100"), true); |
print_r($account); // atspausdina informaciją apie kliento paskyrą | print_r($account); // atspausdina informaciją apie kliento paskyrą | ||
print_r($bonuses); // atspausdina informaciją apie kliento paskutines gautas premijas (max 100) | print_r($bonuses); // atspausdina informaciją apie kliento paskutines gautas premijas (max 100) | ||
− | file_get_contents($api_url." | + | // gauna informaciją apie domeną |
+ | $domain = json_decode(file_get_contents($api_url."domain_info&id=$domain_id"), true); | ||
+ | |||
+ | if(is_array($domain["se_zone"])) { | ||
+ | // prideda papildomą vardų zonos įrašą (newsubdomain.domenas.tld -> 79.98.25.1) | ||
+ | $domain["se_zone"][] = ["name" => "newsubdomain", "type" => "A", "value" => "79.98.25.1"]; | ||
+ | |||
+ | // įkrauna atnaujintą vardų zoną domenui | ||
+ | file_get_contents($api_url."domain_zone&id=$domain_id&zone=".urlencode(json_encode($domain["se_zone"]))); | ||
+ | } | ||
+ | |||
+ | // inicijuoja serverio administratoriaus slaptažodžio keitimą | ||
+ | $results = json_decode(file_get_contents($api_url."server_reset_password&id=$server_id"), true); | ||
+ | |||
+ | sleep(300); // slaptažodžio keitimas užtrunka apie 5 min. | ||
+ | |||
+ | // patikrina slaptažodžio keitimo užduoties rezultatus | ||
+ | $tasks = json_decode(file_get_contents($api_url."server_tasks&id=$server_id&task_id=".$results["task_id"]), true); | ||
+ | |||
+ | print_r($tasks); // atspausdina rezutatus ir serverio "root" slaptažodį (jei užduotis įvykdyta) | ||
+ | |||
+ | // perkrauna serverį | ||
+ | file_get_contents($api_url."server_reboot&id=$server_id"); | ||
</pre> | </pre> | ||
− | + | Ruby GEM biblioteka API naudojimui: | |
+ | |||
+ | [https://github.com/jpalumickas/ivapi https://github.com/jpalumickas/ivapi] | ||
+ | |||
+ | = API komandos = | ||
− | + | == Bendros paskyros komandos == | |
− | + | === version === | |
Parametrų nėra. | Parametrų nėra. | ||
63 eilutė: | 106 eilutė: | ||
* API versijos numeris. | * API versijos numeris. | ||
− | + | === account_info === | |
Parametrų nėra. | Parametrų nėra. | ||
71 eilutė: | 114 eilutė: | ||
* Kliento paskyros informacija, kartu su permokos ir premijos likučiu. | * Kliento paskyros informacija, kartu su permokos ir premijos likučiu. | ||
− | + | === account_orders === | |
Parametrų nėra. | Parametrų nėra. | ||
79 eilutė: | 122 eilutė: | ||
* Išrašytų sąskaitų sąrašas, kartu su apmokėjimo būsena, suma, nuoroda spausdinimui. | * Išrašytų sąskaitų sąrašas, kartu su apmokėjimo būsena, suma, nuoroda spausdinimui. | ||
− | + | === account_services === | |
Parametrų nėra. | Parametrų nėra. | ||
87 eilutė: | 130 eilutė: | ||
* Aktyvuotų paslaugų sąrašas, su galiojimo datom, kainom, pavadinimais. | * Aktyvuotų paslaugų sąrašas, su galiojimo datom, kainom, pavadinimais. | ||
− | + | === account_credits === | |
Parametrai: | Parametrai: | ||
97 eilutė: | 140 eilutė: | ||
* Pridėtų ir panaudotų permokų išrašas. | * Pridėtų ir panaudotų permokų išrašas. | ||
− | + | === account_bonuses === | |
Parametrai: | Parametrai: | ||
107 eilutė: | 150 eilutė: | ||
* Pridėtų ir panaudotų premijų išrašas su detalia informacija (SMS turinys, paslaugos pavadinimas). | * Pridėtų ir panaudotų premijų išrašas su detalia informacija (SMS turinys, paslaugos pavadinimas). | ||
− | === | + | == Domeno valdymo komandos == |
+ | |||
+ | === domain_info === | ||
+ | |||
+ | Informacija apie domeną bei jo DNS įrašus. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * Informacija apie galiojimo laiką, nukreipimą ('''se_dns''') arba vardų zonos įrašus ('''se_zone'''). | ||
+ | |||
+ | === domain_zone === | ||
+ | |||
+ | Naujų vardų zonos įrašų įkėlimas domenui, vietoje esamų. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | * '''zone''' - vardų zonos masyvas, pateiktas JSON formatu. Analogiškas '''se_zone''' parametrui iš '''domain_info''' komandos. Pvz.: | ||
+ | |||
+ | <pre> | ||
+ | [ | ||
+ | {"name":"@","ttl":"15m","type":"A","value":"79.98.25.1"}, | ||
+ | {"name":"www","ttl":"1d","type":"CNAME","value":"test.test."}, | ||
+ | {"name":"@","type":"MX","value":"10 test.test."}, | ||
+ | {"name":"@","type":"TXT","value":"\"v=spf1 redirect=spf.serveriai.lt\""} | ||
+ | ] | ||
+ | </pre> | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * '''records''' - įkeltų vardų zonos įrašų kiekis (sėkmės atveju > 0). | ||
+ | |||
+ | == Svetainės talpinimo valdymo komandos == | ||
− | === | + | === hosting_info === |
+ | |||
+ | Informacija apie talpinimo planą bei jo naudojamus resursus. | ||
Parametrai: | Parametrai: | ||
117 eilutė: | 198 eilutė: | ||
Rezultatas: | Rezultatas: | ||
− | * Informacija apie | + | * Informacija apie talpinimo planą, disko vietos, Inode resursų sunaudojimą, CPU perviršius (atnaujinama kas 1 d.) |
+ | |||
+ | == Dedikuoto serverio valdymo komandos == | ||
+ | |||
+ | === server_info === | ||
− | + | Informacija apie serverį bei jo naudojamus resursus. Atnaujinama kas 30 min. arba iškart po server_update komandos. | |
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * Informacija apie serverį, serverio resursų (RAM, HDD) sunaudojimą. | ||
+ | |||
+ | === server_tasks === | ||
+ | |||
+ | Serverio užduočių tikrinimas. Užduočių rezultatuose galima rasti svarbią informaciją, pvz., serverio perkūrimo duomenis, root slaptažodį ir t.t. | ||
Parametrai: | Parametrai: | ||
132 eilutė: | 229 eilutė: | ||
* Informacija apie vykdomas arba įvykdytas serverio užduotis (pvz., perkrovimas). | * Informacija apie vykdomas arba įvykdytas serverio užduotis (pvz., perkrovimas). | ||
− | + | === server_graphs === | |
+ | |||
+ | Komanda serverio grafikų rodymui trečiųjų šalių aplinkoje. Nuoroda galioja tik vienam lankytojui, vienam parodymui. | ||
Parametrai: | Parametrai: | ||
* '''id''' - paslaugos ID. | * '''id''' - paslaugos ID. | ||
− | * '''width''' - grafikų plotis pikseliais (max 1000). | + | * '''width''' - grafikų plotis pikseliais (max 1000, optimalus 768). |
* '''ip''' - naudotojo IP, iš kurio bus peržiūrimi grafikai. | * '''ip''' - naudotojo IP, iš kurio bus peržiūrimi grafikai. | ||
144 eilutė: | 243 eilutė: | ||
* Nuorodos į serverio grafikus (tinklo, CPU, RAM ir kt.) | * Nuorodos į serverio grafikus (tinklo, CPU, RAM ir kt.) | ||
− | + | === server_os === | |
+ | |||
+ | Informacija apie palaikomas OS. | ||
Parametrai: | Parametrai: | ||
154 eilutė: | 255 eilutė: | ||
* Sąrašas operacinių sistemų, kurias galima įdiegti į serverį. | * Sąrašas operacinių sistemų, kurias galima įdiegti į serverį. | ||
− | ==== server_reboot === | + | === server_update === |
+ | |||
+ | Serverio statistikos, gaunamos su server_info, priverstinis atnaujinimas. Pagal užduoties ID galima atsekti, kada atnaujinimas pradėtas, kada baigtas. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
+ | |||
+ | === server_reboot === | ||
+ | |||
+ | Serverio perkrovimas. Pagal užduoties ID galima atsekti, kada perkrovimas pradėtas, kada baigtas. | ||
Parametrai: | Parametrai: | ||
164 eilutė: | 279 eilutė: | ||
* '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
− | + | === server_recreate === | |
+ | |||
+ | Serverio perkūrimas. Ištrinami visi serverio duomenys, įdiegiama pasirinkta OS. Naujo serverio parametrai ir root slaptažodis bus pateikti užduoties rezultatuose. | ||
Parametrai: | Parametrai: | ||
170 eilutė: | 287 eilutė: | ||
* '''id''' - paslaugos ID. | * '''id''' - paslaugos ID. | ||
* '''os''' - operacinės sistemos ID (pvz., centos-6-x86_64). | * '''os''' - operacinės sistemos ID (pvz., centos-6-x86_64). | ||
+ | * '''new_password''' - naujas serverio slaptažodis, 8-64 simbolių ilgio. Nenurodžius bus sugeneruotas atsitiktinis ir grąžintas užduoties rezultatuose. | ||
Rezultatas: | Rezultatas: | ||
175 eilutė: | 293 eilutė: | ||
* '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
− | + | === server_reset_password === | |
+ | |||
+ | Serverio root slaptažodžio keitimas. Naujas slaptažodis bus pateiktas užduoties rezultatuose. | ||
Parametrai: | Parametrai: | ||
* '''id''' - paslaugos ID. | * '''id''' - paslaugos ID. | ||
+ | * '''new_password''' - naujas serverio slaptažodis, 8-64 simbolių ilgio. Nenurodžius bus sugeneruotas atsitiktinis ir grąžintas užduoties rezultatuose. | ||
Rezultatas: | Rezultatas: | ||
185 eilutė: | 306 eilutė: | ||
* '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
− | === | + | === server_flush_iptables === |
+ | |||
+ | Serverio iptables taisyklių išvalymas. Rezultatuose bus pateikta iptables būklė prieš ir po išvalymo. | ||
Parametrai: | Parametrai: | ||
* '''id''' - paslaugos ID. | * '''id''' - paslaugos ID. | ||
− | |||
− | |||
− | |||
− | |||
Rezultatas: | Rezultatas: | ||
199 eilutė: | 318 eilutė: | ||
* '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
− | ==== server_domain === | + | === server_ptr === |
+ | |||
+ | Reverse PTR įrašo keitimas serverio papildomam IP. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | * '''ip''' - papildomas IP. | ||
+ | * '''domain''' - pageidaujamas reverse PTR. | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * '''ip''' - papildomas IP. | ||
+ | * '''domain''' - nustatytas reverse PTR. | ||
+ | |||
+ | === server_move_ip === | ||
+ | |||
+ | IP adreso perkėlimas kitam serveriui. Perkėlimas galimas tik papildomiems IP, tik tarp serverių tame pačiame duomenų centre. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | * '''ip''' - papildomas IP. | ||
+ | * '''target_id''' - kito serverio paslaugos ID. | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
+ | |||
+ | === server_nameserver === | ||
+ | |||
+ | Domenų išrišimui naudojamų serverių nustatymas. | ||
+ | |||
+ | Parametrai: | ||
+ | |||
+ | * '''id''' - paslaugos ID. | ||
+ | * '''ns1''' - pirmo serverio IP. | ||
+ | * '''ns2''' - antro serverio IP (nebūtinas). | ||
+ | * '''ns3''' - trečio serverio IP (nebūtinas). | ||
+ | * '''ns4''' - ketvirto serverio IP (nebūtinas). | ||
+ | |||
+ | Rezultatas: | ||
+ | |||
+ | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
+ | |||
+ | === server_domain === | ||
+ | |||
+ | Serverio hostname ir reverse PTR keitimas. Prieš keitimą naujas hostname jau turi būti nukreiptas į serverio pagrindinį IP, neturi dubliuotis su kitomis paslaugomis. | ||
Parametrai: | Parametrai: | ||
* '''id''' - paslaugos ID. | * '''id''' - paslaugos ID. | ||
− | * '''domain''' - naujas serverio hostname. | + | * '''domain''' - naujas serverio hostname ir reverse PTR. |
Rezultatas: | Rezultatas: | ||
210 eilutė: | 376 eilutė: | ||
* '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | * '''task_id''' - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę. | ||
− | [[ | + | [[Kategorija:Klientų sistema]] |
Dabartinė 13:08, 6 rugsėjo 2019 versija
Turinys
Prisijungimas prie API
Klientų sistemos programavimo sąsaja (API) skirta veiksmų su paslaugomis automatizavimui bei integravimui į trečųjų šalių sistemas. Prisijungimas prie API vyksta per HTTPS protokolą, rezultatai grąžinami JSON formatu.
Užklausų formatas:
https://api.iv.lt/json.php ?nick=<prisijungimo vardas> &password=<slaptažodis> &command=<komanda> &id=<paslaugos id> &...=<kiti parametrai>
Užklausos priimamos tiek per GET, tiek per POST HTTP metodus.
Parametrų paaiškinimai:
- prisijungimo vardas - specialaus API naudotojo vardas.
- slaptažodis - specialaus API naudotojo slaptažodis.
- komanda - komanda vykdymui, pvz., "version" arba "account_info".
- id - paslaugos ID, kurį galite rasti per klientų sistemą paslaugos valdymo puslapyje, arba per API paslaugų sąraše.
- kiti parametrai - papildomi parametrai, priklausomai nuo konkrečios komandos.
SVARBU! Saugumo sumetimais, prisijungimas prie API galimas tik iš IV potinklių, t.y. iš pas mus talpinamų serverių. API šiuo metu yra beta stadijos, todėl gali pasitaikyti tam tikrų klaidų, komandų ir rezultatų formatas gali keistis kol API pasieks 1.0 versiją, šis puslapis kol kas bus vieninteliu informacijos apie naudojimąsi API šaltiniu. Papildoma techninė pagalba API klausimais šiuo metu nėra teikiama.
Specialus API naudotojas
Norėdami jungtis prie klientų sistemos per API, turėsite sukurti specialų API naudotoją. Tam klientų sistemoje apsilankykite naudotojų tvarkymo puslapyje:
https://klientams.iv.lt/users.php
Ir sukurkite papildomą naudotoją su aprašymu "API" (be kabučių). Su šio naudotojo prisijungimo duomenimis galėsite jungtis prie API, tačiau ne prie klientų sistemos.
Klaidų apdorojimas
Nesant galimybei įvykdyti užklausos, API grąžina vieną iš standartinių HTTP klaidų:
- 400 - nurodyti klaidingi parametrai arba komanda.
- 401 - neteisingi prisijungimo duomenys arba naudotojas neturi "API" aprašo.
- 403 - užklausa gauta nešifruotu HTTPS protokolu, arba ne iš IV tinklui priklausančio IP adreso.
Apribojimai
Siekiant užtikrinti patikimą API veikimą, vienam naudotojui leidžiama siųsti ne daugiau kaip 100 užklausų per minutę.
Saugumo sumetimais iš to paties IP leidžiama ne daugiau kaip 100 klaidingų užklausų per parą. Viršijus šį limitą prisijungimai nebebus leidžiami.
API naudojimo pavyzdys
Trumpas PHP kodo pavyzdys, iliustruojantis naudojimąsi API:
$nick = "prisijungimo vardas"; $password = "slaptažodis"; $domain_id = "domeno paslaugos ID"; $server_id = "serverio paslaugos ID"; $api_url = "https://api.iv.lt/json.php?nick=$nick&password=$password&command="; $account = json_decode(file_get_contents($api_url."account_info"), true); $bonuses = json_decode(file_get_contents($api_url."account_bonuses&count=100"), true); print_r($account); // atspausdina informaciją apie kliento paskyrą print_r($bonuses); // atspausdina informaciją apie kliento paskutines gautas premijas (max 100) // gauna informaciją apie domeną $domain = json_decode(file_get_contents($api_url."domain_info&id=$domain_id"), true); if(is_array($domain["se_zone"])) { // prideda papildomą vardų zonos įrašą (newsubdomain.domenas.tld -> 79.98.25.1) $domain["se_zone"][] = ["name" => "newsubdomain", "type" => "A", "value" => "79.98.25.1"]; // įkrauna atnaujintą vardų zoną domenui file_get_contents($api_url."domain_zone&id=$domain_id&zone=".urlencode(json_encode($domain["se_zone"]))); } // inicijuoja serverio administratoriaus slaptažodžio keitimą $results = json_decode(file_get_contents($api_url."server_reset_password&id=$server_id"), true); sleep(300); // slaptažodžio keitimas užtrunka apie 5 min. // patikrina slaptažodžio keitimo užduoties rezultatus $tasks = json_decode(file_get_contents($api_url."server_tasks&id=$server_id&task_id=".$results["task_id"]), true); print_r($tasks); // atspausdina rezutatus ir serverio "root" slaptažodį (jei užduotis įvykdyta) // perkrauna serverį file_get_contents($api_url."server_reboot&id=$server_id");
Ruby GEM biblioteka API naudojimui:
https://github.com/jpalumickas/ivapi
API komandos
Bendros paskyros komandos
version
Parametrų nėra.
Rezultatas:
- API versijos numeris.
account_info
Parametrų nėra.
Rezultatas:
- Kliento paskyros informacija, kartu su permokos ir premijos likučiu.
account_orders
Parametrų nėra.
Rezultatas:
- Išrašytų sąskaitų sąrašas, kartu su apmokėjimo būsena, suma, nuoroda spausdinimui.
account_services
Parametrų nėra.
Rezultatas:
- Aktyvuotų paslaugų sąrašas, su galiojimo datom, kainom, pavadinimais.
account_credits
Parametrai:
- count - kiek paskutinių įrašų grąžinti (max 1000).
Rezultatas:
- Pridėtų ir panaudotų permokų išrašas.
account_bonuses
Parametrai:
- count - kiek paskutinių įrašų grąžinti (max 1000).
Rezultatas:
- Pridėtų ir panaudotų premijų išrašas su detalia informacija (SMS turinys, paslaugos pavadinimas).
Domeno valdymo komandos
domain_info
Informacija apie domeną bei jo DNS įrašus.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- Informacija apie galiojimo laiką, nukreipimą (se_dns) arba vardų zonos įrašus (se_zone).
domain_zone
Naujų vardų zonos įrašų įkėlimas domenui, vietoje esamų.
Parametrai:
- id - paslaugos ID.
- zone - vardų zonos masyvas, pateiktas JSON formatu. Analogiškas se_zone parametrui iš domain_info komandos. Pvz.:
[ {"name":"@","ttl":"15m","type":"A","value":"79.98.25.1"}, {"name":"www","ttl":"1d","type":"CNAME","value":"test.test."}, {"name":"@","type":"MX","value":"10 test.test."}, {"name":"@","type":"TXT","value":"\"v=spf1 redirect=spf.serveriai.lt\""} ]
Rezultatas:
- records - įkeltų vardų zonos įrašų kiekis (sėkmės atveju > 0).
Svetainės talpinimo valdymo komandos
hosting_info
Informacija apie talpinimo planą bei jo naudojamus resursus.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- Informacija apie talpinimo planą, disko vietos, Inode resursų sunaudojimą, CPU perviršius (atnaujinama kas 1 d.)
Dedikuoto serverio valdymo komandos
server_info
Informacija apie serverį bei jo naudojamus resursus. Atnaujinama kas 30 min. arba iškart po server_update komandos.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- Informacija apie serverį, serverio resursų (RAM, HDD) sunaudojimą.
server_tasks
Serverio užduočių tikrinimas. Užduočių rezultatuose galima rasti svarbią informaciją, pvz., serverio perkūrimo duomenis, root slaptažodį ir t.t.
Parametrai:
- id - paslaugos ID.
- task_id - užduoties ID (neprivalomas).
- task - užduoties pavadinimas (neprivalomas).
- count - kiek paskutinių įrašų grąžinti (max 1000).
Rezultatas:
- Informacija apie vykdomas arba įvykdytas serverio užduotis (pvz., perkrovimas).
server_graphs
Komanda serverio grafikų rodymui trečiųjų šalių aplinkoje. Nuoroda galioja tik vienam lankytojui, vienam parodymui.
Parametrai:
- id - paslaugos ID.
- width - grafikų plotis pikseliais (max 1000, optimalus 768).
- ip - naudotojo IP, iš kurio bus peržiūrimi grafikai.
Rezultatas:
- Nuorodos į serverio grafikus (tinklo, CPU, RAM ir kt.)
server_os
Informacija apie palaikomas OS.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- Sąrašas operacinių sistemų, kurias galima įdiegti į serverį.
server_update
Serverio statistikos, gaunamos su server_info, priverstinis atnaujinimas. Pagal užduoties ID galima atsekti, kada atnaujinimas pradėtas, kada baigtas.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_reboot
Serverio perkrovimas. Pagal užduoties ID galima atsekti, kada perkrovimas pradėtas, kada baigtas.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_recreate
Serverio perkūrimas. Ištrinami visi serverio duomenys, įdiegiama pasirinkta OS. Naujo serverio parametrai ir root slaptažodis bus pateikti užduoties rezultatuose.
Parametrai:
- id - paslaugos ID.
- os - operacinės sistemos ID (pvz., centos-6-x86_64).
- new_password - naujas serverio slaptažodis, 8-64 simbolių ilgio. Nenurodžius bus sugeneruotas atsitiktinis ir grąžintas užduoties rezultatuose.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_reset_password
Serverio root slaptažodžio keitimas. Naujas slaptažodis bus pateiktas užduoties rezultatuose.
Parametrai:
- id - paslaugos ID.
- new_password - naujas serverio slaptažodis, 8-64 simbolių ilgio. Nenurodžius bus sugeneruotas atsitiktinis ir grąžintas užduoties rezultatuose.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_flush_iptables
Serverio iptables taisyklių išvalymas. Rezultatuose bus pateikta iptables būklė prieš ir po išvalymo.
Parametrai:
- id - paslaugos ID.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_ptr
Reverse PTR įrašo keitimas serverio papildomam IP.
Parametrai:
- id - paslaugos ID.
- ip - papildomas IP.
- domain - pageidaujamas reverse PTR.
Rezultatas:
- ip - papildomas IP.
- domain - nustatytas reverse PTR.
server_move_ip
IP adreso perkėlimas kitam serveriui. Perkėlimas galimas tik papildomiems IP, tik tarp serverių tame pačiame duomenų centre.
Parametrai:
- id - paslaugos ID.
- ip - papildomas IP.
- target_id - kito serverio paslaugos ID.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_nameserver
Domenų išrišimui naudojamų serverių nustatymas.
Parametrai:
- id - paslaugos ID.
- ns1 - pirmo serverio IP.
- ns2 - antro serverio IP (nebūtinas).
- ns3 - trečio serverio IP (nebūtinas).
- ns4 - ketvirto serverio IP (nebūtinas).
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.
server_domain
Serverio hostname ir reverse PTR keitimas. Prieš keitimą naujas hostname jau turi būti nukreiptas į serverio pagrindinį IP, neturi dubliuotis su kitomis paslaugomis.
Parametrai:
- id - paslaugos ID.
- domain - naujas serverio hostname ir reverse PTR.
Rezultatas:
- task_id - užduoties ID, pagal kurį galima sekti užduoties vykdymo būklę.