Morgonens pass ägnades åt att gå igenom vad ett API är och närmare bestämt också vad ett REST API är, men ljudet fungerade tyvärr inte under den första delen. Jag har laddat upp videon ändå, men länkar till två stycken videos här nedan man kan kika på istället, som i grova drag går igenom samma sak.
Har även laddat upp ett dokument med anteckningar (se nedan) som jag skrivit inför dagens lektion som eget stöd, så det är inte världens mest sammanhängande men bättre än inget hoppas jag 😅.
Dynamisk webbutveckling, dag 10 – Vad är ett API och REST API?
PDF | Google Docs
Efter kaffet så kollade vi på verktyget Postman som låter oss göra alla möjliga typer och former av HTTP-requests mot en webbserver, och det är via den som vi kan debugga och verifiera de API:er som vi ska skapa nu under de närmsta två veckorna.
Vi satte även upp en API-router och en API-controller för cafees-resursen, och följde upp det med en lunch-workshop (se längre ner).
Eftermiddagen spenderades med att gå igenom lunch-workshop:en och därefter gav vi oss på att kunna skapa ett nytt café genom att POST:a till /api/cafees och skicka in ett JSON-objekt med värdena genom att sätta HTTP-headern Content-Type till application/json i vår request.
Se längst ner för den avslutande workshop:en där ni ska försöka få uppdatering av ett befintligt café att fungera.
Vad är ett REST API?
The Net Ninja – What is a REST API?
What is REST API? | Web Service
Länkar
API – Application Programming Interface (Wikipedia)
https://sv.wikipedia.org/wiki/Application_Programming_Interface (svenska)
REST – Representational State Transfer (Wikipedia)
https://sv.wikipedia.org/wiki/Representational_State_Transfer (svenska)
Content-Type (MDN)
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
Common MIME types (MDN)
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
Lunch-workshop
Med den nya API-controller:n för caféer, se om ni kan lyckas få index och show-metoderna att hämta ut data från databasen och svara i JSON-format.
🌟 om ni lyckas med att skapa/uppdatera/radera ett café också!
GET /api/cafees
Ska returnera alla caféer i databasen som en JSON-array av café-objekt.
Exempel på svar
[
{
"id": 23,
"name": "Bengans Bakelser, Bank och Bröd",
"address": "Bakvägen 3-5",
"city": "Bakby",
"owner_id": 3
},
{
"id": 24,
"name": "Dennis Dadlar & Data",
"address": "Bitvägen 1337",
"city": "Databy",
"owner_id": 3
}
]
GET /api/cafees/1
Ska returnera ett enskilt café som ett JSON-objekt.
Exempel på svar
{
"id": 1,
"name": "Espresso House, Lund C",
"address": "Bangatan 1",
"city": "Lund",
"owner_id": null
}
Eftermiddags-workshop
Med hjälp av koden för att skapa ett nytt café via POST till /api/cafees som vi skrev på eftermiddagen, se om ni kan få till uppdatering av ett befintligt café via PUT mot /api/cafees/:cafeId.
Endpoint:en ska gärna svara på samma vis som en POST för ett nytt café gör, dvs även uppdateringar ska returnera caféet från databasen efter att uppdateringen har gjorts.
Exempel:
GET /api/cafees/33
{
"id": 33,
"name": "Byhålans Café",
"address": null,
"city": "Svedala",
"owner": false,
"categories": []
}
Här är address: null, så vi vill uppdatera caféet med en ny adress vilket vi gör med följande request/response (klicka på flikarna för att se request:en respektive response:n):
PUT /api/cafees/33
{
"address": "Moppevägen 1"
}
{
"id": 33,
"name": "Byhålans Café",
"address": "Moppevägen 1",
"city": "Svedala",
"owner": false,
"categories": []
}
