Skip to content

RobertoBaiochi/node-ts-express-api-champions-league

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏷️ Projeto Champions League


📖 Descrição:

O Projeto foi desenvolvido auxiliar desenvolvedores de jogos de futebol, a encontrar com maior facilidade o jogadores com suas estatísticas e os Clubes de futebol. Podendo Listar todos jogadores ou um jogador, Alterar dados, Deletar jogadores.

O Projeto foi desenvolvido em Nodejs utilizando ExpressJS.

O Destaque desse projeto está na Arquitetura que foi utilizada.


🚀 Tecnologias:

📦 Dependências de Produção:

express: Framework para Node.js que fornece recursos mínimos para construção de servidores web.

cors: É um mecanismo que usa cabeçalhos adicionais HTTP para informar a um navegador que permita que um aplicativo Web seja executado em uma origem (domínio) com permissão para acessar recursos selecionados de um servidor em uma origem distinta.

📦 Dependências de Desenvolvimento:

@types/node: Tipos TypeScript para Node.js, permitindo o uso de tipagem estática e autocompletar.

tsup: Empacotador TypeScript que gera bundles otimizados para produção.

tsx: Ferramenta para execução de arquivos TypeScript diretamente, sem necessidade de compilação prévia.

typescript: Superset de JavaScript que adiciona tipagem estática opcional, ideal para desenvolvimento de grandes aplicações.

@types/cors: Este pacote fornece definições de tipos TypeScript para o middleware cors.

@types/express: Este pacote fornece definições de tipos TypeScript para o framework express.


💻 Executando o Projeto:

  1. Faça o clone desse repositório na sua pasta:
git clone https://github.com/RobertoBaiochi/node-ts-express-api-champions-league.git
  1. Dentro da pasta do projeto, instale as dependências:
npm install
  1. Inicie o servidor de desenvolvimento:
npm run start:dev

ou o servidor de desenvolvimento de monitoramento automático:

npm run start:watch

⚠️ obs: A porta utilizada no servidor é a 3333 e, está localizada no arquivo .ENV na variável PORT.

🔁 Rotas:

Buscar todos os jogadores: GET - http://localhost:3333/api/players

Buscar um jogador pelo ID: GET - http://localhost:3333/api/players/{ID}

Adicionar um jogador: POST - http://localhost:3333/api/players

- BODY - JSON

{
   "id": 9000,
    "name": "Nome do Jogador",
    "club": "Nome do clube do Jogador",
    "nationality": "Nacionalidade do jogador",
    "position": "Posição em que joga",
    "statistics": {
        "overall": 1,
        "pace": 1,
        "shooting": 1,
        "passing": 1,
        "dribbling": 1,
        "defending": 1,
        "physical": 1
    }
}

Deletar um jogador pelo ID: DELETE - http://localhost:3333/api/players/{ID}

Atualizar o campo statistic do jogador pelo ID: DELETE - http://localhost:3333/api/players/{ID}

- BODY - JSON

{
    "overall": 99,
    "pace": 93,
    "shooting": 97,
    "passing": 96,
    "dribbling": 89,
    "defending": 91,
    "physical": 85
}

Buscar todos os clubes: GET - http://localhost:3333/api/clubs

⚡ Scripts:

  • dist: Este script utiliza o tsup para compilar o código TypeScript localizado na pasta src, gerando os arquivos de saída prontos para produção.

    "dist": "tsup src"
  • start:dev: Este script executa o servidor em modo de desenvolvimento utilizando o tsx, carregando as variáveis de ambiente a partir do arquivo .env e executando o arquivo server.ts localizado na pasta src.

    "start:dev": "tsx --env-file=.env src/server.ts"
  • start:watch: Similar ao start:dev, este script executa o servidor em modo de desenvolvimento, mas com a funcionalidade adicional de "watch" (observação). Isso significa que o servidor será reiniciado automaticamente sempre que houver alterações nos arquivos. Ele também utiliza o tsx e carrega as variáveis de ambiente do arquivo .env.

    "start:watch": "tsx watch --env-file=.env src/server.ts"
  • start:dist: Este script primeiro executa o script dist para compilar o código TypeScript e, em seguida, executa o arquivo de saída gerado (index.js) localizado na pasta dist/src utilizando o Node.js.

    "start:dist": "npm run dist && node dist/src/index.js"

📐 Arquitetura

A arquitetura de software utilizada foi a N Layers

Desenho-do-pojeto.

About

A Nodejs webapi using expressjs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors