My latest book is called The Language-Oriented Approach to API Development, and you can read it online for free now. It’s about a different way to think about the API development lifecycle. In this approach, people create their own language for the way they talk about APIs and capture that language in a DSL. This stands in contrast to authoring API designs in OpenAPI and using linting tools to ensure the design meets the API standards for an organization or team.
Why do we need a new approach?
This language-oriented approach may sound like a new idea, but there are companies already doing this. This book isn’t about proposing something new, but rather using an existing term to describe an existing practice.
The goal of this book is to give language and visibility to an approach that many successful companies are using and provide people a way to approach API design and API development that might be a better fit that existing industry-wide practices.
But that seems like a lot of work to create a DSL!
We’re always creating a language for our API development process. Normally, we apply that language to OpenAPI documents and ensure our language is consistent with linting tools. That work is always happening.
It’s on the API designer to learn OpenAPI, learn the standards, know how to author API designs using those standards, and rely on tools to make sure everything was followed correctly. While the upfront work may be simpler, the long term costs for the designer can be greater.
The language-oriented approach focuses on the DSL as the starting point for API design. People author API designs in the same language they use to talk about them. Then tooling generates an OpenAPI document from the DSL, resulting in a consistent and conformant OpenAPI document.
This approach does not come without tradeoffs and costs, which I discuss in the book. But I think those costs are well worth considering for some organizations or teams.
Check it out!
I hope you check out the online book. If you do, please let me know of any thoughts or comments you have. I’d love to hear from you!