Format

När du skickar en request till Pushas API kan du i dagsläget få svar i xml, json eller javascript. Du specifierar vilket format du vill ha svaren i med hjälp av parametern format.

XML

XML-formatet erbjuder god läsbarhet för människor samtidigt som det finns XML-parsers för de flesta vanliga programmeringsspråken.

Exempel på förfrågan som returnerar XML:

http://service.pusha.se/user/Robert?key=ltsc2roiahz3dkcap334bmsrnas8nosq&format=xml

Svar:

200 OK
Connection: close
Date: Thu, 08 Oct 2009 12:18:31 GMT
Pragma: no-cache
Server: Apache/2.2.9 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/xml; charset=utf-8
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 08 Oct 2009 12:18:31 GMT
Client-Date: Thu, 08 Oct 2009 12:18:31 GMT
Client-Peer: 79.136.125.104:80
Client-Response-Num: 1

<user>
	<username>Robert</username> 
	<presentation>Jag heter Robert Birming och är bosatt i Stockholm.</presentation> 
	<regDate>2007-10-17 13:42:31</regDate> 
	<lastLogin>2009-10-01 19:01:03</lastLogin> 
	<lastActive>2009-10-01 19:01:03</lastActive> 
	<nrOfPopularLinks>1088</nrOfPopularLinks> 
	<nrOfSubmittedLinks>1931</nrOfSubmittedLinks> 
	<nrOfPushedLinks>10290</nrOfPushedLinks> 
	<nrOfComments>3442</nrOfComments> 
	<avatar>http://upload.pusha.se/1/Robert_200.jpg</avatar> 
</user> 

JSON

JSON (JavaScript Object Notation) är ett kompakt data-format som, även om det bygger på JavaScripts notationsstandard, går att parsa i de flesta vanliga programmeringsspråken.

Om du vill hämta data från Pushas API med JavaScript bör du använda formatet JavaScript, som också returnerar JSON (se nedan). Du kan då undvika same origin policy utan att behöva proxa alla anrop.

Exempel på förfrågan som returnerar JSON:

http://service.pusha.se/user/Robert?key=ltsc2roiahz3dkcap334bmsrnas8nosq&format=json

Svar:

200 OK
Connection: close
Date: Thu, 08 Oct 2009 12:18:31 GMT
Pragma: no-cache
Server: Apache/2.2.9 (Ubuntu)
Vary: Accept-Encoding
Content-Type: application/json; charset=utf-8
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 08 Oct 2009 12:18:31 GMT
Client-Date: Thu, 08 Oct 2009 12:18:31 GMT
Client-Peer: 79.136.125.104:80
Client-Response-Num: 1

{
	"username":"Robert",
	"presentation":"Jag heter Robert Birming och är bosatt i Stockholm.",
	"regDate":"2007-10-17 13:42:31",
	"lastLogin":"2009-10-01 19:01:03",
	"lastActive":"2009-10-01 19:31:10",
	"nrOfPopularLinks":1088,
	"nrOfSubmittedLinks":1931,
	"nrOfPushedLinks":10290,
	"nrOfComments":3442,
	"avatar":"http://upload.pusha.se/1/Robert_200.jpg"
}

JavaScript (JSONP)

Om du vill hämta data från Pushas API med JavaScript så måste du på något sätt undvika same origin policy som innebär att javascript bara kan fråga den server som scriptet laddats från. Ett vanligt sätt att lösa detta är att sätta upp en proxy på din egen server som utför anropen till API:et och sedan returnerar svaret till ditt script. Det finns dock en rad problem med denna lösning. Till exempel så kommer din applikation bara kunna göra 1000 anrop till API:et per timme totalt istället för 1000 per användare. En annan brist är att belastningen på din server ökar.

För att lösa detta på ett enklare sätt så har vi lagt till stöd för JSONP i Pushas API. JSONP innebär att du länkar in ett script från vår server som anropar en JavaScript-funktion på din sajt med det returnerade datat som parameter. Du specificerar vilken funktion som ska anropa med hjälp av parametern callback.

Exempel:

<div id="user"></div>
<script type="text/javascript">
function gotUser(user){
	document.getElementById('user').innerHTML = '<img src="'+user.avatar+'" />';
}
</script>
<script type="text/javascript" 
src="http://service.pusha.se/user/Robert?key=ltsc2roiahz3dkcap334bmsrnas8nosq&format=javascript&callback=gotUser">
</script>

Nedan ser du resultatet av koden i exemplet:

Bland annat jquery har inbyggt stöd för JSONP så att du slipper kladda ned din html-kod med script-taggar.

Dokumentation

Metoder
Noder