WAPI - notifikace

Popis systému notifikací pro získávání výsledků asynchronní příkazů a dalších informací, způsoby doručování notifikací přes POLL frontu, volání URL adresy a zasílání e-mailů

Datum: 21.10.2010


Některé operace nelze provést okamžitě. Aby bylo možné zjistit, jak taková operace dopadla (případně sledovat její průběh), obsahuje WAPI systém notifikací.

Pokud tedy nelze operaci dokončit ihned, v odpovědi bude vráceno Request pending (1001). Po dokončení operace (u komplikovanějších akcí jednotlivých kroků) se vytvoří notifikace, která je obdobou klasické odpovědi. Podle parametrů clTRID,nebo svTRID pak snadno poznáte, ke kterému požadavku tato notifikace patří.

Přes notifikace se nezasílají výsledky požadavků, které byly provedeny synchronně.

Data notifikace jsou vždy v XML v kódování UTF-8.

Doručování notifikací

Existují tři způsoby, jak mohou být notifikace doručeny od nás k vám:

  1. Zaslání e-mailem
  2. Zavolání URL adresy vašeho skriptu a předání přes POST
  3. Stahování z POLL fronty

V nastavení WAPI v zákaznickém centru je nutné si jeden z těchto způsobů vybrat. Ve výchozím stavu se používá POLL fronta.

Posílání e-mailem

Po dokončení operace je notifikace odeslána na e-mailovou adresu, kterou nastavíte v zákaznickém centru.

Zavolání URL adresy

Notifikace je odeslána přes HTTP (či HTTPS) protokol na Vámi stanovenou URL adresu metodou POST v parametru request. Za korektní doručení se považuje HTTP odpověď s návratovým kódem 200. Pokud se doručit nepodaří, bude se náš systém v několikaminutových intervalech pokoušet o doručení znovu.

Stahování z POLL fronty

V tomto případě všechny notifikace čekají ve frontě v našem systému a pomocí příkazů je možné je přes WAPI stahovat. Přes WAPI rozhraní odešlete příkaz notify-poll-req. Pokud je fronta prázdná, systém vrátí 1003 - Empty notifications queue,  jinak do odpovědi vloží nejstarší nestaženou notifikaci.

Po získání notifikace je třeba ji označit jako zpracovanou pomocí příkazu notify-poll-ack, kterému předáte její ID. Takto označit lze jen nejstarší nestaženou notifikaci (tedy tu, která byla vrácena příkazem poll_req).

Detailní popis těchto příkazů naleznete zde: příkaz notify-poll-req, příkaz notify-poll-acq.

Příklad

XML dotaz:

<request>
 <user>tester</user>
 <auth>fb82be1466331148816bdbac855a6b1bd4e24b81</auth>
 <command>ping-async</command>
 <clTRID>AvrX87Kqk6h3</clTRID>
</request>

 

XML odpověď:

<response>
 <code>1001</code>
 <result>Request pending</result>
 <timestamp>1286957874</timestamp>
 <clTRID>AvrX87Kqk6h3</clTRID>
 <svTRID>1286957874.1271.15706</svTRID>
 <command>ping-async</command>
</response>

 

XML notifikace:

<notify>
 <code>1000</code>
 <result>OK</result>
 <timestamp>1286957932</timestamp>
 <clTRID>AvrX87Kqk6h3</clTRID>
 <svTRID>1286957874.1271.15706</svTRID>
 <command>ping-async</command>
 <ID>2691</ID>
</notify>

Diskuze k článku

K tomuto článku nebyl dosud vložen žádný diskuzní příspěvek, ale můžete tak učinit jako první.

Přihlášení zákazníka

Nemáte ještě zákaznický účet? Registrace

Copyright © WEDOS, 2017

Facebook RSS