Trafiklab - ansluta till ett API: Skillnad mellan sidversioner

Från Webbling
Hoppa till: navigering, sök
Rad 2: Rad 2:


== "[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]" ==
== "[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]" ==
"[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]" är ett [[API]] som kan ge oss information om en plats genom att ange platsens namn (eller delar av platsens namn). Man kan söka efter hållplatser, adresser och platser.  Om du går in under dokumentationen för "[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]", så ser du att det finns ett enda [[API]]-anrop som vi kan utföra mot detta API. Detta är ett [[REST]]-anrop och dess [[URL]] anges enligt mallen (för korthetens skulle, utelämnar vi de parametrar som inte är obligatoriska):
"[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]" är ett [[API]] som kan ge oss information om en plats genom att ange platsens namn (eller delar av platsens namn). Man kan söka efter hållplatser, adresser och platser.  Om du går in under dokumentationen för "[https://www.trafiklab.se/api/sl-platsuppslag SL Platsuppslag]", så ser du att det finns ett enda [[API]]-anrop som vi kan utföra mot detta API. Detta är ett [[REST]]-anrop och anropet utformas följdaktligen som en [[URL]].
 
=== Anrops-URL ===
En  anrops-URL för detta [[API]] ska anges enligt följande mall (för korthetens skulle, utelämnar vi de parametrar som inte är obligatoriska):


<code>
<code>
api.sl.se/api2/typeahead.<FORMAT>?key=<DIN NYCKEL>&searchstring=<SÖKORD></code>
api.sl.se/api2/typeahead.<FORMAT>?key=<DIN NYCKEL>&searchstring=<SÖKORD></code>


Alla bitar som anges i formen "<code>&lt;NÅNTING></code>" är saker som du behöver fylla i med information som gäller för just ditt anrop. Vi går igenom vad dessa ska sättas till:
Alla bitar som anges i formen "<code>&lt;NÅNTING></code>" är parametrar som du behöver fylla i med information som gäller för just ditt anrop. Vi går igenom vad dessa ska sättas till:


==== Parametrar ====
;&lt;FORMAT>:Vilken typ av svars data vill du ha? [[JSON]] eller [[XML]].
;&lt;FORMAT>:Vilken typ av svars data vill du ha? [[JSON]] eller [[XML]].
;&lt;DIN NYCKEL>:Här anger du din [[API-nyckel]].
;&lt;DIN NYCKEL>:Här anger du din [[API-nyckel]].
Rad 18: Rad 22:
;&lt;MAX ANTAL SVAR>:Hur många svar vill du maximalt erhålla. 50 är max. Defaultvärdet är <code>10</code>.
;&lt;MAX ANTAL SVAR>:Hur många svar vill du maximalt erhålla. 50 är max. Defaultvärdet är <code>10</code>.


