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); ?>