API providers have to maintain multiple versions of their services. How do you test if you have multiple versions that you have? It's an API provider. Is there anything special that you have learned throughout your journey to test all these different permutations of APIs thatyou have? Yeah. You know, we'll have a flame war on the common sections. But let's say they're two schools. One loves versioning or having some kind of version identifier visible in either your endpoints or your URLs and messages being transferred. And some people would say it's just the most evil thing you can do.
“A good API doesn’t expose the internal data models or internal logic too much. And the more your clients are not under your control, the less you want to do that."
Daniel Luebke is a software architect and the co-author of “Patterns for API Design”. In this episode, we discussed some API design patterns and best practices taken from his book. Daniel first shared the importance of understanding domain requirements for building APIs and several API and message best practices, such as API first design, how to design loosely coupled message exchanges, the tradeoff between generic and specialized API operations, and the risk of exposing too much internal data model and logic in our APIs. Daniel also introduced the microservices domain-specific languages (MSDL) as an alternative to Open API for specifying APIs independent of the technology implementation. Towards the end, Daniel explained the importance of defining the API lifecycle, how to support backward compatibility, and the different API versioning strategies we can use to evolve our APIs.
Listen out for:
- Career Journey - [00:04:17]
- Writing API Design Book - [00:08:26]
- Loosely Coupled Message Exchanges - [00:12:53]
- API Design Best Practices - [00:15:31]
- Message Best Practices - [00:20:48]
- Generic vs Specialized API - [00:24:51]
- Exposing Internal Data Model - [00:27:13]
- Microservices Domain-Specific Language - [00:30:37]
- API Evolution - [00:33:23]
- API Versioning - [00:39:27]
- 3 Tech Lead Wisdom - [00:44:27]
_____
Daniel Luebke’s Bio
Daniel Lübke is an independent coding and consulting software architect with a focus on business process automation and digitization projects. His interests are software architecture, business process design, and system integration, which inherently require APIs to develop solutions. He received his PhD at the Leibniz Universität Hannover, Germany, in 2007 and has worked in many industry projects in different domains since then. Daniel is author and editor of several books, articles, and research papers; gives training; and regularly presents at conferences on topics of APIs and software architecture.
Follow Daniel:
_____
Our Sponsors
Are you looking for a new cool swag? Tech Lead Journal now offers you some swags that you can purchase online. These swags are printed on-demand based on your preference, and will be delivered safely to you all over the world where shipping is available. Check out all the cool swags available by visiting techleadjournal.dev/shop. And don't forget to brag yourself once you receive any of those swags.
Like this episode?
Show Notes: techleadjournal.dev/episodes/125
Follow @techleadjournal on LinkedIn, Twitter, and Instagram.
Buy me a coffee or become a patron.