Skip to content

📚️ Uma API Express de livraria, que utiliza typescript, typeorm, docker, postgres, jest e redis

Notifications You must be signed in to change notification settings

felpssc/library-api

Repository files navigation

Library API 📚️

Felipe Silva

Sobre o projeto

O objetivo principal do projeto foi colocar em prática novos conhecimentos sobre testes automatizados (unitários e de integração) com Jest e a utilização de cache na aplicação com Redis. A API desenvolvida foi para uma livraria fictícia, que possibilita criar, buscar, atualizar e deletar categorias, autores e os livros desses autores.

A aplicação foi construída em Typescript e Node.js com Express.js como framework, na parte de armazenamento dos dados foi utilizado Postgres com TypeORM para manipulação e Redis para armazenamento de cache, para a infraestrutura do projeto utilizei Docker para "contêinerizar" toda aplicação e evitar problemas com diferentes ambientes. O projeto também contou com dezenas de testes unitários e de integração utilizando a técnica TDD, garantindo bom funcionamento do código.

Rotas

// Category
[GET] /api/category/       (lista todas as categorias)
[POST] /api/category/      (cria uma nova categoria de livros)
[PUT] /api/category/:id    (atualiza uma categoria)
[DELETE] /api/category/:id (deleta uma categoria)

// Author
[GET] /api/author/:id    (busca um author pelo id)
[GET] /api/author/       (lista os autores existentes) (query params: limit, offset)
[POST] /api/author/      (cria um novo autor)
[PUT] /api/author/:id    (atualiza um autor)
[DELETE] /api/author/:id (deleta um autor)

// Book
[GET] /api/book/:id                (busca um livro pelo id)
[POST] /api/book/                  (cria um novo livro)
[GET] /api/book/author/:author_id  (lista todos os livros de um autor)

Tecnologias e ferramentas

A aplicação foi construída utilizando:

Instalação e uso

Para clonar e rodar o projeto é necessário ter o docker e docker-compose instalados em sua máquina, após isso siga as instruções:

# Abra um terminal e copie este repositório com o comando:
$ git clone https://github.com/felpssc/library_api.git

# Entre na pasta raiz do projeto e suba o contâiner com:
$ docker-compose up --build -d

# Caso a aplicação não tenham iniciado, rode:
$ docker-compose start

# Acesse http://localhost:3000/api no seu navegador.

LinkedIn

Gmail

About

📚️ Uma API Express de livraria, que utiliza typescript, typeorm, docker, postgres, jest e redis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published