When 2020 started, I couldn't have been more excited.
We spent a good amount of time in 2019 assessing options and building proof of concepts. When we finally landed on the decision to use AWS serverless, all other options seemed.... silly. We contributed in the "container vs serverless" wars on Twitter, advocated Lambda functions for everything, and really drove the tech stack we chose internally at our company.
Now in the start of 2021, our app is built and we're looking to build another one. But our attitudes have changed. Our focus isn't on the turf war that is kubernetes or lambda. It's making the best software possible.
Your consumers don't care how you built your app. They care that it works and that it's reliable.
And honestly, you can get both of those things with a containerized environment or a serverless environment.
Our focus has turned to API design.
Building an API that is easily consumed, clearly documented, and automatically tested is our 2021 focus. And it should be yours too.
In an age where everybody uses the same tools, be it AWS, GCP, or Azure... what sets us apart from our competitors is our creativity.
If I had a dollar for every time in 2020 I said, "I'm sure there's an API for that", I would be able to take my family out to a nice steak dinner.
But if I had a dollar for every time I was right when I said that, we'd be going to McDonalds instead.
Time and time again, my team and I discussed the plan for our new build and ways to add automation or integrate with a third party. Ideas get tossed around and eventually we all come back to using APIs to perform a specific task. Something that feels so easy should be so easy, right?
Apparently not. Software companies around the world aren't there.... yet. The focus has been on which tech stack is the best. But with a simple shift in our focus, we can change the game. We can build APIs that enhance workflows, automate tasks, and give access to powerful services.
Which is why we need to push for APIs.
APIs are literally the building blocks of our applications.
Giving developers access into our specialized systems to build their own workflows is what 2021 should be about. Let them decide how to best use your software. Give them the keys to the kingdom.
One of the best gifts you can give to a developer is an API in a format they are familiar with. Be it REST, GraphQL, or some other type of API, if it's structured in a standard way, it is going to be well received and ultimately used more.
Think about the last time you used a new API. Was it easy? How was the documentation? Did the endpoints make sense?
For anyone that follows my writing, you already know I am a big advocate of Open API Specification. Open API Spec, or OAS, provides a way to produce API definitions in a standard format. OAS has a core set of features that give developers ways to map out what endpoints belong to an API, what all the parameters are, request/response schemas, and allowable response codes.
As developers, our focus should be migrating our existing APIs to this standard. If our APIs are already using it, we should be focusing on ways to enhance it to make it easier for others.
Converging on an industry standard opens up the doors for some powerful advancements. Developers will spend time on building tools that makes creation and maintenance of the specs easier. Automations will start popping up that make daily life easier. Web apps will be developed that assist with governance, testing, and distribution of your API.
We have industry standards for a reason. Community is built around them. Support is offered both internally and externally. Most importantly, they help developers with career-building skills. Being able to "hire someone off the street" is a huge market benefit.
You can automate the testing of anything that has an API. If you work to build APIs for everything in your application, that means you can automatically test everything in your application.
Automatically testing everything means taking the risk of human interaction out. It means you won't accidentally miss something. It means you will have a robust, reliable application.
By defining your APIs with OAS, you open the door to significant time-saving automation. If you are a Postman user, there are native solutions that will generate contract tests, security tests, performance tests, and even identify breaking changes.
These test generators build tests directly from your Open API Spec every time they run, so no test maintenance is necessary. They are able to run in your CI pipeline or directly in Postman.
The best thing you can do for reliability is to have a machine run exhaustive tests across your system. Nothing will be missed, it takes seconds, and it grows with you.
OAS is already fully featured, but if you find a use case that it doesn't cover, no problem. You have the ability to add an extension into the specification.
Many companies have already built extensions for you to use that integrate with their products. AWS has a full suite of extensions that integrate with API Gateway, allowing you to map routes to lambda functions, setup security schemes, and even proxy directly to Dynamo DB.
Extensions themselves are simple, but they open up powerful automation opportunities and do the hard work for you.
Focusing on getting every detail on your into a single document will help not only developer productivity, but consumers as well.
Focusing on the right programming language or the latest tech stack only helps the developers writing the code. Instead, shift your mindset to help everybody. You want to spend your time on mutually beneficial activities.
Your customers don't care what language or tech stack your app is written in. But they do care how consumable, reliable, and easy it is. With this in mind, it's time to refocus and drive to an API-centric world.
Putting an emphasis on API development in 2021 will let you join a growing community of API experts. It will provide you the opportunity to get significant automation right out-of-the-box. It also provides you with an opportunity to give back to the community in the form of extensions and enhancements.
Stop reinventing the wheel. Use the tools available and focus on solving your business problems. Get creative. Innovate. Build an API.