Skip to content

rjuliuz/devAPI

Repository files navigation

DevApi

DESAFIO NODE DEVAPI

Tópicos 📋


Sobre 📖

A devAPI foi construída em Typescript 💙 e Nodejs com Express💛.
Essa aplicação é capaz de criar novos Conectores, listar todos os conectores existentes, fazer edição em algum campo do Conector, Deletar um Conector e filtrar em busca por nome, tipo, categoria e privacidade dos Conectores
A arquitetura dessa aplicação segue os moldes REST, SOLID e padrão airbnb na organização do código.
As rotas estão seguras por utilizar o método de autenticação JWT, com token no formato Bearer. E também implementei a dependência CORS, onde consigo definir quais ips terão permissão pra fazer requisição na aplicação.
Aplicação possui um script pra popular o banco de dados com 10 Conectores.
O banco de dados escolhido para essa aplicação foi o SQLite por questão de simplicidade e agilidade na integração e implementação de um banco na aplicação, explico melhor o motivo na sessão Desafios. E por conta disso utilizei o Knex pra fazer a integração entre aplicação e o meu banco de dados.


Tecnologias Utilizadas e Dependências 📱

  • Nodejs, Typescript e Express 🧐📂
  • Jsonwebtoken e cors para segurança da aplicação e das rotas.
  • SQLite e Knex para banco de dados e comunicação.
  • uuID pra gerar ids únicos pros Conectores.
  • ESLint, prettier e airbnb pra organização do código.

Funcionalidades 🛠️


Desafios na construção da API 🤯

O grande desafio dessa aplicação em Nodejs foi criar a rota pra fazer o filtro, que até então eu nunca havia feito, acostumado com o CRUD padrão, tive que pedir ajuda na comunidade DEV pra fazer esse desafio. 💪
Outro grande desafio foi gerar esse token no padrão JWT e Bearer que também nunca havia implementado, esse consegui através de tutorial no site: https://www.luiztools.com.br/post/autenticacao-json-web-token-jwt-em-nodejs/
O tempo foi outro grande desafio, pois além desse desafio técnico, tive que fazer outros 2, e o terceiro com prazo pra entrega daqui a 2 dias. Conciliar esses desafios foi meu maior desafio e por isso tive que tomar algumas decisões ao longo do processo, como a escolha do Banco de Dados, que foi utilizado o SQLite, pela sua simplicidade e agilidade na construção.
Estou muito grato e feliz com esse teste, independente do resultado final, pois foi de grande aprendizado, primeiro a questão da gestão do tempo, lidar com vários desafios técnicos ao mesmo tempo com prazos diferentes de entrega, e as coisas novas que aprendi durante a construção dessa API, como por exemplo: criar rotas pra executar filtros na aplicação e autenticação JWT.
Um grande aprendizado que eu levo pro resto da vida: seja flexível, focado, determinado e organizado. Com isso as coisas tendem a fluir da melhor maneira possível. 🚀


Como utilizar a aplicação 🤔


- Clonar esse repositório:
$ git clone https://github.com/rjuliuz/devAPI.git

- Entrar no diretório:
$ cd devAPI

- Instalar todas as dependências:
$ yarn install

- Rodar a aplicação de forma local:
$ yarn dev

- Rodar o banco de dados de forma local:
$ yarn knex:migrate:run

- Popular o Banco de Dados da Aplicação com script:
$ yarn knex:seed

License 📝

This repository is under MIT license.


Esse desafio foi produzido com muito ❤️ por @Rafael Julio


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors