1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Relevanta dokument
1ME323 Webbteknik 3 Lek0on 6 API. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Formulär, textsträngar och en del annat

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Introduk+on +ll JavaScript if- sats, funk+oner, bilder

Visuell design Bilder & färger

Laboration 2 RESTful webb-api

Webbtjänster med API er

E12 "Evil is going on"

E12 "Evil is going on"

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Objektbaserad programmering

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

Optimering av webbsidor

E09 - Totally Tool Time

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Laboration 1 XML, XPath, XSLT och JSON

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

Webbteknik II - 1DV449 Laboration 3

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Att använda Metria Maps WMS baserad på Geoserver

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

När geografisk information blir allas egendom

Struktur & Layout med CSS

Struktur & Layout med CSS

Exemple på Tentauppgifter Webbprogrammering

E13 "Behind the Wild"

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

PHP. Dynamiska webbsidor

Skeleton plane & Responsiv webbdesign med CSS

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Användarhandledning. edwise Webbläsarinställningar

MVC med Javascript och Ajax. Filip Ekberg

Filleveranser till VINN och KRITA

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Arbeta med rutter i Tracker MyWay och andra program.

Server-kod. TDDD80 Mobila och sociala applikationer

JAVASCRIPT-POWERED LOADRUNNER CHRISTIAN GERDES PERFORMANCE ENGINEER LIGHTS IN LINE AB

Visa och dölja element med JavaScript

Datakommunika,on på Internet

JAVASCRIPT. Beteende

"HTML5 och relaterade API:er"

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Elektronisk publicering TNMK30

Introduktion Översikt av kursen och området webbteknik

PHP - Fortsättning. PHP och MySQL

Labora&on 8 Formulär övningar/uppgi6er

TUTORIAL: SAMLING & KONSOLL

Webbtjänster med API er

Android översikt. TDDD80 Mobila och sociala applikationer

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

Jaktpejl.se. Användarmanual. Av: Erik Åberg

Tjänstegränssnitt API Vägledning

Modern webbutveckling. av Robert Welin-Berger

Utkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Laboration 6 Formulär och stränghantering övningar/uppgifter

TDP013. Innan AJAX Ett synkront webb. Med AJAX Ett Asynkront webb

ADOBE FLASH PLAYER 10.3 Lokal inställningshanterare

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Loopar och objekt i JavaScript

Modul 8 Hantering av indata

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Tentamen Nätverksprogrammering Lösningsförslag

E07 "Greased Lightning"

Säkerhet i applikationslagret och slaget om webben. John Wilander, Omegapoint, Rätt säkerhet, maj 2010

Stationsregistret - användarhandledning

Guide för Google Cloud Print

Certifikattjänsten - testbädd. Anläggningsprojekt för ett nationellt inkomstregister

Så får du maximal nytta av Evernote

Datakommunika,on på Internet

MVC med Javascript och Ajax. Filip Ekberg

Mobile First Video on demand och livesändningar på Internet. Juni 2012

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Services + REST och OAuth

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Manual för StoraBasen. Stora Basen

Android fortsättning. TDDD80 Mobila och sociala applikationer

Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning

Beställnings- och installationsguide av Dubbelskydd

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Stockholm Open Award 2014 Meet Up 26 mars Trafik och framkomlighet

Platsbesök. Systemkrav

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

ASP.NET Thomas Mejtoft

Google Analy+cs. Umeå universitet

Introduk+on +ll programmering i JavaScript

TDDE44 Programmering, grundkurs

Kom igång med LUPP 6.1

Detta är en kort Manual för Vecturas portal för presentation av inventeringar. Adressen till portalen är:

Serviceklass för Facebook Graph API

Säkerhet. Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Transkript:

1ME323 Webbteknik 3 Lektion 6 API Rune Körnefors Medieteknik 1 2019 Rune Körnefors rune.kornefors@lnu.se

Agenda API (Application Programming Interface) Mashup Flickr API Google Maps API Labb 6 2

API (Application Programming Interface) metod & parametrar Program eller databas Operativsystem Program Webbtjänst... API egenskaper metoder data Program Program i datorn Webbprogram... 3

API på webben API Begär data genom att adressera metoder i url:en, t.ex. med hjälp av AJAX. Skickar över data på begärd form, t.ex. XML eller JSON. Webbtjänst Webbprog. t.ex. Flickr Google Maps IMDB Ibland specificeras en "callback-funktion". REST (Representational State Transfer) Kommunikation via http (eller https) Ofta används GET med parametrar i url:en, för att ange metod och specificera en begäran. http://www.webbtjänsten/api/?method=api_funktion&par1=xyz 4

