Increasingly, our apps are used not by humans but by other apps - via their APIs. Thus it is increasingly important that your APIs are well-designed and easy to consume for other developers.
Adding a few API endpoints to your application for internal consumption is easy. Creating APIs that other developers will love to use is a much harder problem. You’ll need to think about solving variety of topics such as versioning, authentication, response structure, documentation and more. There are existing good practices for each of them, but often developers who haven’t done a lot of API work aren’t familiar with them.
My talk will show how to find reasonable solutions for those problems. I will talk about importance and intricacies of good documentation and why auto-generating it from your code is useful. I’ll show how to make use of familiarity by using standards such as JSON API and show benefits brought by its standardized response structure that makes lives of 3rd-party developers easier.
Authentication will be discussed, including introduction to OAuth2. I’ll talk about when OAuth2 is a good choice and when not, as well as dig into some trickier parts of it. We’ll then move on to versioning and how you can change your API without breaking all existing apps. Finally we’ll wrap it all up by looking at some major APIs that are using the same principles.