Getting To Know Mike Amundsen For The API Craft 2014 Detroit Hypermedia Panel
24 Jul 2014
I'm preparing for my hypermedia panel with Mike Amundsen (@mamund), Mike Kelly (@mikekelly85), Steve Klabnik (@steveklabnik), Kevin Swiber (@kevinswiber), Jørn Wildt (@JornWildt), and Markus Lanthaler (@MarkusLanthaler), at API Craft Detroit next week. I wanted to go into the panel with a snapshot, and at least a minimal understanding of each of the panelists. This is kind of an all-star panel of hypermedia experts, so I need to at least bump up my understanding of what they are contributing to the API space, and who they are, beyond what I know from my own interactions with these API leaders.
As I do with all of my research, I wanted to share my work with you, my reader. So, first up is Mike Amundsen. I'm very aware of Mike's presence in the space, but after doing just a couple hours of refresh on what he's been up to, I'm blown away by the leadership he has brought to how we communicate with APIs.
Let's dive in, here is the outline of my research into Mike's work:
- Twitter - https://twitter.com/mamund
- Blog - http://amundsen.com/blog/
- Github - https://github.com/mamund
- LinkedIn - http://linkedin.com/in/mamund
- we need to ely on hypermedia formats
- focusing on high degree of shared understanding
- significant contributions to API space with Collection+JSON, Uber, and ALPS
- teaching us to communicate in a structured way
Mike brings a significant amount of work to the API sector. When you look at Mike's work, you realize how much time he has given to the sector. I picked three significant contribiutions to focus on for my panel, and ongoing research.
Collection+JSON is a JSON-based read/write hypermedia-type designed to support management and querying of simple collections.
- Definition - http://amundsen.com/media-types/collection/
- Github - https://github.com/collection-json
- Media Type - http://www.iana.org/assignments/media-types/application/vnd.collection+json
- Collection+JSON Primer - http://schinckel.net/2012/03/10/collection%2Bjson-primer-(and-comments)/
- Google Group - https://groups.google.com/forum/?fromgroups=#!forum/collectionjson
- Stack Overflow - http://stackoverflow.com/questions/tagged/collection-json
The Uber message format is a minimal read/write hypermedia type designed to support simple state transfers and ad-hoc hypermedia-based transitions. This document describes both the XML and JSON variants of the format and provides guidelines for supporting Uber messages over the HTTP protocol.
- Definition - https://rawgit.com/mamund/media-types/master/uber-hypermedia.html
- Twitter - http://twitter.com/uberhypermedia
- Keep the message structure as lean as possible.
- Support all the H-Factors in hypermedia controls.
- Be compatible with multiple protocols (e.g. HTTP, CoAP, etc.)
- Maintain fidelity for more than one base message format (XML, JSON, etc.)
- Uber Hypermedia - Minimalism on the Web
- UBER - A "Uniform Basis for Exchanging Representations" on the Web
- A New Hypermedia Format for APIs
- API Craft - https://groups.google.com/forum/#!topic/api-craft/0dEYvFLLURU
- Google Group - https://groups.google.com/forum/#!forum/uber-hypermedia
ALPS (Application-Level Profile Semantics)
The purpose of Application-Level Profile Semantics (ALPS) is to document the application-level semantics of a particular implementation. This is accomplished by describing elements of response representations for a target media type. For example identifying markup elements returned (i.e. semantic HTML ala Microformats) and state transitions (i.e. HTML.A and HTML.FORM elements) that advance the state of the current application.
- Website - http://alps.io/
- Definition - http://amundsen.com/hypermedia/profiles/
- Github - https://github.com/alps-io/
- Twitter - https://twitter.com/alps_io
- Design a document format for describing hypermedia interfaces for use in public distributed network applications.
- Discover Web developers' common assumptions when building Web client and server applications.
- Explore the challenges of designing and implementing client and server applications for the Web that can independently evolve over time.
- Hypermedia and Web API. Design brain dump and samples
- Building the rstat.us API: Choices and challenges
- Product API With Blueprint, RAML And Swagger
- Generic Hypermedia and Domain-Specific APIs: RESTing in the ALPS - http://www.infoq.com/presentations/web-api-alps
- RESTing in the ALPS - http://www.slideshare.net/rnewton/resting-int-he-alps
- Google Group - https://groups.google.com/forum/#!forum/alps-io
Beyond Collection+JSON, UBER, and ALPS, Mike is pretty accomplished when it comes to authoring books on the subject, speaking, and even producing his own event.
- RESTful Web APIs
- Building Hypermedia APIs with HTML5 and Node
- InfoQ -http://www.infoq.com/author/Mike-Amundsen
- YoutTube - https://www.youtube.com/results?search_query=Mike+Amundsen+API
- RESTFest -http://restfest.net/
I'm not posting all of this information just so I can share my research, it is also because Mike is a leader in the API space, and I want to better understand the role he plays, while also helping you understand along the way. While I learned a lot through this process, I will also use it as a reference for my panel at API Craft, and for other stories I write in the future.
I will also be adding Collection+JSON, UBER, and ALPS as tools in my hypermedia API research. I could spend days going through this research, but I also have five other hypermedia API experts to profile, so I'm going to move on to the others, and come back to my profile of Mike Amundsen in the future to continue my hypermedia education.