Nog niet zo lang geleden schreef ik een artikel over "Het toenemende belang van API's in Web Development." Als een vervolg, vandaag zal ik ingaan op de basisprincipes van het gebruik van web-API's.
Voordat we beginnen: dit artikel geeft geen details over het proces van API-ontwerp of -ontwikkeling. Dat is voor een ander artikel!
Er zijn een handvol basisprincipes die moeten worden gevolgd bij het gebruik van Web API's:
De meeste van deze richtlijnen worden vermeld in de servicevoorwaarden van de API voor Twitter en Facebook, maar kunnen worden toegepast op alle Web-API's.
Er zijn duizenden web-API's beschikbaar en de meeste kunnen worden geïntegreerd in een website of om een mashup te maken. Sommige web-API's zijn vrij eenvoudig en vereisen minimale codeervaardigheden om te implementeren, terwijl andere zeer complex kunnen zijn en geavanceerde programmeervaardigheden vereisen.
De programmeertaal die u gebruikt om een web-API in uw website te integreren, hangt er zeker van af met welke u het meest vertrouwd bent. U zult merken dat veel web-API's, zoals Flickr en Last.fm taalspecifieke toolkits bieden.
Elke web-API heeft specifieke voorwaarden met betrekking tot het gebruik ervan; dus het is ongelooflijk belangrijk dat de "algemene voorwaarden" zorgvuldig worden gelezen. Ze zullen vele aspecten van het gebruik van de Web API beschrijven, waaronder:
Er kunnen aanvullende "gebruiksvoorwaarden" informatie op verschillende webpagina's staan. Er zijn bijvoorbeeld 'Displayrichtlijnen' die in detail worden beschreven op afzonderlijke webpagina's voor Twitter, Foursquare, LinkedIn en Facebook.
De meeste web-API's hebben gedetailleerde documentatie beschikbaar, die meestal belangrijke informatie bevat, zoals:
Sommige Web API-providers raden het gebruik van een versioning-parameter aan in de API-aanroep.
Veel web-API-providers publiceren regelmatig nieuwe versies van hun API's. Deze nieuwe releases kunnen het volgende bevatten:
Sommige Web API-providers raden het gebruik van een versioning-parameter aan in de API-aanroep. Foursquare accepteert bijvoorbeeld de parameter "v = JJJJMMDD" in API-aanroepen. Deze parameter geeft aan dat de client up-to-date is vanaf de opgegeven datum.
Het is een slim idee om periodiek het wijzigingslogboek te controleren (indien aanwezig) bij het gebruik van web-API's. Veel populaire API's hebben wijzigingslogboeken beschikbaar, zoals Facebook, Google Maps, Google Charts en Foursquare.
Veel API-providers bieden extra manieren om hun API-revisies bij te houden:
Bijna alle web-API's zijn onderworpen aan tarieflimieten; sommige API-providers rekenen zelfs kosten aan als een gebruiker de API-limiet overschrijdt!
Het gebruik van de meeste (zo niet alle) API's is onderhevig aan tarieflimieten en elke API-provider heeft zijn eigen API-tariefbeperkende beleid. Sommige API-providers rekenen zelfs kosten in rekening als een gebruiker de API-limiet overschrijdt! Google heeft onlangs een nieuw snelheidsbeperkend beleid voor de Maps API geïntroduceerd dat gebruikskosten omvat. Google heeft ook aanvullende informatie verstrekt over de gebruikslimieten van de Maps API op hun Geo Developers-blog. Hier vindt u links naar beperkende informatie voor enkele van de meer populaire API's:
Het is ongelooflijk belangrijk dat u de API niet misbruikt. Als uw website een API-aanroep doet voor elke afzonderlijke pagina en voor elke afzonderlijke bezoeker, vraagt u zich af: "Waarom"? Implementeer de juiste caching-technieken om de prestaties van uw website te verbeteren en mogelijk geld te besparen.
Het gebruik van een "cache-bestand" voorkomt problemen met API Rate Limiting.
Het gebruik van een "cache-bestand" voorkomt problemen met API Rate Limiting. In de Nettuts + post "Hoe een geavanceerde Twitter Widget maken", zijn er instructies voor het maken van een PHP "cache file" script. Dit script haalt de Twitter-API "GET-statussen / user_timeline" -informatie op en slaat deze op in een "TXT" -bestand in een cachemap op de server. Dit script kan eenvoudig worden aangepast om met de meeste API's te werken. Het enige dat u hoeft te doen is de txt-bestandsnaam en de API-aanroep wijzigen. Merk op dat de aanroep in het script de gegevens in JSON-formaat ophaalt.
Het is belangrijk dat u de gebruiksvoorwaarden van de API's leest voor elke verwijzing naar het gebruik van cachebestanden. De Amazon-productadvertentie-API heeft bijvoorbeeld beperkingen voor caching. Facebook raadt aan dat als u cachegeheugen gebruikt, u probeert de gegevens up-to-date te houden.
De twee meest populaire gegevensindelingen voor web-API's zijn XML en JSON.
De twee meest populaire gegevensindelingen voor web-API's zijn XML en JSON; veel providers bieden beide formaten. JSON is echter zo populair geworden bij webontwikkelaars dat sommige API-providers, zoals Foursquare, Twitter en Google+, het JSON-gegevensformaat exclusief aanbieden.
API-gegevensindelingen worden uitgebreid behandeld in een vorige post.
De meeste API-providers vereisen dat gebruikers zich aanmelden voor een gebruikersaccount en / of een API-sleutel. Google vraagt zijn gebruikers bijvoorbeeld om hier een API-sleutel aan te vragen. Dit is meestal een vrij eenvoudig proces en duurt maar een paar minuten om te doen. Mogelijk wordt u ook gevraagd een ontwikkelaar / applicatie-ID te gebruiken bij gebruik van een API.
Veel API's vereisen het gebruik van OAuth voor specifieke API-functionaliteit.
OAuth (Open Autorisatie) is een open standaard voor autorisatie waarmee gebruikers gegevens en / of bestanden die op één website zijn opgeslagen kunnen delen met een andere website.
Veel API's vereisen het gebruik van OAuth voor specifieke API-functionaliteit, zoals het inloggen en afsluiten van een toepassing. De Google+ API vereist ALLE API-aanroepen om een OAuth 2.0-token of een API-sleutel te gebruiken. Google raadt aan OAuth 2.0 te gebruiken als het autorisatieprotocol voor Google API's. Andere voorbeelden van API's waarvoor OAuth moet worden gebruikt, zijn LinkedIn, Twitter en Foursquare.
Een API-oproep moet worden gebruikt om uw websitetoepassing toegang te geven tot een web-API. Afhankelijk van het type toepassing dat u maakt, moet u mogelijk meerdere API-aanroepen gebruiken. De meeste API's kunnen worden gebruikt met verschillende programmeertalen. De oproep moet mogelijk worden aangepast voor verschillende programmeertalen. In de zelfstudie 'Een geavanceerde Twitter-widget maken' wordt bijvoorbeeld een PHP-script voor het cachebestand gemaakt met de volgende Twitter API-aanroep:
http://api.twitter.com/1/statuses/user_timeline/twitter_screen_name.json?count=3&include_rts=true&include_entities=true
Als u JavaScript of jQuery gebruikt in plaats van PHP, moet de oproep worden gewijzigd in:
http://api.twitter.com/1/statuses/user_timeline/envatowebdev.json?count=3&include_rts=true&include_entities=true&callback=?
Bij gebruik van JavaScript of jQuery, "& Callback =?" moet worden opgenomen in de API-aanroep, maar als PHP wordt gebruikt, moet deze worden verwijderd of worden de gegevens niet gegenereerd in een geldige JSON-indeling.
Er zijn verschillende API-testtools beschikbaar om u te helpen bij het testen van uw API-aanroepen:
Als u onverwacht problemen ondervindt met een API, bieden sommige API-providers zoals Foursquare en Twitter platformstatusupdates op statusblogs.
Facebook biedt een mooie "Live Status Tool" met:
tjilpen heeft ook een up-to-date "API Statuspagina" met:
Web-API's worden steeds belangrijker in webontwikkeling en hun populariteit en gebruik is de afgelopen jaren exponentieel toegenomen. Hopelijk heeft dit artikel de basisprincipes van het gebruik van web-API's beschreven. Als er aanvullende opmerkingen zijn die ik niet heb opgenomen, vermeld deze dan in de opmerkingen.