It’s 2024, and APIs are more critical to businesses than ever. Sundar Pichai said this in an interview at Google I/O 2024 a few weeks ago:
“There are going to be APIs, and people are going to use APIs. I think that is the way things will get built.”
And I’m sure you’ve also read about Jeff Bezos’ API mandate which led to the birth of AWS. Borrowed from this GitHub Gist,
His Big Mandate went something along these lines:
Needless to say, APIs are the backbone of most software companies today. However, one thing that isn’t often talked about is how APIs are also crucial for Developer Productivity. That’s what this blog post is going to explore.
I don’t know about you, but I’m not a fan of introducing new tools and frameworks to measure developer productivity. As a developer, sometimes all I want to do is solve the problem at hand and write some damn code instead of trying to game the system and look better on paper. I know that I’m not the only one who shares this sentiment.
However, I understand that a high developer productivity is crucial because it enables companies to innovate quickly, respond to market demands, and maintain a competitive edge. Developer productivity is the key to transforming ideas into functional software efficiently and effectively. When developers are productive, they can deliver features and fixes more rapidly, resulting in a better user experience and higher customer satisfaction.
This is especially true if you’re a startup in a David versus Goliath situation. If you don’t move fast, you may end up on a skewer.
That’s where APIs come in. A set of well-thought and well-documented APIs can lead to an insane productivity boost during development.
Martin Kleppman writes in Designing Data-Intensive Applications, “In a complex application there may be more intermediary levels, such as APIs built upon APIs, but the basic idea is still the same: each layer hides the complexity of the layers below it by providing a clean data model. These abstractions allow different groups of people—for example, the engineers at the database vendor and the application developers using their database—to work together effectively.”
For the uninitiated, APIs are how apps or services talk to each other. APIs are also used to refer to public methods or functions in libraries used within an app. There are various shapes, sizes, and colours when it comes to APIs, but the concept is the same.
As a developer, nothing makes me happier than finding an API that does exactly what I need. Where I would have spent 30 minutes writing code to do something, I can do it in 5 minutes by calling an API. Of course, there are other things to consider usually (e.g. is the library that offers the API well-maintained, or if it’s a REST API - how much response time is it adding, etc.) but in general, APIs are pretty neat.
Each team or service should expose an API portal or share OpenAPI specs to promote transparency and facilitate collaboration across different teams. Using tools that enable automatic API documentation saves time and ensures the documentation is always up-to-date. An example of such a tool is Python’s FastAPI framework, which automatically exposes an openAPI spec for all your APIs. If you are not using such a framework, there are also tools like Levo which can document APIs by observing runtime API traffic.
Adopting an API-first development approach ensures APIs are well-structured and meet necessary requirements from the outset. Rigorous testing of APIs is essential for robustness, including scheduling regular security tests to identify and address potential vulnerabilities.
It is also important to implement measures to ensure Personally Identifiable Information (PII) is not leaked through APIs. Leaked PII can lead to legal penalties, financial losses, reputational damage, and loss of customer trust.
Imagine a future where every app or service you use exposes its own API. Apple is already encouraging developers to do this on their platform with App Intents. When all apps have an API, all one would need to do is assemble different apps and services together like Lego bricks to build what they want rapidly.
While REST APIs still dominate the microservices world today, lots of new schema-first API frameworks like GraphQL and gRPC have also made their way out into the open and are slowly gaining traction. Schema-first API frameworks are most likely the way forward.
There are also several tools like Postman, Insomnia, and Bruno which are essentially like curl with a GUI that also include the ability to save and share collections of APIs. These tools are already mainstream but I think more developers and teams will start using such tools.
Security researchers will come up with new fuzzing techniques to find and test APIs. There are already some great tools like Schemathesis which do schema conformance tests and tools like ZAP which can dynamically fuzz APIs, but I expect more innovation and progress in this space.
Conclusion
Effective API management is indispensable for enhancing developer productivity in modern software development. Embrace API-driven development practices, invest in robust API management strategies, and stay informed about evolving technologies to unlock your team's full potential in building the applications of tomorrow. Boost your productivity with APIs today!
Levo offers a complete API platform – from agentless discovery to security testing in CI/CD. Use this link to book a demo and help your developers reach the peak of their productivity with Levo.