2013 Most Popular and Successful Web APIs

Have you ever been stumped how to design a Web API? There are so many different approaches that you can take for even simple things, like paginating API result sets. If you list out your options, it can be easy to end up in analysis paralysis. I like to remind myself that I’m not the first person to tread on this soil. I often take inspiration on design choices from well-known APIs, assuming that the hard work has already been done. But I realized lately that I’m not confident what a popular or successful API is, and that I have... [Read More]

Idempotent Web APIs: What benefit do I get?

When it comes to Web API best practices, idempotency is a pretty easy one to explain. An idempotent API operation is an operation that produces the same effect no matter how many times it is executed. Done, right? Now you know how to use that in your API design, how to explain it to your boss, and how to justify why it’s important. Right? Well, probably not. That was a definition, not an explanation, and certainly not a justification. [Read More]

Ain't Nobody Got Time For That: API Versioning

Have you investigated how to make your API forward and backwards compatible, so that you can make changes to your API without affecting your current clients? Did you cry yourself to sleep shortly afterwards? It’s really difficult to be confident about API compatibility because: You are planning for an unknown future. You are scared that you won’t be able to support unknown future changes. You are not omniscient. You are not a time-traveler. There are many convincing arguments about how to handle change in your API. All the convincing arguments conflict with each other. [Read More]

Stop Designing Fragile Web APIs

My customers will be angry if I break my API. When you release your Web API, it’s carved into stone. It’s a scary commitment to never make an incompatible change. If you fail, you’ll have irate customers yelling in your inbox, followed by your boss, and then your boss’s boss. You have to support this API. Forever. Unless you version it, right? After publishing The Web API Checklist, I received comments (#1, #2) regarding API versioning. Before you struggle with how to version your API, I want you to know how to design your API to avoid future incompatibilities. If... [Read More]

The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API

When you’re designing, testing, or releasing a new Web API, you’re building a new system on top of an existing complex and sophisticated system. At a minimum, you’re building upon HTTP, which is built upon TCP/IP, which is built upon a series of tubes. You’re also building upon a web server, an application framework, and maybe an API framework. Most people, myself included, are not aware of all the intricacies and nuances of every component they’re building upon. Even if you deeply understand each component, it’s probably going to be too much information to hold in your head at one... [Read More]