Parse server + Heroku + MongoDB

Introdução

editar


Esse seminário tem como objetivo apresentar a API da Parse, dando deploy pelo Heroku e para armazenamento de dados utilizando o MongoDB. O Parse é uma API poderosa para backend de plataformas distintas, como por exemplo, Android, iOS, PHP, Arduino, MacOS, Unity, entre outras. Ela é bastante utilizada por startups e acabou chamando atenção do Facebook, que por volta de 2011, acabou adquirindo a Parse por US$ 85 Milhões. Esse interesse foi gerado por conta das mais de 100 mil aplicações mobile que utilizavam a API do Parse no backend de seus projetos. Além disso, através da sua ferramenta de análise de dados, era possível prever qual poderia ser o próximo aplicativo móvel a estourar no mercado, assim como o Instagram e o Snapchat. O Parse consiste em uma API para facilitar a comunicação de um banco de dados com sua aplicação demandando menos esforço de trabalho para sua implementação.

Instalação e Configuração do Parse Server

editar

Passo 1

editar

Para facilitar o que será feito ao longo da instalação, devemos primeiramente criar uma conta no Heroku. Após feito o Login devemos criar um novo app, clicando em create new app, depois damos o nome a nossa aplicação e clicamos em create app.

- Imagem

Após criado o novo aplicativo, vamos na aba resources. Na caixa de texto de Add-ons, escrevemos Mlab, com isso mostrará o Addon mLab MongoDB. E o selecionamos. Abrirá uma janela, clicamos em provision após feito isso, o heroku perdirá para que você confirme um cartão de crédito para poder adicionar o Addon, não haverá nenhuma cobrança no seu cartão. Feito isso iremos em settings, Reveal Config Vars. Na variável MONGOLAB_URI, iremos copiar o link e deixar salvo para o próximo passo. E iremos criar outras variáveis. Primeira variável será, DATABASE_URI e como valor iremos colar o link da variável MONGOLAB_URI. Como segunda variável, APP_ID que conterá o ID da sua aplicação como exemplo, ExemploGCS. Epor ultimo, MASTER_KEY, uma senha qualquer.

- Imagem

Passo 2

editar

Após feito o Passo 1 iremos dar fork do Parse Server para que possamos fazer as modificações necessárias para apontar pro nosso banco de dados.

Depois de ter feito o fork, iremos clonar o repositório. Após o clone iremos na pasta parse-server-example, e abriremos o arquivo index.js é lá que iremos configurar nosso banco, variáveis de segurança etc.

- Imagem

No campo databaseUri, iremos colar o link da variável MONGOLAB_URI do heroku.

No campo APP_ID, iremos colocar a ID da nossa aplicação 'ExemploGCS'

No campo MASTER_KEY, uma chave como uma senha.


Iguais as variáveis criadas no heroku.

Feito isso iremos salvar as alterações e dar push pro nosso repositório.

Passo 3

editar

Feito o Passo 2, agora é hora de dar deploy do nosso server no heroku. Na dashboard do heroku iremos na aba Deploy. O jeito mais fácil de dar deploy é pela sua conta do Github, ou seja em Deployment Method Selecione Github. Logue-se na sua conta e selecione o repositório pase-server-example que foi "forkado". Após ter selecionado, o heroku irá instalar a aplicação do parse. Feito isso já temos nosso server remoto assim como nosso banco de dados. Agora só integrar com alguma aplicação. Como exemplo iremos utilizar uma aplicação Android.

- Imagem

Integração com a Aplicação

editar

Exemplo Android

editar

Primeiramente, criamos uma classe ParseInitializer.java com herança da classe Application dentro da Controller do projeto sobrescrevendo o método OnCreate conforme abaixo:

public class ParseInitializer extends android.app.Application {

    @Override
    public void onCreate(){
        super.onCreate();

        // Establish connection with parse server
        Parse.initialize(new Parse.Configuration.Builder(this)
                .applicationId("NomeDaAplicacao")
                .server("EndereçoDoServidorDaAplicacaoNoHeroku")
                .clientKey("ChaveDoCliente")

                .build()
        );

    }
}

Feito isso, devemos nomear a aplicação com o caminho para a classe ParseInitializer, de modo que ela seja inicializada no momento da inicialização da aplicação.

<application
        android:name="NomeDoPacoteDaAplicacao.controller.ParseInitializer"
</application>

Para integração com outras plataformas, API reference, SDK Download visite a pagina do Parse

MongoDB, Instalação para Exportar e Importar Dados

editar


Algo muito útil no MongoDB é justamente poder importar e exportar os dados da aplicação. Para tal iremos instalar via terminal do Ubuntu.

Primeiro:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Criar um arquivo de lista para o MongoDB:

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse"

Recarregar os pacotes locais:

$ sudo apt-get update

E para instalar o pacote completo do MongoDB:

$ sudo apt-get install -y mongodb-org

Para um tutorial mais completo visite o manual do MongoDB.

Podemos importar e exportar arquivos em três saídas: Binário, JSON ou CSV.

Para importar toda a DataBase em Binary:

$ mongorestore -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -u <user> -p <password> <input db directory>

Para exportar toda a DataBase em Binary:

$ mongodump -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -u <user> -p <password> -o <output directory>

Para importar um conjunto de dados em Binary:

$ mongorestore -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -u <user> -p <password> <input .bson file>

Para exportar um conjunto de dados em Binary:

$ mongodump -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -c <collection> -u <user> -p <password> -o <output directory>

Para importar um conjunto de dados em JSON:

$ mongoimport -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -c <collection> -u <user> -p <password> --file <input file>

Para exportar um conjunto de dados em JSON:

$ mongoexport -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -c <collection> -u <user> -p <password> -o <output file>

Para importar um conjunto de dados em CSV:

$ mongoimport -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -c <collection> -u <user> -p <password> --file <input .csv file> --type csv --headerline

Para exportar um conjunto de dados em CSV:

$ mongoexport -h ds021650.mlab.com:21650 -d heroku_87hhmvt4 -c <collection> -u <user> -p <password> -o <output .csv file> --csv -f <comma-separated list of field names>

Onde <user> é o usuário criado na aba users na dashboard do mongodb, assim como <password> para a senha criada. E <collection> o nome do conjunto de dados, por exemplo "Users".

Referências

editar