Daniel: We should be conscious not to expose too much of the internal representation of our data model. So how can we come up with a better exposure of our domain model as part of the API request and response? I think really it's what you would call API first nowadays or put it differently. You should have a separate API interface, whether it's open API or something else. Daniel: It's much easier if your brain is working in a conceptual mode, like you're doing your DTT design,. If you're more involved, currently in requirements, discussions, and all these things, it's much easier to build an API which doesn't leak technical information.
“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.