REST API Notes for 2017/06/19
This newsletter has a couple of clusters; it is as if folks were conspiring together for great sets of complementary material. We'll start with RESTful API design basics and then do a deeper dive into microservice implementation.
REST API BASICS
For someone creating an API for the first time, the number of online search results can be overwhelming. To make it even more complicated, many of those perspectives offer dissimilar, even contradictory, information. Diogo Lucas, when faced with this problem, decided to put together his own guide, offering his own refinements in the form of an FAQ. In particular, I appreciated the way Diogo practically explained not only SOA, but its problems that contrast it with RESTful API design. Better, he goes deep into one of the biggest REST API misconceptions: that usage of the GET, PUT, POST, and DELETE methods result in REST being glorified CRUD.
MICROSERVICE COMPENDIUM
Microservices continues to be a popular topic I continually return to because of the amount of nuance that successful implementation exhibit. In "What's your Decomposition Strategy", Matt Stine starts at what should be the beginning of most people's microservice journey. A team setting out to do microservices is likely to get themselves into trouble. Matt encourages developers not to start with a microservice strategy, but a decomposition strategy:
"When you create software modules or components, what thinking do you apply as part of that decision making process?"
Once you've identified how a system can be decomposed into microservices, Phil Calcado has an essential list of microservice prerequisites to consider. Upon my first scan, his recommendation of "RPC" as a prerequisite leaped out at me. However, what Phil is referring to here has less to do with poor resource design and is more about service-to-service communication in an incredibly complex, cloud native application.
To that end, Jeremy Miller has a post entitled "How Should Microservices Communicate". Many microservice developers come from a RESTful API background. It is assumed that microservices will call other microservices via HTTP while exchanging JSON. However, using the HTTP protocol's request/response model isn't the only way. Jeremy does a great job of distilling the various techniques, along with the pros and cons of each.
If all of that sounds complex, it is because it is. I've long admired InfoQ and the high level of technical quality that they routinely publish. They have a presentation by Satyajit Ranjeev called "MicroServices and Event Sourcing". Rather than being theory, this deck goes deep into hard won lessons from someone that has been-there and done-that. Certainly some hard-won lessons on display.
WRAPPING UP
I've updated webapi.events with the latest, greatest API events happening around the world. If you have an upcoming event that isn't listed, let me know! I'd be glad to talk.
Until next time, Matthew (@libel_vox and https://matthewreinbold.com)