* Dispostioner ** Accessing and Developing the Web of Things *** Developing networks **** Different patterns for developing - Directly (running on the Thing itself) - Through a gateway (facading the Thing with a Web based gateway) - Through a cloud service (relying on Cloud services to provide access, like we did in milestone 3) **** Different protocols, structures, ways of communication **** Five constraints of REST - Client/server - Uniform interfaces (JS project) - Stateless - Cacheable - Layered system **** Principles - #1 : Addressable resources, naming, hierarchical - #2 : manipulation of resources through representations - #3 : Self-descriptive messages, GET, POST, PUT, DELETE, cors - #4 : Hypermedia as the Engine of Application State, HATEOAS. **** Design rules - #1 : Addressable resources, Web Things must be an HTTP server, must have root resource accessible via an HTTP URL, should use a secure HTTP connection (HTTPS), must expose properties using a hierarchical structure. - #2 : Web Things must support JSON as their default representation, must support UTF8 encoding for requests/response, may offer an HTML interface/representation - #3 : Self-descriptive messages, Web Things must support GET, POST, PUT, DELETE, they must implement HTTP status codes 20x, 30x, 40x, 50x, must support a GET on root URL, should support CORS