Kmom05: Webbtjänst med RESTful API
Nu har vi en Linux-server, en webbserver, vi kan grunderna i att bygga skript i bash och vi kan bygga servrar med Node.js. Låt oss fortsätta titta på serverprogrammering i Node.js och se hur en mer renodlad webbtjänst kan se ut och fungera.
Du kommer få en färdig server, skriven i Node.js, och ett RESTful API till servern. Servern implementerar en maze. Servern är färdig och du kan testköra den via kommandot curl.
Din uppgift är att bygga en bash-klient till servern, enligt en kravspecifikation. Din klient skall använda servern för att lösa mazen.
Så är upplägget. Låt se hur bra vingarna bär. Upplägget på detta kursmomentet är “lite friare”, så vi går nästan rakt på själva uppgiften.
Så här kan det se ut när du löser mazen med ditt skript, skriptet som i detta fallet heter mazerunner.sh. Möjligen kan det vara inspirerat av boken/filmen med samma namn, The Maze Runner.
(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)
#Läsanvisningar
(ca: 2-4 studietimmar)
#Kurslitteratur
Det finns ingen läsanvisning i kurslitteraturen.
#Artiklar
- Läs igenom hur du med Bash kan skapa ett mer avancerat kommandoradsprogram som tar argument. Artikeln “Skapa Bash-skript med options, command och arguments” ger dig en struktur till hur du kan skapa mer avancerade och större Bash-skript.
#Video
Titta på följande:
Till kursen finns en videoserie, “linux”, kika på de videor som börjar på 5.
Se videon om “REST API concepts and examples”. Den visar exempel på grunderna i REST API och hur det förhåller sig till en webb URL.
I labbarna node1 - node3 skrapar vi ytan på funktionell programmering. Titta gärna på denna spellista av MPJ som är programmerare på Spotify.
#Lästips
Det finns en webbplats som föreslår en JSON API specifikation. Du kan titta översiktligt på den, börja med stycket om “Fetching Data”. Specifikationen ger oss en guide, eller ledtrådar och tips, till hur man kan skriva ett JSON API för en server.
nodejs har ett api där de inbyggda funktionerna är dokumenterade, läs igenom översiktligt och använd som referens när du programmerar.
Följ gärna med i forumtråden Functional Programming där funktionell programmering diskuteras i allmänhet.
#Övningar & Uppgifter
(ca: 8-14 studietimmar)
#Övningar
Det finns inga övningar.
#Uppgifter
Dessa uppgifter skall utföras och redovisas.
Gör uppgiften node2 för att träna på nodejs api funktioner.
Gör uppgiften “Lös mazen med din mazerunner i bash”.
#Extra
Det finns inga extra uppgifter.
#Resultat & Redovisning
(ca: 1-2 studietimmar)
Läs instruktionen om hur du skall redovisa.
Se till att följande frågor besvaras i redovisningstexten.
- Hur kändes det att bekanta sig med inbyggda nodejs moduler?
- Är du bekant med JSON API sedan tidigare?
- Hur kändes det att skriva ett litet större bash-skript? Var det något som var mer eller mindre utmanande och tidskrävande?
- Kikade du på källkoden till maze-servern? Har du några reflektioner kring den?
- Är du nöjd med din mazerunner? Gjorde du nåt speciellt som du vill lyfta fram?
#Revision history
- 2016-12-21: (C, efo) Från asynkronprogrammering till nodejs api.
- 2015-09-02: (A, mos) Första utgåvan för kursen.