Praca z API

⊥Źródło:10.5: Working with APIs in Javascript – p5.js Tutorial

Najpierw rejestrujemy się na stronie: https://sunrise-sunset.org/api i pobieramy API ID.

Link dzięki któremu ściągamy dane w formacie JSON:
http://api.openweathermap.org/data/2.5/weather?q=Gdynia,pl&APPID=79af02db1af757d0b6d17411ebfdd728&units=metric&lang=pl

Ściągnięte dane dla miasta Gdynia wyglądają tak:
{“coord”:{“lon”:18.54,”lat”:54.52},”weather”:[{“id”:800,”main”:”Clear”,”description”:”clear sky”,”icon”:”01n”}],”base”:”stations”,”main”:{“temp”:284.15,”pressure”:1019,”humidity”:40,”temp_min”:284.15,”temp_max”:284.15},”visibility”:10000,”wind”:{“speed”:4.1,”deg”:160},”clouds”:{“all”:0},”dt”:1523133000,”sys”:{“type”:1,”id”:5349,”message”:0.0039,”country”:”PL”,”sunrise”:1523073692,”sunset”:1523122509},”id”:3099424,”name”:”Gdynia”,”cod”:200}

Aby przejrzeć je w bardziej czytelnej formie przyda się rozszerzenie JSON. Podaję dla Safari, ale są też dla Chrome i Firefox 
Safari JSON extension: https://github.com/rfletcher/safari-json-formatter/downloads

Kod p5.js

</pre>
var weather;

var api = 'http://api.openweathermap.org/data/2.5/weather?q=';
var apiKey = '&APPID=79af02db1af757d0b6d17411ebfdd728';
var units = '&units=metric';

var input;

function setup() {
createCanvas(400, 200);

var button = select('#submit');
button.mousePressed(weatherAsk);

input = select('#city');
}

function weatherAsk() {
var url = api + input.value() + apiKey + units;
loadJSON(url, gotData);
}

function gotData(data) {
weather = data;
}

function draw() {
background(100);
if (weather) {
var temp = weather.main.temp;
var humidity = weather.main.humidity;
console.log(temp, humidity);
fill(255);
textSize(20);
text(input.value(), 50, 50);
text("temperatura = "+temp+"°C", 50, 100);
text("wilgotność = "+humidity+"%", 50, 150);
//ellipse(100, 100, temp, temp);
//ellipse(300, 100, humidity, humidity);
}
}
<pre>

Kod HTML

</pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>8.6_p5.js_api_query_user_input</title>
<script src="libraries/p5.js" type="text/javascript"></script>

<script src="libraries/p5.dom.js" type="text/javascript"></script>
<script src="libraries/p5.sound.js" type="text/javascript"></script>

<script src="sketch.js" type="text/javascript"></script>

<style> body {padding: 0; margin: 0;} canvas {vertical-align: top;} </style>
</head>
<body>

<p>
City: <input id ="city" value="Gdynia"></input>
<br/>
<button id="submit">submit</button>
</p>
</body>
</html>
<pre>

Dodaj komentarz