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:

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>