Baskytara.com
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/noapikeyPří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í. |