10 Questions to Consider When Using an API
AT&T has had a RESTful API Platform available for a few years and it has been a continuous process of soliciting feedback and making improvements. Through that effort, I have a pretty good idea about what developers think about and the questions they ask when integrating an API. Here are the top 10 questions answered.
1. What is your use case?
As a developer, you need to constantly look at new technologies and evaluate them. It’s also important that before you start your search think about your use case and what you might ideally need the API to do (e.g. Are you looking to add multimodal support or to include notifications?).
2. Is there a match between your coding skillset vs. languages supported? Are there good SDK’s/tools available?
These considerations are linked. Most APIs support a few languages and have some basic tools. For speech, AT&T supports cURL, PHP, Ruby, Java and C# -- which seems typical. For WebRTC, AT&T has created a JavaScript SDK and for our M2X APIs we are offering a visual tool, Flow Designer (that is based on Code Red). There seems to be particular growth of these visual tools that really do accelerate development.
3. What is the API functionality?
This may be kind of obvious, but just looking at one API (like push or notification APIs) there are a variety of possible features and it is important to understand what functionality is supported and decide if it best meets your needs. It is also important to understand authentication methods.
4. Is there clear, complete, and concise documentation available?
We get a lot of feedback from hackathons, so perhaps we are particularly sensitive to this. Before jumping into work, it is worthwhile to scan it thoroughly. Things to consider: Does it include full API requests along with returned metadata? What about error handling?
5. Is there useful sample code available?
Although RESTful APIs can be straight-forward, sample code is obviously tremendously useful (and sample apps are even better).
6. Is the API popular and is there good community support?
It can be fun to code with new APIs, but ideally the API will be popular with a solid community who can give tips. Also, see if the support site has a strong FAQ area.
7. What support is provided by the provider?
Many developers first like to go to Stack Overflow or the API provider’s community, but at times you may need to get additional help. Find out if they offer immediate support like live chat or phone or a trouble ticket system.
8. What is the cost and limitations?
Fortunately, many APIs offer free sandbox access and often some minimal amount of API usage for free. In addition to costs, research what TPS limits or other restrictions are put on usage.
9. What analytics are available?
Depending on what you are doing and what other forms of analytics you have available, this could be a very important consideration.
10. Will the API be supported through the future and is there a roadmap for enhancements?
This may be tough to determine from the developer site, but hopefully you can find a history of enhancements and perhaps some indication of future plans from blogs or event recaps.
I encourage feedback, so let me know in the comments if there are other important questions and if these questions helps guide your future work.