Building REST Webservices with open source Tools

Formål

At give deltagere viden og færdigheder til at kunne forstå og bruge HTTP og REST API Data Services med brug af moderne værktøjer og anvendelse af Best Practices. 

På kurset lærer du, at designe, programmere, teste, dokumentere og måle din REST API Service fra start til slut.

Du lærer at bygge REST DataServices ud fra SQL databaser og NoSQL databaser.

Beskrivelse

REST Service eller REST API bruges overalt på nettet i dag. REST står for Representational State Transfer, ikke en standard men en arkitektur beskrivelse af et system. 

Moderne systemer bør kommunikere med hinanden via deres Service API i form af JSON eller XMLformat ved at udveksle data mellem systemer, som står til rådighed på nettet vha. standardiserede formater.

Danmark REST web servicen (http://oiorest.dk/danmark) er et eksempel på, hvordan offentlige data kan udstilles, så de kan tilgås fra mange forskellige platforme/devices. 

Data som kommuner, sogne, postdistrikter, valgdistrikter, skoledistrikter, grundskoler, veje og adresser med koordinater er i dag offentligt tilgængelige for alle, som har interesse i at finde sammenhæng mellem data og bygge web apps.

Formålet med en REST services er at offentliggøre data og skabe sammenhæng mellem systemer.

På dette kursus lærer du hvordan sådan en god service laves med moderne programmerings-framework fra open source community. 

Har man en database med data i form af et produkt gemt i en relationsdatabase som SQLServer eller MySQL, så bør man bygge en REST API som Service interface mellem ens database og Apps.

Der er mange udfordringer der skal tages højde for at kunne designe en god REST API:

  • Performance: svarer tider mellem databasen og browseren
  • Sikkerhed: data skal beskyttes og ikke falder i de forkerte hænder.
  • Caching: håndtering af flere version af data på server og browseren
  • Data: skal filtreres, grupperes, sorteres, formateres og ændres hele tiden.
  • Relation: sammenhæng mellem data, det kaldes screendata (Web Apps data)
  • Kvalitet: en god service har altid pr. definition ren datakvalitet.
  • Dokumentation: der er flere måder at dokumentere REST API service.
  • Search Engine Optimization: anbefaler REST API Service.
  • Test: performance test, loading test, stresstest og unitest
  • Monitor: uptime, logging og errorhandling.

Forudsætninger

SU-902 - Web App Programmering Datahåndtering 

Videre forløb

SU-097 - Building Real Time Web Apps with AngularJS 

Materialer

Kursusmateriale på dansk

Tilhørende certificering

PS0915 - SCDP - REST AngularJS Certified Developer Professional 

Tilhørende test

TSU-096 - Building REST Webservices with open source Tools 

Indhold

HTTP standard

Using open standards to design REST APIs

  • REST on top of HTTP
  • DNS Domain registration
  • SSL (security explained)
  • Server caching
  • Browser caching
  • WebServer configurations (apache, nginx, iis, nodejs)

REST API Server 

Coding REST-full APIs with open source Tools

  • Coding with nodejs express-framework
  • Coding with open source Servicestack
  • Dataformater som SQL, XML, JSON, CSV, HTML
  • HTTP-GET (fra SQL til JSON)
  • HTTP-POST (fra JSON til SQL)
  • Binding SQL-StoredProcedures CRUD-operation to REST APIs
  • Binding NoSQL-CRUD to REST APIs

REST API Client 

Consuming REST APIs Tools

  • Fra JSON-APIs til HTML5 Templates
  • Consuming REST APIs with jQuery.ajax
  • Consuming REST APIs with AngularJS framework
  • Consuming REST APIs with cURL
  • Consuming REST APIs with Browser Tools

DESIGN 

Collaboration Design tools for mock-up and documentation standards

  • Blueprints documentation tools for RESTfull APIs
  • Collaborative design, instant API mock, generated documentation (apiary.io)
  • Swagger tools and resources (swagger.io)
  • RESTful API Modeling Language (RAML.org)

TEST

Tools for Testing REST APIs

  • Postman
  • cURL
  • HTTP Debugger
  • Burp
  • Packet Sniffers
  • Wireshark
  • Performance Testing (loader.io)
  • Baseline Performance Test
  • Stress and Soak Tests

MONITOR

Tools for monitor REST Services

  • Monitoring Tools
  • Logging levels
  • Instrumentation
  • Diagnostics
  • Errorhandling