Usability Review: Dropbox API

Review of: Dropbox API

Reviewed by:
Rating:
4
On June 10, 2014
Last modified:June 10, 2014

Summary:

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.

Last updated by at .

6 thoughts on “Usability Review: Dropbox API

  1. Steve Marx

    Thanks for doing this! Clearly there’s a lot of work we could do to improve things for Node.js developers. Frankly, I’m impressed that all three developers managed to work with the Datastore API despite there being no library (from us or a third party) for using that API with Node.js.

    I’d be curious to see how a similar usability study would go if a supported language/library were used (e.g. Python or Objective-C).

    Feel free to reach out if you have any questions about the Dropbox platform: smarx@dropbox.com. I work on Dropbox’s developer relations team.

    Reply
    1. Bruno Pedro Post author

      Thanks for the comment, Steve!

      I’m sure the results would be better it a supported language were used but Node.js is increasingly gaining popularity and it would be great if Dropbox started supporting it.

      Reply
  2. Pingback: Usability Review: Dropbox API | API Usability Testing – The fastest way to get feedback on your API

  3. michael pearson

    Nice writeup and tests! I’d love to see a more intuitive chunked upload interface in the node library (without micro-managing the chunk cursor) – a major gotcha in uploading large files with writeFile in node’s async environment is keeping these enormous buffers in memory, which doesn’t scale out too well.

    Reply

Leave a Reply