Kmom05: Webbtjänst med RESTful API

By . Latest revision .

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

  1. 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

  1. 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.

#Lästips

  1. 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.

#Övningar & Uppgifter

(ca: 8-14 studietimmar)

#Övningar

Det finns inga övningar.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. 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.

  • Ä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

  • 2015-09-02: (A, mos) Första utgåvan för kursen.

Document source.