[http://creativecommons.org/licenses/by/3.0/]
This work is licensed under a CC
Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]
One of REST's constraints is that of a uniform interface. The main idea of the uniform
interface is that it allows components to interact without prior knowledge of each
other. Web Architecture is a great example of how a uniform interface creates a large
and dynamic ecosystem of interacting components. On the other hand, Web technologies
as they exist today also highlight the fact that the uniform interface from 20 years
ago is not quite as uniform anymore: A growing number of specifications add to the
Web's uniform interface, and often knowing which interface a component is using is
necessary for successful interactions. This talks presents an overview of the various
axes of the uniform interface, and introduces webconcepts.info
[http://webconcepts.info/], a resource intended to provide an overview of the constantly evolving set of Web
concepts that make up the Web's uniform interface. These concepts serve as the starting
point for documenting RESTful services, which then can focus on documenting what they
do beyond implementing the uniform interface.
APIs for Things)
webby enterprisework
Self-descriptionjust gives you a chance to look up concepts [http://webconcepts.info/concepts/]
Surfing the Webmeans
Surfing the Uniform Interface
Surfing the Webmeans
Surfing an evolving surface
design patternsbased on shared concepts
Deeper modelscan still be based on the
shared concept surface
Make any model as shallow as possible, model depth tightly couples and makes model matching and mapping much harder.
<service primary="IETF" secondary="RFC" id="7231"> <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title> <documentation source="http://tools.ietf.org/html/rfc7231">The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</documentation> <http-header def="Content-Type"> <documentation source="http://tools.ietf.org/html/rfc7231#section-3.1.1.5">The "Content-Type" header field indicates the media type of the associated representation: either the representation enclosed in the message payload or the selected representation, as determined by the message semantics. The indicated media type defines both the data format and how that data is intended to be processed by a recipient, within the scope of the received message semantics, after any content codings indicated by Content-Encoding are decoded.</documentation>
<http-status def="404" desc="Not Found"> <documentation source="http://tools.ietf.org/html/rfc7231#section-6.5.4">The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. A 404 status code does not indicate whether this lack of representation is temporary or permanent; the 410 (Gone) status code is preferred over 404 if the origin server knows, presumably through some configurable means, that the condition is likely to be permanent.</documentation>
<http-method def="GET"> <documentation source="http://tools.ietf.org/html/rfc7231#section-4.3.1">The GET method requests transfer of a current selected representation for the target resource. GET is the primary mechanism of information retrieval and the focus of almost all performance optimizations. Hence, when people speak of retrieving some identifiable information via HTTP, they are generally referring to making a GET request.</documentation>
Harvesting Web conceptsshould be relatively easy
class of concepts
flat concept space
Automated auditas a first step of approval processes
flocksof designer preferences evolving
http://dret.net/netdret/
[http://dret.net/netdret/]dret.net/lectures/restfest-2016/
[http://dret.net/lectures/restfest-2016/]dret/lectures
[http://github.com/dret/lectures/tree/master/restfest-2016] on GitHub [http://github.com/]