Dagens länkar
Dagens git: https://github.com/fredrikwcms/wcms19-starwars
WordPress Plugin: HTTP API
Empty StarWars Widget
https://gist.github.com/drblue/ada8d8fb41475e1617a7e779e2004c44
StarWars API
wp_remote_get()
Workshop
Uppgift 1
Skapa ett nytt plugin och widget baserat på boilerplate:n ovan (Empty StarWars Widget). Använd därefter wp_remote_get() för att hämta data från SWAPI (StarWars API), förslagsvis endpoint:en /films/ med en GET-request mot https://swapi.co/api/films/.
Säkerställ att du får tillbaka HTTP-statuskoden 200 innan du omvandlar response-body till JSON med json_decode().
Loopa därefter över results-egenskapen i den avkodade body:n och skriv ut titeln för varje film.
Uppgift 2
Fortsätt lek med StarWars API och din widget. Lyft ut koden för att hämta data från API:et till en separat funktion (lägg den förslagsvis i swapi.php och inkludera den i pluginets huvudfil). Kalla därefter på din nya funktion ifrån widget:ens front-end del, och testa så att allt fortfarande fungerar.
Uppgift 3
Läs på om Caching med hjälp av WordPress Transients på https://developer.wordpress.org/plugins/http-api/#introduction-to-caching. Implementera därefter caching med t.ex. 60 sekunders giltighet i din nya funktion från uppgift 2, så att WordPress slipper hämta data direkt ifrån StarWars API:et, ifall det redan finns cache:ad data som inte har gått ut än.
Uppgift 4
Se om du kan skriva fler funktioner i swapi.php för att t.ex. hämta alla karaktärer. API:et levererar bara 10 resultat per förfrågan, så du måste göra en loop som fortsätter hämta data tills next-attributet blir null. Tips: använd en while($result->next !== null)-loop.
