API-PARKING
Esta API é trabalho final realizado no âmbito da UTC de Sistemas Distribuídos lecionada pelo professor Pedro Pinto, vamos criar uma API para gerir estacionamentos.
Aplicação desenvolvida em Node.js, autenticação via JWT, banco de dados MongoDB (NoSQL) e o IU Swagger que permite qualquer pessoa visualize e interaja com os recursos da API sem ter nenhuma lógica de implementação.
Conforme alguns requisitos da turma do professor, esta API terá em consideração os seguintes pontos:
- MongoDB : um programa de banco de dados orientado a documentos multiplataforma disponível na fonte;
- Swagger : Linguagem de descrição de interface para descrever APIs RESTful expressas usando JSON.
- Heroku: é uma plataforma como serviço (PaaS) baseada em um sistema de contêiner gerenciado para criar, executar e gerenciar aplicativos modernos na nuvem. A flexibilidade da plataforma permite que você use sua linguagem ou estrutura preferida, bem como padrões de arquitetura populares, como microsserviços.
E como opcional, a implementação de:
- Autenticação : o ato de provar uma afirmação, como a identidade de um usuário do sistema de computador.
- GraphQL : uma linguagem de consulta e manipulação de dados de código aberto para APIs e um tempo de execução para atender consultas com dados existentes.
Vamos começar…
1º Passo Instalar o Nodejs (aqui).
2º Passo Criação da base de dados no MongoDB
Criar conta aqui!
Criar um projeto
Criar um novo projeto
Adicione os membros necessários. A própria conta será adicionada como proprietária do projeto em breve.
Criar um Cluster
Adicionar um utilizador a base de dados
Adicionar acesso à rede.
Ver a conexão.
Desenvolvimento de API
Para começar vamos instalar as dependências necessárias para o desenvolvimento do projeto.
a) Para iniciar o projeto co o seguinte comando:
npm init -y
b) Em seguida instalar:
- bcrypt ~ Uma biblioteca para ajudá-lo a fazer o hash de senhas.
- body-parser ~ Uma biblioteca para ajudá-lo para criar middlewares.
- dotenv ~ é um módulo de dependência zero que carrega variáveis de ambiente de um
.env
arquivo para oprocess.env
. - express ~ é uma estrutura de aplicativo da web Node.js mínima e flexível que fornece um conjunto robusto de recursos para aplicativos.
- jsonwebtoken ~ Uma implementação de JSON Web Tokens .
- mongoose ~ é uma ferramenta de modelagem de objetos MongoDB projetada para funcionar em um ambiente assíncrono.
- swagger-jsdoc ~ Esta biblioteca lê seu código-fonte anotado em JSDoc e gera uma especificação OpenAPI (Swagger) , “@6.1.0 é a versão usada nesse projeto”.
- swagger-ui-express ~ Este módulo permite que você forneça documentos de API gerados por swagger-ui gerados automaticamente a partir do express, com base em um
swagger.json
arquivo.
implementando o seguinte comando:
npm install bcrypt body-parser dotenv express jsonwebtoken mongoose swagger-jsdoc swagger-ui-express ejs express-graphql graphql
c) Em seguida instalar nodemon que é uma ferramenta que ajuda a desenvolver aplicativos baseados em node.js reiniciando automaticamente o aplicativo de nó quando mudanças de arquivo no diretório são detetadas.
Instalar o nodemon como uma dependência de desenvolvimento com o seguinte comando:
npm install nodemon -D
E adicionar a seguinte estrutura de pastas e ficheiros.
Aplicação [Home — EJS]
Aplicação [Swagger]
Aplicação [Graphql]
Conclusão
Está pronta a nossa API!
Este projeto está disponível no repositório do GitHub! API-PARKING