Novinky na Ukáz.at
Když jsem nedávno psal o spuštění projektu Ukáz.at, tak jsem netušil, jak jeho návštěvnost zamíchá s prioritami a chutí programovat na něm nové funkce. První na programu bylo vyřešení několika bugů a to, že nahrávání obrázků v mobilní verzi nebylo úplně korektní. A “AJAX”ové nahrávání na MACku nefungovalo vůbec (děkuji Michalu Ševčíkovi, že mi dělal testera). První nával novinek je tu.
Mobilní verze
První novinkou, která už nějaký čas běží a informoval jsem o ní na twitteru, je mobilní verze. Pokud na Ukáz.at přistoupíte z mobilního telefonu, měli byste být automaticky přesměrování na http://m.ukaz.at, kde se také mobilní verze zabydlela.
Statistiky
Další novinkou, která už nějaký čas běží a informoval jsem o ní na twitteru, jsou statistiky pro jednotlivé obrázky. Ty jsou přístupné na adrese “urlObrazku/stats”, takže například http://ukaz.at/k/stats . K přegenerování dochází každých 10 minut, takže čísla jsou docela aktuální. (Statistiky nejsou v mobilní verzi k dispozici)
API
No a tou poslední novinkou, která je v provozu krátce, je API. Komunikace s API probíhá klasickými GET/POST HTTP požadavky a odpovědí je XML nebo JSON. Máte k dispozici celkem 3 funkce a tak se na ně pojďme podívat blíže.
Získání dat obrázku
Data k obrázku získáte jednoduše přistoupením na url:
http://api.ukaz.at/k/data.xml
nebo
http://api.ukaz.at/k/data.json
Kde k
je kód((slug)) vašeho obrázku. Pokud obrázek existuje a nebyl smazán, dostanete takovouto odpověď XML:
<ukazat>
<status>ok</status>
<code>200</code>
<slug>k</slug>
<url>http://ukaz.at/k</url>
<mobileurl>http://m.ukaz.at/k</mobileurl>
<statsurl>http://ukaz.at/k/stats</statsurl>
<full>http://ukaz.at/images/full/k.jpg</full>
<thumbnail>http://ukaz.at/images/thumbnail/k.jpg</thumbnail>
<mobile>http://ukaz.at/images/mobile/k.jpg</mobile>
<insert>2009-12-19 11:35:52</insert>
</ukazat>
JSON:
{[status]("ok","code":200,"slug":"k","url":"http:\/\/ukaz.at\/k","mobileurl":"http:\/\/m.ukaz.at\/k","statsurl":"http:\/\/ukaz.at\/k\/stats","full":"http:\/\/ukaz.at\/images\/full\/k.jpg","thumbnail":"http:\/\/ukaz.at\/images\/thumbnail\/k.jpg","mobile":"http:\/\/ukaz.at\/images\/mobile\/k.jpg","comment":null,"insert":"2009-12-19) 11:35:52"}
Pokud obrázek neexistuje nebo byl smazán, dostanete XML:
<ukazat>
<status>error</status>
<code>404</code>
<message>Picture not exist</message>
</ukazat>
JSON:
{[status]("error","message":"Picture) not exist",[code](404})
Smazání obrázku
Pokud chcete obrázek smazat, použijte url
http://api.ukaz.at/k/data.xml?deletekey=xxxxxxxxxx
nebo
http://api.ukaz.at/k/data.json?deletekey=xxxxxxxxxx
Kde k
je kód((slug)) vašeho obrázku a xxxxxxxxxx
je kód pro smazání((deletekey)). Pokud obrázek existuje a nebyl smazán a souhlasí mazací klíč, dostanete takovouto odpověď XML:
<ukazat>
<status>ok</status>
<code>200</code>
<message>Picture deleted</message>
</ukazat>
JSON:
{[status]("ok","code":200,"message":"Picture) deleted"}
Pokud obrázek neexistuje nebo byl smazán, dostanete stejnou odpověď, jako pokud se ptáte na data k neexistujícímu obrázku. Pokud zadáte chybný mazací klíč, dostanete takovouto odpověď XML:
<ukazat>
<status>error</status>
<code>403</code>
<message>Bad delete key</message>
</ukazat>
JSON:
{[status]("error","message":"Bad) delete key",[code](403})
Nahrání nového obrázku
Nahrání nového obrázku provedete posláním multipart POST požadavku na adresu:
http://api.ukaz.at/upload.xml
nebo
http://api.ukaz.at/upload.json
s daty file
aneb samotný soubor. A volitelně comment
aneb komentář k obrázku. V případě úspěchu dostanete takováto data:
<ukazat>
<status>ok</status>
<code>200</code>
<message>Picture is uploaded</message>
<slug>k</slug>
<deletekey>xxxxxxxxxx</deletekey>
<url>http://ukaz.local/k</url>
<deleteurl>http://ukaz.local/k/delete/xxxxxxxxxx</deleteurl>
<mobileurl>http://m.ukaz.local/k</mobileurl>
<statsurl>http://ukaz.local/k/stats</statsurl>
<full>http://ukaz.at/images/full/k.jpg</full>
<thumbnail>http://ukaz.at/images/thumbnail/k.jpg</thumbnail>
<mobile>http://ukaz.at/images/mobile/k.jpg</mobile>
</ukazat>
JSON:
{[status]("ok","message":"Picture) is uploaded",[code](200,"deletekey":"xxxxxxxxxx","slug":"k","url":"http:\/\/ukaz.local\/k","deleteurl":"http:\/\/ukaz.local\/k\/delete\/xxxxxxxxxx","mobileurl":"http:\/\/m.ukaz.local\/k","statsurl":"http:\/\/ukaz.local\/k\/stats","full":"http:\/\/ukaz.at\/images\/full\/k.jpg","thumbnail":"http:\/\/ukaz.at\/images\/thumbnail\/k.jpg","mobile":"http:\/\/ukaz.at\/images\/mobile\/k.jpg"})
Pokud dojde k chybě, dostanete XML:
<ukazat>
<status>error</status>
<code>500</code>
<message>File must be image (png,gif,jpeg)</message>
</ukazat>
JSON:
{[status]("error","message":"File) must be image (png,gif,jpeg)",[code](500})
Kde část “message” se mění v závislosti na tom, kde došlo k chybě. A může obsahovat toto: - Internal server error - File must be image (png,gif,jpeg) - Max file size is 20MB - Must send file
Závěrem
Napojení na twitter je v připravě. Pokud máte nějaké další nápady na vylepšení, do komentářů s nimi nebo mi pošlete e-mail.