=== Exempel ===
En fullständig söknings-[[URL]] skulle alltså kunna tänkas se ut så här (förutom att det är fejkad [[API-nyckel]]:
En fullständig söknings-[[URL]] skulle alltså kunna tänkas se ut så här (förutom att det är fejkad [[API-nyckel]]:


Rad 25: Rad 30:


Prova att klippa ut ovanstående [[URL]], klistra in den i URL-fältet på en webbläsare och ersätt <code>BADA551337</code> med din [[API-nyckel]]. Tryck på enter och du bör få svar ifrån servern. Svaret du erhåller visar alla platser som innehåller strängen "gata". Svårare än så är det inte att kontakta detta [[API]]! De flesta [[REST]]-[[API]]:er har den fördelen att man enkelt kan testa dem direkt i sin webbläsare.
Prova att klippa ut ovanstående [[URL]], klistra in den i URL-fältet på en webbläsare och ersätt <code>BADA551337</code> med din [[API-nyckel]]. Tryck på enter och du bör få svar ifrån servern. Svaret du erhåller visar alla platser som innehåller strängen "gata". Svårare än så är det inte att kontakta detta [[API]]! De flesta [[REST]]-[[API]]:er har den fördelen att man enkelt kan testa dem direkt i sin webbläsare.
När vi provkörde fick vi följande resultat:
<syntaxhighlight lang="javascript">
{"StatusCode":0,"Message":null,"ExecutionTime":0,"ResponseData":[{"Name":"Gatan (Ekerö)","SiteId":"3254","Type":"Station","X":"17674411","Y":"59357481"},{"Name":"Daléns gata (Sigtuna)","SiteId":"5008","Type":"Station","X":"17890035","Y":"59619580"},{"Name":"Skyttens gata (Haninge)","SiteId":"8202","Type":"Station","X":"18179604","Y":"59171503"},{"Name":"Dr Widerströms gata (Stockholm)","SiteId":"1663","Type":"Station","X":"17956250","Y":"59284794"},{"Name":"Eyvind Johnsons gata (Stockholm)","SiteId":"1254","Type":"Station","X":"18009762","Y":"59339799"},{"Name":"Fredrika Bremers gata (Stockholm)","SiteId":"1661","Type":"Station","X":"17970291","Y":"59283167"},{"Name":"Renstiernas gata (på Bondeg) (Stockholm)","SiteId":"1308","Type":"Station","X":"18084651","Y":"59313587"},{"Name":"Vädurens gata (Klockarleden)  (Haninge)","SiteId":"8204","Type":"Station","X":"18168377","Y":"59167197"},{"Name":"Vattumannens gata (på Klockarleden)  (Haninge)","SiteId":"8203","Type":"Station","X":"18172863","Y":"59166856"},{"Name":"Viktor Rydbergs gata (Stockholm)","SiteId":"1262","Type":"Station","X":"18009232","Y":"59328832"}]}
</syntaxhighlight>

Versionen från 2 januari 2016 kl. 13.43

Vi ska nu titta på hur man kan kontakta ett API hos Trafiklab. För detta krävs att du registrerat dig som person samt att du skapat ett projekt hos dem. I exemplen kommer vi att använda oss av "SL Platsuppslag", så registrera att ditt projekt använder sig av detta API och hämta ut en API-nyckel. Om du inte har gjort dessa saker, så passa på att göra det nu. Då blir det enklare att följa med i exemplen och du kan testa saker för dig själv.

"SL Platsuppslag"

"SL Platsuppslag" är ett API som kan ge oss information om en plats genom att ange platsens namn (eller delar av platsens namn). Man kan söka efter hållplatser, adresser och platser. Om du går in under dokumentationen för "SL Platsuppslag", så ser du att det finns ett enda API-anrop som vi kan utföra mot detta API. Detta är ett REST-anrop och anropet utformas följdaktligen som en URL.

Anrops-URL

En anrops-URL för detta API ska anges enligt följande mall (för korthetens skulle, utelämnar vi de parametrar som inte är obligatoriska):

api.sl.se/api2/typeahead.<FORMAT>?key=<DIN NYCKEL>&searchstring=<SÖKORD>

Alla bitar som anges i formen "<NÅNTING>" är parametrar som du behöver fylla i med information som gäller för just ditt anrop. Vi går igenom vad dessa ska sättas till:

Parametrar

<FORMAT>
Vilken typ av svars data vill du ha? JSON eller XML.
<DIN NYCKEL>
Här anger du din API-nyckel.
<SÖKORD>
Söksträngen som anger vad du vill söka efter.

Följande går att sätta, men de är inte obligatoriska:

<ENDAST STATIONER>
Vill du enbart söka på stationsnamn. Kan sättas true eller false. Defaultvärdet är false.
<MAX ANTAL SVAR>
Hur många svar vill du maximalt erhålla. 50 är max. Defaultvärdet är 10.

Exempel

En fullständig söknings-URL skulle alltså kunna tänkas se ut så här (förutom att det är fejkad API-nyckel:

https://api.sl.se/api2/typeahead.json?key=BADA551337&searchstring=gata

Prova att klippa ut ovanstående URL, klistra in den i URL-fältet på en webbläsare och ersätt BADA551337 med din API-nyckel. Tryck på enter och du bör få svar ifrån servern. Svaret du erhåller visar alla platser som innehåller strängen "gata". Svårare än så är det inte att kontakta detta API! De flesta REST-API:er har den fördelen att man enkelt kan testa dem direkt i sin webbläsare.

När vi provkörde fick vi följande resultat:

{"StatusCode":0,"Message":null,"ExecutionTime":0,"ResponseData":[{"Name":"Gatan (Ekerö)","SiteId":"3254","Type":"Station","X":"17674411","Y":"59357481"},{"Name":"Daléns gata (Sigtuna)","SiteId":"5008","Type":"Station","X":"17890035","Y":"59619580"},{"Name":"Skyttens gata (Haninge)","SiteId":"8202","Type":"Station","X":"18179604","Y":"59171503"},{"Name":"Dr Widerströms gata (Stockholm)","SiteId":"1663","Type":"Station","X":"17956250","Y":"59284794"},{"Name":"Eyvind Johnsons gata (Stockholm)","SiteId":"1254","Type":"Station","X":"18009762","Y":"59339799"},{"Name":"Fredrika Bremers gata (Stockholm)","SiteId":"1661","Type":"Station","X":"17970291","Y":"59283167"},{"Name":"Renstiernas gata (på Bondeg) (Stockholm)","SiteId":"1308","Type":"Station","X":"18084651","Y":"59313587"},{"Name":"Vädurens gata (Klockarleden)  (Haninge)","SiteId":"8204","Type":"Station","X":"18168377","Y":"59167197"},{"Name":"Vattumannens gata (på Klockarleden)  (Haninge)","SiteId":"8203","Type":"Station","X":"18172863","Y":"59166856"},{"Name":"Viktor Rydbergs gata (Stockholm)","SiteId":"1262","Type":"Station","X":"18009232","Y":"59328832"}]}