Beskrivelse
REST Service eller REST API bruges overalt på nettet i dag. REST står for Representational State Transfer og er ikke en standard, men en arkitekturbeskrivelse af et system. Moderne systemer bør kommunikere med hinanden via deres Service API i form af JSON eller XML-format ved at udveksle data mellem systemer, som står til rådighed på nettet vha. standardiserede formater. Formålet med 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 SQL Server 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, for at kunne designe en god REST API:
- Performance: svartider mellem databasen og browseren
- Sikkerhed: data skal beskyttes, så de ikke falder i de forkerte hænder.
- Caching: håndtering af flere versioner 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.
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