O Dropbox anunciou a API versão 2, que agora suporta quatro SDKs: Swift, Python, .NET e Java. De acordo com o Dropbox a API v2 é mais simples, consistente e mais compreensiva. Atualmente a API v2 não suporta o JavaScript e Objective-C.
Dentre as mudanças na API v2 do Dropbox está o uso mais extensivo do verbo HTTP POST, inclusive para endpoints que retornam dados estruturados, tais como obter informações da conta, ou os metadados de um arquivo:
curl -X POST https://api.dropboxapi.com/2-beta-2/users/get_current_account \ --header "Authorization: Bearer" \ --header "Content-Type: application/json" \ --data "null" curl -X POST https://api.dropboxapi.com/2-beta-2/files/get_metadata \ --header "Authorization: Bearer " \ --header "Content-Type: application/json" \ --data "{\"path\": \"/cupcake.png\"}"
Todas requisições assumem o uso de JSON e retornam dados JSON estruturados em seu corpo. Um novo código de erro não padrão foi adicionado para manipular requisições que falhem por qualquer razão específica. Nesses casos, a API retornará um código 409, que o Dropbox diz ter a vantagem de não ser padrão, por isso vai ser invocado junto por proxies ou bibliotecas do cliente.
A API v2 também inclui novas funcionalidades, tais como:
- Ids de arquivos para permitir que os desenvolvedores identifiquem um arquivo mesmo se o arquivo for movido e pode ser usado para substituir o uso do caminho;
- Links compartilhados agora podem ser listados e revogados, anteriormente só era possível criá-los; além disso, desenvolvedores poderão compartilhar pastas e gerenciar permissões e associações;
- Uma nova API explorer permite que desenvolvedores testem chamadas através do navegador para descobrir novas funcionalidades.
Uma funcionalidade que a API v1 do Dropbox tinha e que não está na v2 ainda é o suporte para intervalo de cabeçalhos em arquivos/download. Mas esta funcionalidade já encontra-se nos planos de inclusão.
Como mencionado, a API v2 do Dropbox não suporta Objective-C e JavaScript. Inicialmente o Dropbox declarou não ter planos para lançar a v2 para o Objective-C, confiando assim na interoperabilidade do Objective-C Swift. Por outro lado, parece que a o SDK da API v2 para o Swift ainda não está pronta para ser usada no Objective-C devido a existência de alguns problemas de compatibilidade com structs e enums do Swift. Em contra partida, o suporte a JavaScript está prevista, mas ainda não está claro quando estará disponível.