APIs e Microsserviços

28 fev, 2014

Série DropboxAPI: Lançamento easyJavaDropboxAPI for Java Developer – Parte 04

Publicidade

Olá, pessoal!

É com muito prazer que venho apresentar pra vocês mais um trabalho da minha start-up: a ITS. Estamos trabalhando bastante com o Dropbox aqui para soluções corporativas, e até final do ano devemos lançar uma plataforma para comunidade que vai usar a tecnologia. Nesse trabalho percebemos que era necessário criar uma API Java para o DropboxAPI. O motivo? Tínhamos muito trabalho sempre que um projeto ia precisar do Dropbox API, aí decidi criar uma API, que chamei de easyJavaDropboxAPI. Como sabemos, qualidade de software, produtividade e manutenção é um desafio sempre e aqui acreditamos bastante no aprendizado contínuo para melhorar o que fizemos ontem, hoje e amanhã.  A seguir explico mais sobre a API e mostro um exemplo simples de uma aplicação Java + easyJavaDropboxAPI.

easyJavaDropboxAPI

Tudo começou de uma simples ideia e quando fui dormir com um problema, achei a solução durante os sonhos. Pode acreditar, isso é verdade. Dei inicio aos estudos e achei a solução na API do Dropbox. Infelizmente não posso entrar em detalhes do negócio, pois foi para um projeto coorporativo que usamos. Outros projetos chegaram e precisamos da API, então certa hora eu disse “pessoal, precisamos criar uma API Java para o DropboxAPI. Já temos vários projetos usando e vai ser complicado dar manutenção”. Antes de tornar a easyJavaDropboxAPI pública, ela tinha outro nome, easyDropboxAPI. E por que eu deveria usar a easyJavaDropboxAPI e não diretamente API DropboxAPI?

É difícil responder a pergunta acima, mas vou mostrar os motivos que nos levaram aqui na ITS a termos uma API.

Problemas

Produtividade

Estamos crescendo com soluções enterprise usando Dropbox API e já estávamos entrando no terceiro projeto quando vimos que o custo de manutenção estava começando a aparecer. No início não tínhamos noção do quanto a API poderia ajudar em outros projetos e foi preciso usar em um projeto interno, testar por um período não só a funcionalidade, mas outros fatores de negócio. Por isso que não começamos criando uma API, mas a coisa “virou” e agora queremos ganhar tempo, e com a API é muito simples, sair usando em meia dúzia de linhas e em poucos minutos você já está conectado ao Dropbox.

Manutenção

Agora não é preciso ficar preocupado com a manutenção do código que conecta com a API do Dropbox. Como o Dropbox team está sempre atualizando e lançando novas features, temos apenas um único local que vai ter essa feature atualizada e os projetos que precisarem faz o update do .jar para a versão mais recente.

Desenvolvimento ágil

Na interface temos os métodos mais comuns e objetos do Dropbox API, que é a base do serviço; então um desenvolvedor novo precisa inicialmente entender pontualmente e à medida que ele for evoluindo vai entrando nos detalhes. Por exemplo, se você pretende listar os arquivos que está no diretório /home do seu Dropbox, o que precisa ser feito?

  • 1. Saber o que é um token e gerar um;
  • 2. Chamar o método listFiles que retorna todos os arquivos do diretório informado

Cada elemento no list é um arquivo do diretório.

Esses três pontos foram o suficiente para termos API e impactou bastante no dia a dia desenvolvimento. Vamos ver na prática?

  • 1. Crie um simple maven project;
  • 2. Adicione a dependência no pom.xml

dropboxeasyjavaapipom

<dependency>
			<groupId>com.its.api</groupId>
			<artifactId>easyJavaDropboxAPI</artifactId>
			<version>1.0.0</version>
		</dependency>

3. Adicione o nosso repositório no pom.xml

<repositories>
  <repository>
        <id>easyJavaDropboxAPI</id>
        <url>https://raw.github.com/ITSStartup/easyJavaDropboxAPI/mvn-repo</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

4. Crie uma classe Java com o método main

public class DropboxMain {

	public static void main(String[] args) throws DbxException {
		String token = "TOKEN HERE";
		EasyJavaDropBoxService easyJavaDropBoxService = new EasyJavaDropBoxService("/myfolder", token);
		
		List<DbxEntry> listFiles = easyJavaDropBoxService.listFiles();
		for (DbxEntry file : listFiles) {
			System.out.println(file.name);
		}
	}

}

5. Gere o token seguindo as instruções:

apps.camilolopes.com.br/dpboxapiweb

6. Rode aplicação e verá:

dropboxconsoleasyapi 

Pronto, os arquivos que tenho na pasta são listados. Simples, não?

O projeto de exemplo está disponível no repositório da ITS e caso queriam saber mais sobre API, visite o repositório: https://github.com/ITSStartup/easyJavaDropboxAPI

Mande o seu pull request!

Abraços!