API-nyckel Registrera en nyckel hos webbtjänsten. Skicka med i anropet: http://www.webbtjänsten/api/?api_key=gt5yhus567bfdgttsdegtuth54vfed&method=api_funktion&par1=xyz Syfte: Webbtjänsten vet vem som gör anrop. Kan begränsa användning eller ta betalt beroende på hur många anrop. API-nyckeln bör, om möjligt, ligga i en "lässkyddad" fil. 5

Mashup Webbtjänst 1 API Webbprog. Webbtjänst 2 API Nytt program som kombinerar data från två eller flera webbtjänster.... 6

Flickr API Dokumentation https://www.flickr.com/services/api/ Anrop av olika metoder via https://api.flickr.com/services/rest/ Svar i olika format, t.ex. XML REST (Representational State Transfer) JSON (JavaScript Object Notation) Exempel på anrop med resultat i XML: https://api.flickr.com/services/rest/?api_key=din-api-nyckel &method=flickr.photos.search&tags=cat&per_page=5&format=rest Exempel på anrop med resultat i JSON: https://api.flickr.com/services/rest/?api_key=din-api-nyckel &method=flickr.photos.search&tags=cat&per_page=5&format=json I dessa exempel är den "tag" som söks: cat 7

Callback function Svar som: jsonflickrapi( {JSON-objekt} ) JavaScript-kod: function jsonflickrapi(response) { if (response.stat!= "ok") { // Något har blivit fel return; } // Kod för att tolka och använda returnerad data } Annat namn på callback-funktionen: https://api.flickr.com/services/rest/?api_key=din-api-nyckel &method=flickr.photos.search&tags=cats&per_page=5&format=json &jsoncallback=myfunction 8

Anrop med AJAX Skapa ett request-objekt och anropa flickr API: https://api.flickr.com/services/rest/?api_key=din-api-nyckel &method=flickr.photos.search&tags=cats&per_page=5&format=json &nojsoncallback=1 Funktion som tar emot svaret specificeras i request-objektet: request.onreadystatechange = function () { if ( (request.readystate == 4) && (request.status == 200) ) getimages(request.responsetext); }; function getimages(response) { response = JSON.parse(response);... } 9

Exempel: Flickr API lekt6-ex1-1 Anrop i en script-tagg Callback-funktion med data i JSON-format Sök fem bilder med specifik tag och visa upp bilderna på webbsidan. lekt6-ex1-2 Anrop med AJAX Data i JSON-format Sök 500 bilder med specifik tag och visa upp 5 slumpmässigt valda bilder på webbsidan. lekt6-ex2 Anrop med AJAX Data i JSON-format Sök fem bilder i taget. Ny sökning ger ytterligare fem bilder. Bläddra framåt och bakåt mellan sökningarna. Visa små bilder samt stor bild, då man klickar på liten bild. 10

Google Maps API Dokumentation https://developers.google.com/maps/documentation/javascript/ Tutorial https://www.w3schools.com/graphics/google_maps_intro.asp 11

Google Maps Objects Ladda in "https://maps.googleapis.com/maps/api/js" i en script-tagg. Om man gör en applikation med mycket trafik, krävs en API-nyckel. Skapa objekt för karta, markörer, inforutor, etc. Sätt olika egenskaper för objekten, t.ex. position, textinnehåll,... 12

Exempel: Google Maps API lekt6-ex3-1 Skapa ett objekt för en karta (new google.maps.map) Visa en karta på universitetets campus. lekt6-ex3-2 Skapa ett objekt för en karta (new google.maps.map) samt objekt för markörer (new google.maps.marker) Markörerna kan visas och döljas på kartan. lekt6-ex3-3 Samma program som ovan, fast med lite mer kompakt och generell kod för markörerna. Karta med två markörer. 13

Exempel: Google Maps API lekt6-ex4-1 Skapa ett objekt för en inforuta (new google.maps.infowindow) Händelsehanterare för klick på markörerna. Inforuta visas i kartan. lekt6-ex4-2 Händelsehanterare för klick i kartan. Visa markör där användaren klickar i kartan. lekt6-ex4-3 Formulär för att spara användarens markör. Formulär i inforutan. lekt6-ex5 Fungerar i Chrome och Opera samt mobil Fungerar inte i Firefox och Safari Visa användarens position. Använd navigator.geolocation för att ta reda på användarens position och visa det i kartan. Funkar endast över https, då programmet publicerats. Prova t.ex. https://www.fc.lnu.se/~rksmsi/aa/ På en vanlig dator visar den dock oftast fel plats, men i mobilen brukar det vara ganska rätt. 14