Giter Club home page Giter Club logo

beer-api's Introduction

Beer API 🍺

version license Tool Tool Tool Database Database aux Aux Aux Aux Aux Aux Aux

A Beer API é uma API que permite buscar cervejas na Punk API, uma API pública. Para usar a Beer API, é necessário se cadastrar e informar alguns dados de acesso, como nome, sobrenome, e-mail, senha e data de nascimento.

A Beer API oferece duas opções de busca: básica e detalhada. A busca básica permite buscar uma cerveja aleatória, ou usando o ID. A busca detalhada permite buscar uma ou mais cervejas por diversos critérios, como data de fabricação, ABV, IBU, EBC, etc.

Funcionalidades

  • Criar conta
  • Acessar conta
    • Atualiza a sessão
  • Recuperar conta
    • Pedir redefinição
    • Definir nova senha
  • Controle de acesso as rotas protegidas
  • Busca por cervejas aleatórias
  • Busca por cervejas pelo ID
  • Busca por cervejas com filtros avançados
    • Páginação
    • Itens por página
    • ABV (maior que, menor que)
    • IBU (maior que, menor que)
    • EBC (maior que, menor que)
    • Nome da cerveja
    • Levedura (yeast)
    • Fábricação (anteriror à, posterior à)
    • Amargor (hops)
    • Malte (malt)
    • Comidas que combinam (food)
    • IDs

Sumário: Caminhos

  1. Autenticação
  2. Recuperar acesso
  3. Buscar cervejas

Sumário: Instalação e execução

  1. Requisitos
  2. Fork e Clone
  3. Configuração do ambiente
  4. Baixando as dependências
  5. Migrações da base de dados
  6. Executando a API em desenvolvimento
  7. Executando a API em produção
  8. Outros comandos

Caminhos

Autenticação

Caminho Método Descrição
/auth/sign-up POST Cria conta
/auth/sign-in POST Acessa conta
/auth/refresh POST Atualiza chaves de sessão

Recuperar acesso

Caminho Método Descrição
/auth/forgot-password POST Pedir chave para definir nova senha
/auth/set-password PUT Definir nova senha

Buscar cervejas

Caminho Método Descrição
/beers GET Usar filtros mais avançados
/beers/{filter} GET Usa filtro simples para buscar uma cerveja

Note

Você pode encontrar mais detalhes sobre as rotas e seus parêmetros ao executar a Beer API

Instalação e execução

Requisitos

  • Node.js v18.17.1
    Esta versão do node ou uma mais recente.
  • Mailtrap
    Um serviço que permita testar o envio de e-mails SMTP.

Fork e Clone

Faça um fork deste repositório e depois um clone desse fork em uma pasta no seu computador.

Comando para clonar um repositório

# git clone <url-do-fork-do-repositorio>
git clone https://github.com/viniciuscosmome/beer-api.git

Configuração do ambiente

Antes de executar a API você deve realizar algumas configurações

  1. Variáveis de ambiente:
    Crie um arquivo na raiz do repositório chamado .env. Além da tabela abaixo, você encontrará um arquivo já criado chamado example.env, está na raiz do projeto e pode ser usado como base.
Variável Tipo Descrição
PORT number Porta em que o servidor será acessado
NODE_ENV string Ambiente em que a aplicação está sendo executada
PASSWORD_SALT number Salta que será usado no hash da senha
SECRET_SESS string Segredo que será usado para gerar os token
MAIL_FROM string E-mail que identifica a aplicação
MAIL_HOST string Host disponibilizado pelo seu serviço de e-mail
MAIL_PORT number Porta disponibilizado pelo seu serviço de e-mail
MAIL_USER string Usuário disponibilizado pelo seu serviço de e-mail
MAIL_PASS string Senha disponibilizado pelo seu serviço de e-mail

Baixando as dependências

Use o comando abaixo para instalar todas as dependências do projeto

yarn install

Migrações da base de dados

Use o seguinte comado para executar as migrações da base de dados

yarn prisma:mig:dev
# ou
npx prisma migrate dev

Execute a seed da base de dados para criar campos necessários para a aplicação

yarn prisma:seed
# ou
npx prisma db seed

Executado a API em desenvolvimento

O comando abaixo inicia o servidor no ambiente de desenvolvimento

yarn start

O comando abaixo inicia o servidor no ambiente de desenvolvimento, ele reinicia assim que detecta uma mudança em algum arquivo

yarn start:dev

Executando a API em produção

Compilando para o uso em produção

yarn build

Executando migrações para o uso em produção

yarn prisma:mig:prod
# ou
npx prisma migrate deploy

Executando em produção

yarn start:prod

Note

Lembre-se de cofigurar as variáveis de ambiente para usar em produção.

Outros comandos

Executando testes

yarn test

Executado a verificação de padronização do código.

yarn lint

Fixando erros de padronização do código.

yarn lint:fix
yarn format

Autor

Cosmo

beer-api's People

Contributors

viniciuscosmome avatar

Stargazers

André Moraes Filho avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.