At the conclusion of the first API Days San Francisco, one thing is clear above all else: APIs are in. Huge growth in the startup space developing APIs and major acquisitions amongst the larger companies are a great indicator of a burgeoning API ecosystem. Despite a wide variety of opinions and philosophies in the speaking arrangement capable of satisfying any developers thirst for insight, one common theme prevailed: APIs are a critical component of any modern development strategy.
API Economy Panel – Image by Michael Pratt
Rather than providing a simple recap, let’s touch on a few of the most important and emerging topics discussed.
When developing an API, one of the first critical decisions every developer must face is that of Content Type. In this day and age most APIs return one or both of JSON or XML.
photo by Sean Svadilfari
Some APIs get away with one, and that’s fine, but to improve the UX of your API, you should allow the requestor to determine what data type is best for them. If you’ve read the post on API Content Negotiation, you’ll know the best way to approach content negotiation is to follow the standards.
What exactly is Content Negotiation? According to Wikipedia it’s “a mechanism defined in the HTTP specification that makes it possible to serve different versions of a document at the same URI, so that user agents can specify which version fit their capabilities the best”.
photo by JD Hancock
So, it serves two purposes: (1) making it possible to have different versions of the same response, and (2) letting clients specify which version they want to receive. Usually, this technique is applied when there are several types of user agents consuming the same HTTP resource but, because they have different rendering capabilities, they might ask for different content types.
According to ISO 9241-210, User Experience, or UX, is “a person’s perceptions and responses that result from the use or anticipated use of a product, system or service”. Additionally, Wikipedia has a broader definition, covering many aspects of the way users interact with a system:
[UX] involves a person’s emotions about using a particular product, system or service. User experience highlights the experiential, affective, meaningful and valuable aspects of human-computer interaction and product ownership. Additionally, it includes a person’s perceptions of the practical aspects such as utility, ease of use and efficiency of the system. — bolds added by me
So, if APIs are, by definition, Application Programming Interfaces, API User Experience can be defined as follows: