Baskytara.com » API

 

API

Server Baskytara.com poskytuje přístup k některým ze svých funkcní přes webové služby. K 5. 1. 2009 je podporován přístup pomocí XML-RPC. Služba SOAP je ve vývoji a bude brzi zveřejněna.

1. XML-RPC

XML-RPC je protokol, s jehož pomocí lze velice jednoduše provádět vzdálené volání procedur. XML-RPC nepřineslo do světa vzdáleného volání procedur novou technologii. Jedná se totiž o soubor pravidel, které pouze říkají, jak použít již funkční a dokonce standardizované technologie pro potřeby RPC. Data jsou zapouzdřena pomocí značkovacího jazyka XML (eXtensible Markup Language) a přenášena díky protokolu HTTP. Taková koncepce umožňuje aplikacím, napsaných v různých programovacích jazycích, komunikaci mezi různými počítačovými architekturami a jejich operačními systémy. V současné době je projekt ukončen, nicméně stal se předlohou pro protokol SOAP. Zdroj: http://cs.wikipedia.org/wiki/XML-RPC

1.1 Klient

Nejdříve je nutné nechat si vygenerovat klíč k rozhraní API:

Url adresa vašeho serveru:

 

XML-RPC server naslouchá na portu 80, na adrese:

http://baskytara.com/api/xmlrpc/Váš vygenerovaný klíč

Nemůžete-li, nebo nechcete-li si nechat vygenerovat API klíč můžete použít následující univerzální adresu. Dostupnost služby v tomoto přápadě není zaručena.

http://baskytara.com/api/xmlrpc/noapikey
Příklad klienta pro zaslání požadavku na server Baskytara.com.
Pomocí knihovny Zend Framework

Zend Framework je open source webový aplikační framework pro vývoj webových aplikací založených na PHP 5. Vyžaduje PHP minimálně verze 5.1.4. Jak je vidět z názvu, za vývojem frameworku stojí firma Zend, která se podílí na vývoji PHP jádra již od verze 4. Jedním z cílů je poskytovat knihovny, které jsou navzájem provázané s ostatními komponentami frameworku. Ve frameworku se využívá principu MVC. Zdroj: http://cs.wikipedia.org/wiki/Zend_Framework

Zend Framework je ke stažení na adrese: http://framework.zend.com/download/latest. Dokumentaci k frameworku naleznete na: http://framework.zend.com/manual/en/.

<?php
try {
    require 'Zend/XmlRpc/Client.php';

    // Vytvoříme klientský objekt
    $client = new Zend_XmlRpc_Client('http://baskytara.com/api/xmlrpc/Váš vygenerovaný klíč');

    // Metoda demo.sayHello vrátí string, který je možno vypsat na výstup.
    var_dump($client->call('demo.sayHello'));

    // Metoda demo.sayHello vrátí integer, který je možno vypsat na výstup.
    var_dump($client->call('demo.addTwoNumbers', array(1,2)));

} catch (Exception $e) {
    // Pokud se vyskytne chyba, tak ji zachytíme a vypíšeme na výstup chybovou zprávu.
    die($e->getMessage());
}
?>
Pomocí knihovny Incutio XML-RPC

The Incutio XML-RPC library (IXR) is designed primarily for ease of use. It incorporates both client and server classes, and is designed to hide as much of the workings of XML-RPC from the user as possible. A key feature of the library is automatic type conversion from PHP types to XML-RPC types and vice versa. This should enable developers to write web services with very little knowledge of the underlying XML-RPC standard. Zdroj: http://scripts.incutio.com/xmlrpc/

Knihovna Incutio XML-RPC je ke stažení na adrese: http://scripts.incutio.com/xmlrpc/IXR_Library.inc.php.txt. Knihovnu si stáhněte a přejmenujte na IXR_Library.php.

Původní knihovna však obsahuje některé chybi, které se nezdají být v dohledné době opraveny, proto si stáhněte spíše tuto opravenou třídu na adrese: http://baskytara.com/storage/libs/ixr/ixr_library.php Archiv rozbalte a vložte soubor IXR_Library.php do stejného adresáře jako je váš script se klientem.

<?php
require 'IXR_Library.php';

// Vytvoříme klientský objekt
$client = new IXR_Client('http://baskytara.com/api/xmlrpc/Váš vygenerovaný klíč');

// Odešleme dotaz
if (!$client->query('demo.sayHello')) {
    // Pokud nastane chyba, zachytíme ji a vrátíme chybovou hlášku.
    die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage());
}

// Odešleme jiný dotaz
if (!$client->query('demo.addTwoNumbers', array(1,2))) {
    // Pokud nastane chyba, zachytíme ji a vrátíme chybovou hlášku.
    die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage());
}

// Zobrazení výsledků
echo '<pre>';
print_r($client->getResponse());
echo '</pre>';
?>

1.2 Dostupné metody na serveru

Testovací metody
Název Parametr Vrací Popis
demo.sayHello Žádný string Zašle pozdrav.
demo.addTwoNumbers array
array(1,2);
integer Sečte dvě čísla v poli a vrátí jejich součet.
Uživatelé

Soubor těchto metod poskytuje informace o uživatelích.

Název Parametr Vrací Popis
user.authorize array
array('jméno','heslo');
boolean Ověří zda má uživatel účet na serveru Baskytara.com a zda jsou zaslané uživatelské údaje správné. Uživatelské jméno zasílejte v tom tvaru jak ho dostanete na vstupu od uživatele. Nepřevádějte jej na malá písmena, neodstraňujte mezery (pouze ze začátku a konce řetězce) a neodstraňujte diakritiku. Před odesláním ověřte, zda jsou řetězce v kódování UTF-8! Viz převod kódování.