After a great keynote session at the Intuit Tech Forum, 300 engineers packed the Building 6 conference room for a talk by Tony Lam, CEO of Reverb Technologies. Tony shared best practices and advice on how to design great API’s to empower large development teams-- great advice indeed for us at Intuit as we are well underway on a company-wide services journey. Here are my takeaways from Tony’s great talk.
Great developers are lazy and want to avoid doing the same things over and over. If you build great API’s and do the right things, your development teams can be more efficient. Hammock-driven development: do the right things upfront so the downstream things are easier. Service-based software is the new normal for development. Clean interfaces allow you to integrate systems developed with different languages.
But great API’s must (1) be easy to understand, (2) easy to try, and (3) easy to build against.
- Façade: build a beautiful, simple interface to your system. Tony stresses the importance of having a great façade, even if the underlying system is complicated and not well decomposed.
- Describe every aspect of your API’s interface, and get feedback from the consumers early. Swagger— just do it.
- Build your client and server simultaneously with Swagger codegen. JSON + Mustache Templates generates working code that can serve as the foundation for your code.
- Documentation is a must-have. And you should update the documentation at the same time as the code. Annotations in Java will get picked up automatically in swagger.
- Client SDK’s are the fastest way to integrate with your service.