#GlueCon 2014 Notes: API First: Designing your Product from the Platform Out – Kirsten Hunter, 3Scale
API First: Designing your Product from the Platform Out – Kirsten Hunter, 3Scale
- APIs are often an afterthought for developers
- You will always have another client
- Taking an API first approach is the next level of MVC and allows for quick iterations
- “I can’t do that. It’s Hard”
- “We’ll never have a mobile client”
- Examples
- LOB – Cloud printing and mailing service. API as a product. Everything internal and external uses REST APIs
- Instagram – They were mobile first, but became API-focused due to heavy need for code reuse between web and mobile platforms
- 3Scale – API management company
- Etsy – Made $1B last year. They moved to API-first over the course of a year after dealing with lagging APIs and duplicate code
- Results of going API First
- Encourages communication between backend and mobile developers
- Testing around APIs will be great if everyone is using it (and depending on it)
- How to get developers to move from an old version to a new version of an API? You can’t sunset an API version. So, create goodies and incentives to encourage them to move to the new version (capabilities, better examples)
- Should you consider SDK first? No, developers should use the API and understand it (and HTTP/REST), not hide it in an SDK that makes it harder to debug
- Take the time to go API First now, to save time in the future regarding bugs and duplication of code
- Anytime you do something that developers don’t like, they go away. This is usually about inconsistency between APIs
- When starting from use cases, you have less organic API growth and therefore lack of constant change vs. the “we need an API, make one for our mobile developers”
- Backend engineers are most concerned about stability (it does what it is supposed to do), not about usability (what you want to do)
- API design is definitely an “area of expertise” – not everyone has it. It’s important to get input from those who actually use it
- Developers aren’t “lucky” to use your API. They are your partners – honor them by respecting their time by building a great developer experience