Wat is een API?
Ik kom steeds vaker het woord API tegen, mijn hosting bedrijf Versio heeft nu ook een nieuwe API. Maar mijn vraag is, wat is een API en wat kan ik ermee?
Zou iemand mij dat simpel kunnen uitleggen en hoe dit werkt. Ik beheer alleen een beetje HTML, CSS en PHP dus is het handig voor mij om een API te gebruiken?
Alvast bedankt,
http://nl.wikipedia.org/wiki/Application_programming_interface
Kort gezegd: als jij een systeem hebt en je wilt anderen toegang geven op dat systeem en je wilt dat dit gecontroleerd gaat, dan schrijf jij iets waarmee anderen toegang kunnen krijgen tot jouw data.
Kort gezegd: als jij een systeem hebt en je wilt anderen toegang geven op dat systeem en je wilt dat dit gecontroleerd gaat, dan schrijf jij iets waarmee anderen toegang kunnen krijgen tot jouw data.
Gewijzigd op 03/12/2013 10:30:48 door B a s
Misschien heb je er toch iets aan; en misschien kan het anderen inspiratie geven.
---
Een voorbeeld van hoe je een javascript-API kan maken.
Zie het (een beetje) zoals een Twitter API zou kunnen zijn.
Ergens op een server staan een hoop berichten. We willen met javascript zoeken in die berichten; en de berichten terugkrijgen waar onze zoekterm in voorkomt.
Waarom is een API nodig? Je kan niet zomaar een Ajax-verzoek doen naar een ander domein.
Met volgende constructie kan het wel
Op de server die de API aanbiedt:
api.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/**
* Voorbeeld van een javascript API. De echo van dit script komt dus als javascript bij de client
*/
if(isset($_GET['search'])) {
// Als voorbeeld: we gaan zoeken naar messages in een shoutbox, waar een woord in voorkomt.
// bv. met zo'n SQL string
$sql = "SELECT title, message, author FROM shoutbox where message LIKE '%" . $_GET['search'] . "%' ";
// ...
// maar voor het gemak werken we even met gegevens die "hard coded" zijn.
// je herkent het lied ongetwijfeld
$messages = array (
'Steeds als ik je zie lopen',
'dan gaat de hemel een klein beetje open.',
'Sterren, je laat ze verbleken',
'met je ogen die altijd stralen.',
'Jij kan de zon laten schijnen',
'want je loopt langs en de wolken verdwijnen',
'en als je lacht, lacht heel de wereld mee.',
) ;
$results = array();
// we gaan enkel de lijnen tekst terug geven waar het zoekresultaat van $_GET['search'] voorkomt.
foreach ($messages as $key=>$message) {
if (FALSE !== strpos($message, $_GET['search'])) {
$results[] = $message;
}
}
// We sturen een header waarmee we duidelijk maken dat dit bedoeld is als javascript
header('Content-Type: application/javascript');
// we gaan het resultaat echo'en. We steken het in een javascript-variabele.
echo 'var messages = ' . json_encode($results) . ';';
}
?>
/**
* Voorbeeld van een javascript API. De echo van dit script komt dus als javascript bij de client
*/
if(isset($_GET['search'])) {
// Als voorbeeld: we gaan zoeken naar messages in een shoutbox, waar een woord in voorkomt.
// bv. met zo'n SQL string
$sql = "SELECT title, message, author FROM shoutbox where message LIKE '%" . $_GET['search'] . "%' ";
// ...
// maar voor het gemak werken we even met gegevens die "hard coded" zijn.
// je herkent het lied ongetwijfeld
$messages = array (
'Steeds als ik je zie lopen',
'dan gaat de hemel een klein beetje open.',
'Sterren, je laat ze verbleken',
'met je ogen die altijd stralen.',
'Jij kan de zon laten schijnen',
'want je loopt langs en de wolken verdwijnen',
'en als je lacht, lacht heel de wereld mee.',
) ;
$results = array();
// we gaan enkel de lijnen tekst terug geven waar het zoekresultaat van $_GET['search'] voorkomt.
foreach ($messages as $key=>$message) {
if (FALSE !== strpos($message, $_GET['search'])) {
$results[] = $message;
}
}
// We sturen een header waarmee we duidelijk maken dat dit bedoeld is als javascript
header('Content-Type: application/javascript');
// we gaan het resultaat echo'en. We steken het in een javascript-variabele.
echo 'var messages = ' . json_encode($results) . ';';
}
?>
Op de website die de API gebruikt
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!doctype html>
<html>
<head>
<script type="text/javascript" src="api.php?search=de"></script>
<script>
/**
* We hebben dus net api.php geladen. Die heeft een var messages aangemaakt.
* Die zal dus speuren naar lijnen tekst waar de string "de" voorkomt.
* Voel je vrij om het zoekwoord te veranderen, in lijn 4 van deze code (bv. zoeken naar 'zon' -> api.php?search=zon)
*/
window.onload = function () { // wordt uitgevoerd als de pagina geladen is
if (typeof messages != 'undefined') {
for (var i=0; i<messages.length; i++) {
document.getElementById('shouts').innerHTML += '<p>' + messages[i] + '</p>';
}
}
}
</script>
</head>
<body>
<h2>Shoutbox</h2>
<div id="shouts"></div>
</body>
</html>
<html>
<head>
<script type="text/javascript" src="api.php?search=de"></script>
<script>
/**
* We hebben dus net api.php geladen. Die heeft een var messages aangemaakt.
* Die zal dus speuren naar lijnen tekst waar de string "de" voorkomt.
* Voel je vrij om het zoekwoord te veranderen, in lijn 4 van deze code (bv. zoeken naar 'zon' -> api.php?search=zon)
*/
window.onload = function () { // wordt uitgevoerd als de pagina geladen is
if (typeof messages != 'undefined') {
for (var i=0; i<messages.length; i++) {
document.getElementById('shouts').innerHTML += '<p>' + messages[i] + '</p>';
}
}
}
</script>
</head>
<body>
<h2>Shoutbox</h2>
<div id="shouts"></div>
</body>
</html>
Gewijzigd op 03/12/2013 14:12:21 door Kris Peeters
Zo kun je bij Google bijvoorbeeld maps ophalen etc. via de API.