WAPI – komunikace v JSON + JSON PHP příklad

JSON – JavaScript Object Notation je jednoduchý textový formát pro přenos datových struktur. Jeho syntaxe je odvozená z JavaScriptu, je ale nezávislý na použitém jazyku a v prakticky každém programovacím jazyce jsou pro něj dostupné nástroje.

Pro posílání příkazů ve formátu JSON použijte adresu https://api.wedos.com/wapi/json.  

Pokud budete s WAPI komunikovat pomocí JSON, server Vám bude v tomto formátu odpovídat, notifikace (ať už na e-mail, nebo na url) budou také odeslány v odpovídajícím formátu. U poll notifikací záleží na formátu konkrétního dotazu (tedy když bude příkaz odeslán v XML, ale poll-req již v JSONu, bude notifikace vrácena v JSONu).

Pokud nebude jasné, v jakém formátu se má komunikovat (například u systémových notifikací) bude se systém řídit volbou Preferovaný protokol, kterou nastavíte v klientském centru, v sekci Nastavení WAPI (https://client.wedos.com/client/wapi.html).

Datová struktura příkazů v JSON je ekvivalentní s XML. 

Dotaz zapsaný v XML:

<request>
 <user>tester</user>
 <auth>463870369aef393f3b82274107c9ade4b5b2a414</auth>
 <command>contact-create</command>
 <data>
  <tld>cz</tld>
  <contact>
   <cname>JAN-NOVAK</cname>
   <fname>Honza</fname>
   <lname>Novák</lname>
   <email>novak@example.com</email>
   <addr_street>Zelená 15</addr_street>
   <addr_city>Minas Morgull</addr_city>
   <addr_zip>12345</addr_zip>
   <addr_country>vg</addr_country>
   <notify_email>jan.novak@example.com</notify_email>
  </contact>
 </data>
</request>

odpovídá tomuto v JSON:

{
  "request":
  {
    "user":     "tester",
    "auth":     "463870369aef393f3b82274107c9ade4b5b2a414",
    "command":  "contact-create",
    "data":
    {
      "tld":      "cz",
      "contact":
      {
        "cname":        "JAN-NOVAK",
        "fname":        "Honza",
        "lname":        "Novák",
        "email":        "novak@example.com",
        "addr_street":  "Zelená 15",
        "addr_city":    "Minas Morgull",
        "addr_zip":     "12345",
        "addr_country": "vg",
        "notify_email": "jan.novak@example.com"
      }
    }
  }
} 

což odpovídá tomuto poli (PHP):

Array
(    
 [request] => Array
  (
       [user] => tester
       [auth] => 463870369aef393f3b82274107c9ade4b5b2a414
       [command] => contact-create 
       [data] => Array 
        ( 
          [tld] => cz
          [contact] => Array 
            ( 
              [cname] => JAN-NOVAK
              [fname] => Honza 
              [lname] => Novák
              [email] => novak@example.com
              [addr_street] => Zelená 15 
              [addr_city] => Minas Morgull
              [addr_zip] => 12345 
              [addr_country] => vg 
              [notify_email] => jan.novak@example.com 
            )
         )
   )
 )

  

JSON PHP příklad

Následující skript vyžaduje ke svému běhu rozšíření curl. Proměnné $login a $wpass nahraďte přihlašovacím jménem do vašeho zákaznického účtu a heslem k WAPI rozhraní (heslo, které jste si nastavili v nastavení WAPI, nejedná se o heslo k zákaznickému účtu).

<?php
session_start();

$login = 'xxx';
$wpass = 'yyy';
$auth = sha1($login.sha1($wpass).date('H', time()));
$url = 'https://api.wedos.com/wapi/json';

$input = [
'request' => [
'user' => $login,
'auth' => $auth,
'command' => 'ping'
]
];

$post = json_encode($input);
echo "{$post}<br/>";
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_TIMEOUT,60);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS, 'request=' . $post);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);
$res = curl_exec($ch);
print_r($res);
?>
Zpětná vazba je dočasně nedostupná, máte-li k návodu dotaz nebo připomínku, napište nám přes kontaktní formulář.