2. Obecný popis HTTP API
2N® Helios IP HTTP API (Application Interface) je rozhraní určené ke vzdálenému řízení, nastavování a sběru dat z 2N Helios IP pomocí aplikací třetích stran. 2N® Helios IP HTTP API umožňuje začlenit interkomy 2N do širší infrastruktury na straně uživatele (např. systémů domácí automatizace, docházkových systémů apod.)
2N® Helios IP HTTP API poskytuje jednoduchý interface postavený na standardních protokolech (SOAP/HTTP) a umožňuje vyčítat stavové nebo statistické informace.
2N® Helios IP API je definováno pomocí webové služby přístupné na adresách:
- http://helios_ip_address/automation – příkazy pro řízení 2N Helios IP
- http://helios_ip_address/notification – příkazy pro sběr dat z logu
Klient odešle na jednu z uvedených adres HTTP požadavek obsahující správně formátovaná SOAP/XML data. 2N Helios IP provede požadovanou operaci a odešle zpět odpověď ve formátu SOAP/XML.
Obecná struktura HTTP požadavku odpovídá následujícímu vzoru:
POST /... HTTP/1.1 Host: ... Content-Type: application/soap+xml Content-Length: ... <?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> doplňující řídící informace požadavku </s:Header> <s:Body> parametry požadavku </s:Body> </s:Envelope>
V případě úspěšného zpracování požadavku 2N Helios IP odešle HTTP odpověď:
HTTP/1.1 200 OK Content-Type: application/soap+xml Content-Length: nnn <?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> doplňující řídící informace odpovědi </s:Header> <s:Body> Parametry odpovědi </s:Body> </s:Envelope>
Pokud požadavek nelze zpracovat, příp. při jeho zpracování dojde k chybě, 2N Helios IP vrátí odpověď 400 Bad Request a data odpovědi obsahují SOAP/XML s popisem chyby.
HTTP/1.1 400 Bad Request Content-Length: ... Content-Type: application/soap+xml <?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:ter="http://www.onvif.org/ver10/error"> <s:Body> <s:Fault> <s:Code> <s:Value> Kód chyby </s:Value> <s:Subcode> <s:Value> Subkód chyby </s:Value> </s:Subcode> </s:Code> <s:Reason> <s:Text xml:lang="en"> Popis důvodu chyby </s:Text> </s:Reason> <s:Detail> <s:Text> Doplňující popis chyby </s:Text> </s:Detail> </s:Fault> </s:Body> </s:Envelope>