Esta Api foi criada com o objetivo de conhecer a linguagem ReasonML e sua utilização expondo uma WebApi real com conexão em um repositório de dados.
Siga as instruções abaixo para executar o projeto localmente na sua máquina para desenvolvimento e testes.
Para execução deste projeto localmente certifique-se que você tenha instalado:
-
NodeJs LTS: Obtenha a versão LTS do Node para garantir o suporte a alguns recursos utilizados;
-
MongoDb: Este projeto utiliza como repositório de dados o MongoDb. Portanto, você precisa garantir que ele esteja sendo executado localmente.
Após clonar o repositório, tenha certeza de que ele seja seu diretório atual e execute o comando para instalar as dependências:
npm install
O BuckleScript foi adicionado como uma dependência local. Isso significa que tudo deveria funcionar corretamente. Mas sabemos como é esse mundo de desenvolvimento de software... Caso tenha problemas para execução do código ReasonML, tente instalar o bs-plataform globalmente.
npm install -g bs-platform
Sugiro que você utilize o Docker para a execução do MongoDb localmente.
- Docker: Instruções para instalar e executar o Docker localmente.
# Após instalar o docker, você pode utilizar o seguinte comando para ter um container executando o mongodb localmente:
$ docker run --name mongodb -p 27017:27017 -d mongo:bionic
# Uma vez que o container estiver sendo executado, conecte-se nele para a execução dos passos seguintes:
$ docker exec -it mongodb bash
Com o MongoDb instalado e sendo executado localmente, será necessário criar o banco de dados e a collection (isso poderia ser feito mais facilmente com uma imagem pronta, mas não tenho tempo pra tudo isso agora).
# Inicie uma nova sessão do MongoShell
$ mongo
# Crie o banco de dados (basta usá-lo na verdade)
$ use publicbiz
# Crie a collection de teste
$ db.createCollection("templates")
# Insira alguns dados para testar
$ db.templates.insert({ name: "Template 1" })
$ db.templates.insert({ name: "Template 2" })
$ db.templates.insert({ name: "Template 3" })
Agora que já instalamos o compilador e temos o banco de dados executando localmente, basta executar o servidor:
$ npm run serve
Faça uma chamada http no endereço principal para obter uma mensagem básica de que tudo está funcionando corretamente.
$ curl http://localhost:9000/
Faça uma segunda chamada que conecta no MongoDb usando o módulo ReasonML que criei e obtém os documentos da collection templates da base publicbiz:
$ curl http://localhost:9000/mongodb
- ReasonML - eason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.
- NodeJs - Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- MongoDb - MongoDB’s flexible document data model makes working with data intuitive, whether you’re building an app from scratch or updating an existing one.
- ExpressJs - Fast, unopinionated, minimalist web framework for Node.js
- Leonardo Felicissimo - leomfelicissimo
This project is licensed under the MIT License - see the LICENSE.md file for details