Often, APIs are the first point of contact for developers and significantly impact Developer Experience(DX). Developer-friendly APIs will improve adoption, retention and might also instill a good word-of-mouth awareness among the developer community. At the end of the day, an API has to provide an interface using which products/ applications can talk to each other. Adding a few more traits to this baseline definition does not only deliver a good interface but also provides a great developer experience.
This is the first and foremost factor for successful APIs. Neatly documented endpoints with clear descriptions enable developers to understand and leverage them easily. Interactive API documentation stands out and is beneficial when you have a lot of APIs to offer. At the minimal, the capability to try it out in POSTMAN or other REST clients could save time for the developer and can make things easier.
Good documentation also covers things that the developers might miss hurriedly (most probably during their 1st pass) for example - rate limit policies, paginations, authentication, etc. It should drive developers towards the pit of success by default
Change is inevitable. It is good for progress. However, it becomes our duty to convey changes to developers as and when they occur. Most importantly, being mindful of users who have already consumed the API and introducing changes gracefully can alleviate major issues.
Communicating it via developer portals, changelogs, forums, etc. will significantly reduce friction.
I wish to live in a world where there were more 418-like status codes. However, it is always recommended to stick to meaningful error codes that convey upfront information to the user without them having to sherlock it.
Developers will be able to connect the dots and solve the issue at a much lesser time if the error code makes sense. The advantage of such status codes is that it implicitly delegates problem-solving to the developer and makes them informed in that situation. Otherwise, this might end up as support tickets and forum queries.
Chatty APIs will lead to making multiple network calls to perform a single task. This ideally should be one single API call. On the other hand, chunky APIs end up providing too much information in one single call. It is recommended to avoid the extremes
These are a few tips that I follow to ensure that developers don't wrestle with the APIs. I would like to hear your thoughts as well in the comments section! 😀❤️