Well designed API that fits well into its target use cases. Documentation could be improved, making developer on boarding experience much smoother.

We’ve teamed up with API Usability Testing to offer you usability reviews for different APIs. API Usability Testing offer remote API usability testing where tests are performed by a broad range of software developers who have different experience and qualifications.

We’re starting with the Dropbox API and we’ll be doing it for other providers on a regular basis. Please get in touch If you’d like to see a review of a specific API.

Dropbox API usability tests were performed by developers with a range of experience six to eight years working with all the major programming languages. All tests were done using Node.js on three different platforms:

The test is divided into five sections, starting with authorization and ending with writing a record into a Dropbox datastore.

Obtaining authorization credentials

All testers reported that they couldn’t find an official Node.js SDK or a tutorial on how to use this programming language to interact with the Dropbox API.

On the positive side, being able to generate OAuth credentials without writing any code is much appreciated and really helps when you’re starting to write a client.

Obtaining information about the authorized user

This was a fairly simple task to test, as reported. All developers could easily access information about the authorized user by following the appropriate documentation.

Uploading a file

Although the task looks relatively simple, some of the testers had trouble using 3rd party modules. In one of the cases there was a problem with the file name itself and in another case, a specific object attribute that should be public was found to be private.

Another note is related with the dropbox-js Node.js module: the source code is available under the official Dropbox GitHub account but the module itself is considered unofficial.

This might create a confusion among developers because it’s not clear why this particular module is under the official Dropbox GitHub account.

Creating a new datastore

Although the available documentation was considered satisfactory, lack of availability of this feature on 3rd party modules made the task complex to handle.

Some of the testers had to spend 1 hour trying to understand why the 3rd party module wasn’t behaving as expected and then implemented the feature from scratch.

Writing a record into the datastore

Some of the developers reported that they couldn’t really understand how to push information into the datastore because they couldn’t understand the correct syntax.

The issue is with the documentation that might not be the best for an audience that doesn’t know what a delta is and is more used to deal with tables and records.

Because there’s no specific reference about creating a record it might be hard to associate the /datastores/put_delta method with record creation.

Summary

The biggest issue developers found is related with the lack of an official Node.js module. Without an official SDK they had to put bits and pieces together from different Node.js modules to make things work.

The official documentation didn’t add much value because it lacked a specific Node.js tutorial or, at least some examples using this programming language, testers reported.

Another suggestion is related with 3rd party modules, where Dropbox should officially test and approve the SDKs that are linked from their documentation.

All in all, Dropbox API is well designed and fits well into its target use cases. Documentation could be improved, making developer on boarding experience much smoother.

Original test results

The original detailed test results, as reported by API Usability Testing can be found at the following links:

Each report provides detailed information about the tasks performed and also the code used to perform different tests.