[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/]
@dret
on Twitter/GitHub
APIs establish a language between providers and consumers of the provided service.
The more this language can be based on well-known vocabularies, the easier it is to
design this language for the API provider, and to understand the language for the
API consumer. Web Concepts provide a starting point for such a "shared vocabulary",
and can be constrained or extended depending on API provider needs. This presentation
looks at the general idea of "API as languages", provides a brief overview of the
"language components" currently available via http://webconcepts.info/
[http://webconcepts.info/], and presents ways how these concepts can be tailored to address the needs of API
managers and developers.
APIs for Things)
@MattMcLartyBC
[http://twitter.com/MattMcLartyBC]@mamund
[http://twitter.com/mamund]@medjawii
[http://twitter.com/medjawii]@mitraman
[http://twitter.com/mitraman]@dret
[http://twitter.com/dret]Microservice Architecture: Aligning Principles, Practices, and Culture
gets the Web
Designing into the voidnever is the best strategy
PATCH
[http://webconcepts.info/concepts/http-method/PATCH] via IETF [http://webconcepts.info/specs/IETF/]'s RFC [http://webconcepts.info/specs/IETF/RFC/] 5789 [http://webconcepts.info/specs/IETF/RFC/5789])
organizational Web surface
"IETF": { "id": "http://webconcepts.info/specs/IETF/", "name": "Internet Engineering Task Force", "short": "IETF", "series": [{ "I-D": { "id": "http://webconcepts.info/specs/IETF/I-D/", "name": "Internet Draft", "short": "I-D", "specs": [{ "amundsen-richardson-foster-alps": { "id": "http://webconcepts.info/specs/IETF/I-D/amundsen-richardson-foster-alps", "title": "Application-Level Profile Semantics (ALPS)", "name": "Internet Draft amundsen-richardson-foster-alps", "URI": "urn:ietf:id:amundsen-richardson-foster-alps", "URL": "http://tools.ietf.org/html/draft-amundsen-richardson-foster-alps", "abstract": "This document describes ALPS, a data format for defining simple descriptions of application-level semantics, similar in complexity to HTML microformats. An ALPS document can be used as a profile to explain the application semantics of a document with an application-agnostic media type (such as HTML, HAL, Collection+JSON, Siren, etc.). This increases the reusability of profile documents across media types.", "concepts": [{ "http://webconcepts.info/concepts/media-type/": "http://webconcepts.info/concepts/media-type/application/alps+json" }, { "http://webconcepts.info/concepts/media-type/": "http://webconcepts.info/concepts/media-type/application/alps+xml" }]}},{
{ "concept" : "http-authentication-scheme", "id" : "http:\/\/webconcepts.info\/concepts\/http-authentication-scheme\/", "name-singular" : "HTTP Authentication Scheme", "name-plural" : "HTTP Authentication Schemes", "registry" : "http:\/\/www.iana.org\/assignments\/http-authschemes\/http-authschemes.xhtml#authschemes", "values" : [ { "value" : "Basic", "concept" : "http:\/\/webconcepts.info\/concepts\/http-authentication-scheme\/", "id" : "http:\/\/webconcepts.info\/concepts\/http-authentication-scheme\/Basic", "details" : [ { "description" : "The Basic authentication scheme is based on the model that the client needs to authenticate itself with a user-id and a password for each protection space (\"realm\"). The realm value is a free-form string that can only be compared for equality with other realms on that server.", "documentation" : "http:\/\/tools.ietf.org\/html\/rfc7617#section-2", "specification" : "http:\/\/webconcepts.info\/specs\/IETF\/RFC\/7617", "spec-name" : "RFC 7617" } ] },
Your APIs are your EIM
application/json
[http://webconcepts.info/concepts/media-type/application/json] helps to not reinvent the wheel
lightweightway of specializing media types
application/problem+json
[http://webconcepts.info/concepts/media-type/application/problem+json]application/vnd.health+json
[http://webconcepts.info/concepts/media-type/application/vnd.health+json]dret.net/lectures/api-days-paris-2018
[http://dret.net/lectures/api-days-paris-2018]dret/lectures
[http://github.com/dret/lectures/tree/master/api-days-paris-2018] on GitHub [http://github.com/]http://dret.net/netdret/
[http://dret.net/netdret/]@dret
[http://twitter.com/dret]