Skillnad mellan versioner av "API"

Från Temperatur.nu
Hoppa till navigeringHoppa till sök
 
(35 mellanliggande versioner av samma användare visas inte)
Rad 1: Rad 1:
{| align="right"
+
Informationen är flyttad till [https://temperatur.nu/info/api/ https://temperatur.nu/info/api/]
| __TOC__
 
|}
 
Det finns ett enkelt API för att hämta senaste temperaturerna från temperatur.nu.
 
 
 
Aktuell API-version 1.9.
 
 
 
Data returneras i XML-format
 
 
 
==Support==
 
För support på API-funktionen, använd [http://www.temperatur.nu/forum/forslag-feedback/diskusionstrad-for-api-funktionen-t1373.html Forumet på www.temperatur.nu].
 
 
 
==Villkor==
 
*APIet får ej accessas med samma förfrågan oftare än var femte minut från klienterna. Om detta villkor bryts kan det IP-nummer som överskrider tidsgränsen tillfälligt att blockeras.
 
*Det måste mycket tydligt framgå att temperaturerna kommer från temperatur.nu.
 
*Där så är möjligt skall temperaturerna vara länkar till temperatur.nu.
 
*Temperatur.nus [[Logotype|logotype]] skall finnas i applikationen, gärna så den tydligt syns när programmet används. Om detta ej är möjligt kan logotypen placeras där inställningar för applikationen görs.
 
*APIet får ej användas för att automatiskt samla in och lagra data längre än 24h.
 
*I de fall applikationen kommer att kosta pengar för användaren krävs särskild överenskommelse med temperatur.nu. Kontakta [mailto:[email protected] [email protected]] för mer information.
 
*Förfrågningar till APIet kan signeras, osignerade förfrågningar är begränsade till ca 12/timma per clientid. Maila [mailto:[email protected] [email protected]] för att att erhålla en signeringsnyckel för ditt clientid. När du ansöker om en signeringsnyckel måste du ange om du vill signera med sha1 eller md5. Läs mer om hur du signerar förfrågningarna längre ner på denna sida.
 
 
 
==Kort beskrivning==
 
APIet är tänkt att användas av de som skapar extern mjukvara, tex applikationer för Iphone och Android.
 
Målet är att APIet skall vara lättförståeligt och lätt att använda - feedback från användarna är av stor vikt för att kunna utveckla APIet!
 
 
 
==Var finns APIet?==
 
Den senaste versionen av APIet hittar du på www.temperatur.nu/api/tnu.php
 
För att använda en specifik version kan du använda www.temperatur.nu/api/tnu_{version}.php, ex www.temperatur.nu/api_1.2.php för version 1.2.
 
Inga garantier ges för att olika versioner av APIet är kompatibla med varandra. Målsättningen är dock att APIerna skall vara bakåtkompatibla.
 
 
 
 
 
==Parametrar==
 
{| border=1 class="wikitable"
 
|-
 
! Parameter
 
! Beskrivning
 
! Kan ej användas med
 
! Introducerad i API-version
 
|-
 
| p
 
| Anger för vilka orter data skall returneras - kommaseparerad lista
 
| lat, lon, num
 
| 1.0
 
|-
 
| dc
 
| Anger om decimalkomma skall användas i stället för decimalpunkt i fälten <temperatur>, <lat>, <lon> och <dist>.
 
|
 
| 1.0
 
|-
 
| simple
 
| Minimal output, returnerar endast <title>, <id> och <temp>
 
| verbose
 
| 1.0
 
|-
 
| verbose
 
| Returnerar alla fält för orten, se beskrivning nedan
 
| simple
 
| 1.0
 
|-
 
| coordinates
 
| Visar koordinaterna för valda orter. Kan användas tillsammans med simple för att kunna positionera orter på en karta utan att behöva hämta alla fält.
 
| verbose
 
| 1.0
 
|-
 
| lat
 
| Används tillsammans med lon och ev num. Det spelar inte någon roll om decimal- eller kommapunkt används. När dessa parametrar används returneras de num närmaste orterna, närmaste orten först.
 
| p
 
| 1.0
 
|-
 
| lon
 
| Används tillsammans med lat och ev num. Det spelar inte någon roll om decimal- eller kommapunkt används. När dessa parametrar används returneras de num närmaste orterna, närmaste orten först..
 
| p
 
| 1.0
 
|-
 
| num
 
| Används tillsammans med lat och lon. Anger hur många orter som skall returneras. Standard är 1 och max är 5.
 
| p
 
| 1.0
 
|-
 
| cli
 
| Skall användas för att identifiera vilken klient som hämtar data. Ex "cli=tnu_widget". Klienter som missbrukar APIet kan komma att få endast begränsad tillgång.
 
|
 
| 1.1
 
|-
 
| graph
 
| Används för att generera en graf för upp till 5 orter specificerade med variabeln p.
 
|
 
| 1.2
 
|-
 
| span
 
| Specificerar för vilket tidsperspektiv grafer skall skapas. Giltiga värden är: 1day (standard), 1week, 1month, 1year.
 
|
 
| 1.2
 
|-
 
| x
 
| Specificerar hur bred grafen skall vara. Giltiga värden är 150-1500. 300 är standard.
 
|
 
| 1.2 (Tillåtna värden justerade i v 1.4)
 
|-
 
| y
 
| Specificerar hur hög grafen skall vara. Giltiga värden är 125-900. 200 är standard.
 
|
 
| 1.2 (Tillåtna värden justerade i v 1.4)
 
|-
 
| verbose_g
 
| Visar min/max/medel/senaste värde i grafen. Visar även när data senast hämtades för den valda orten.
 
|
 
| 1.5
 
|-
 
| shift_g
 
| Anger om grafen skall visa äldre data. Exempel: om span är 1day och shift_g är 1 visas en graf för igår, om shift_g är 2 visar grafen data för i förrgår etc etc. Standard är 0.
 
|
 
| 1.5
 
|-
 
| 1axis
 
| Används för att endast visa temperaturskalan till vänster. Används med fördel i små grafer för att spara utrymme.
 
|
 
| 1.6
 
|-
 
| linewidth
 
| Anger bredden på graflinjen. Giltiga värden 1 till 5. Även flyttal, ex 1.5, fungerar. Decimalkomma eller decimalpunkt spelar inte någon roll.
 
|
 
| 1.7
 
|-
 
| cb
 
| CacheBust. Om denna parameter finns i urlen (&cb) kommer ett randomiserat värde att läggas till i slutet av graf-urlerna. Denna parameter kan användas för att se till att inte grafen cachas lokalt hos användaren eller i någon dåligt konfigurerad proxy mellan temperatur.nu och användaren.
 
|
 
| 1.8
 
|-
 
| fontsize
 
| Anger hur stor texten skall vara. Observera att värdet inte kan relateras till vanliga textstorlekar, du måste därför testa dig fram.
 
|
 
| 1.8
 
|-
 
| sign
 
| Signering av urlen, se nedan för mer information.
 
|
 
| 1.0 (tillagd i efterhand)
 
|}
 
 
 
==Beskrivning av returnerade fält==
 
{| border=1 class="wikitable"
 
|-
 
! Fält
 
! Beskrivning
 
! parameter som visar
 
! parameter som döljer
 
! Visas som standard
 
! Introducerad i API-version
 
|-
 
| <title>
 
| Mätpunktens namn på temperatur.nu
 
|
 
|
 
| X
 
| 1.0
 
|-
 
| <id>
 
| Mätpunktens id på temperatur.nu. Kan användas med parametern "p" för att hämta endast denna mätpunkts information
 
|
 
| simple
 
| X
 
| 1.0
 
|-
 
| <temp>
 
| Mätpunktens senaste temperatur. Om decimalkomma eller decimalpunkt skall användas styrs med parametern dc.
 
|
 
|
 
| X
 
| 1.0
 
|-
 
| <lat>
 
| Mätpunktens latitud i decimalt format. Om decimalkomma eller decimalpunkt skall användas styrs med parametern dc.
 
| coordinates, verbose
 
|
 
|
 
| 1.0
 
|-
 
| <lon>
 
| Mätpunktens longitud i decimalt format. Om decimalkomma eller decimalpunkt skall användas styrs med parametern dc.
 
| coordinates, verbose
 
|
 
|
 
| 1.0
 
|-
 
| <lastUpdate>
 
| Tidpunkt då informationen senast uppdaterades på temperatur.nu
 
| verbose
 
|
 
|
 
| 1.0
 
|-
 
| <kommun>
 
| Den kommun som mätpunkten ligger i.
 
| verbose
 
|
 
|
 
| 1.0
 
|-
 
| <lan>
 
| Det län som mätpunkten ligger i.
 
| verbose
 
|
 
|
 
| 1.0
 
|-
 
| <sourceInfo>
 
| En kort textsträng med information om vem som loggar temperaturen för mätpunkten
 
| verbose
 
|
 
|
 
| 1.8
 
|-
 
| <url>
 
| Url till mätpunktens temperatur och grafer på www.temperatur.nu
 
| verbose
 
|
 
|
 
| 1.0
 
|-
 
| <dist>
 
| Hur långt från de givna koordinaterna mätpunkten ligger. Enheten är kilometer. Om decimalkomma eller decimalpunkt skall användas styrs med parametern dc.
 
| lat & lon
 
| simple
 
|
 
| 1.0
 
|-
 
| <graph>
 
| Visar url till graph för orten. Observera att ny graf endast genereras när parametern graph används. Det går därför inte att lokalt cacha urlen i klienten.
 
| graph (x, y, span, verbose_g, shift_g)
 
|
 
|
 
| 1.2
 
|}
 
 
 
==Exempel==
 
 
 
Så här kan resultatet från en förfrågan på http://www.temperatur.nu/api/tnu_1.5.php?p=linkoping&verbose&cli=test_app se ut:
 
<?xml version='1.0' encoding='iso-8859-1'?>
 
<rss version="2.0">
 
        <channel>
 
        <title>Temperatur.nu API 1.5</title>
 
        <link>http://wiki.temperatur.nu/index.php/Api</link>
 
        <item>
 
                <title>Linköping/Centrum</title>
 
                <id>linkoping</id>
 
                <temp>20.2</temp>
 
                <lat>58.414297</lat>
 
                <lon>15.628788</lon>
 
                <lastUpdate>2010-05-19 14:22:02</lastUpdate>
 
                <kommun>Linköping</kommun>
 
                <lan>Östergötlands län</lan>
 
                <url>http://www.temperatur.nu/linkoping.html</url>
 
        </item>
 
        </channel>
 
</rss>
 
 
 
 
 
Så här kan resultatet från en förfrågan på http://www.temperatur.nu/api/tnu_1.5.php?lat=58.376761&lon=15.562916&num=3&graph&cli=test_app se ut:
 
<?xml version='1.0' encoding='iso-8859-1'?>
 
<rss version="2.0">
 
        <channel>
 
        <title>Temperatur.nu API 1.5</title>
 
        <link>http://wiki.temperatur.nu/index.php/Api</link>
 
        <item>
 
                <title>Linköping/Jägarvallen</title>
 
                <id>jagarvallen</id>
 
                <temp>18.2</temp>
 
                <dist>2.5</dist>
 
                <graph>http://www.temperatur.nu/cg/jagarvallen-1day-300-200-0-0.png</graph>
 
        </item>
 
        <item>
 
                <title>Linköping/Ryd</title>
 
                <id>ryd</id>
 
                <temp>19.2</temp>
 
                <dist>3.8</dist>
 
                <graph>http://www.temperatur.nu/cg/ryd-1day-300-200-0-0.png</graph>
 
        </item>
 
        <item>
 
                <title>Linköping/Skäggetorp</title>
 
                <id>skaggetorp</id>
 
                <temp>20.7</temp>
 
                <dist>5.2</dist>
 
                <graph>http://www.temperatur.nu/cg/skaggetorp-1day-300-200-0-0.png</graph>
 
        </item>
 
        </channel>
 
</rss>
 
 
 
==Signering av URLer==
 
Förfrågningar till APIet kan signeras. Osignerade förfrågningar kommer från mitten av 2011 att begränsas till ca 12/timma för varje clientid. Skriver du en privat tillämpning kan du därmed använda APIet utan att signera URLerna, men om din tillämpning sprids till flera användare måste du signera URLerna.
 
 
 
Observera att denna signeringsfunktion kommer att finnas tillgänglig för alla versioner av APIet.
 
 
 
Signeringen går till så här:
 
 
 
1. Skapa din url som vanligt.
 
 
 
2. Beräkna md5-/sha1-summan av urlen (utan http://) med "+clientnyckel" tillagd på slutet. Klientnyckel erhålls efter att ha mailat [mailto:[email protected] info@temperatur.nu]
 
 
 
3. I slutet av urlen lägger du sedan till &sign=md5-/sha1-summa
 
 
 
I php kan det tex se ut så här om du har en signeringsnyckel för md5:
 
$cli_key="XXXXXXXXXXXXXXXXXXXXXXXXX";
 
$url="www.temperatur.nu/api/tnu_1.9.php?p=linkoping&cli=testapp"
 
$sign=md5($url."+".$cli_key);
 
$signed_url=$url."&sign=".$sign;
 
 
 
I den returnerade xml-filen kan du i det första title-fältet se om förfrågan är korrekt signerad.
 
 
 
==Historik/ändringslogg==
 
2010-05-04 - Version 1.0
 
Första releasen.
 
 
 
2010-05-13 - Version 1.1
 
Variabeln cli tillagd.
 
 
 
2010-05-19 - Version 1.2
 
Stöd för att hämta grafer
 
 
 
2010-06-09 - Version 1.3
 
Bugfix som fixar en bugg introducerad i 1.2 (det gick inte att hämta alla orter genom att skippa variabeln p).
 
 
 
2010-08-04 - Version 1.4
 
Värden för x och y justerade. Parametern cli krävs för att apiet skall returnera data.
 
 
 
2010-09-01 - Version 1.5
 
Parametrar för att via mer info i grafen. Parametrar för att visa grafer för i går, förra veckan, 2 år sedan etc.
 
 
 
2010-09-01 - Version 1.6
 
Parameter för att ange om 1 eller 2 y-axlar skall visas.
 
 
 
2010-11-22 - Version 1.7
 
Möjlighet att välja hur tjock graflinjen skall vara.
 
 
 
2010-12-19 - Version 1.8
 
CacheBust-funktion, möjlighet att ändra textstorlek samt information om vem som loggar temperaturen när verbose är specat.
 
 
 
[[Kategori:www.temperatur.nu]]
 
[[Kategori:Mjukvara]]
 

Nuvarande version från 12 mars 2021 kl. 11.16

Informationen är flyttad till https://temperatur.nu/info/api/