/TrybeSmithAPI

Aplicação API CRUD de loja medieval.

Primary LanguageTypeScript

Boas vindas ao repositório do projeto Trybesmith!

Entregáveis

👨‍💻 O que foi desenvolvido

Para este projeto, criei uma loja de itens medievais, no formato de uma API, utilizando Typescript.

Desenvolvi todas as camadas da aplicação (Models, Service e Controllers) e, por meio dessa aplicação, é possível realizar as operações básicas que se pode fazer em um determinado banco de dados: Criação, Leitura, Atualização e Exclusão (ou CRUD, para as pessoas mais íntimas 😜 - Create, Read, Update e Delete).

Criei alguns endpoints que leem e escrevem em um banco de dados, utilizando o MySQL.

  1. Clone o repositório
  • git clone git@github.com:abnerferreiradesousa/trybesmith.git.
  • Entre na pasta do repositório que você acabou de clonar:
    • cd trybesmith
    • docker-compose up -d --build
  1. Instale as dependências
  • npm install
  1. Rodando a aplicação
  • npm start

Stacks

  • MySQL
  • TypeScript
  • Node.js
  • Express.js

1 - Endpoint para a listagem de produtos - GET

  • O endpoint está acessível através do caminho (/products);

2 - Endpoint para o cadastro de produtos - POST

  • O endpoint deve ser acessível através do caminho (/products);

  • O endpoint deve receber a seguinte estrutura:

  {
    "name": "Espada longa",
    "amount": "30 peças de ouro"
  }

3 - Endpoint para o cadastro de pessoas usuárias - POST

  • O endpoint deve ser acessível através do caminho (/users);

  • O endpoint deve receber a seguinte estrutura:

{
  "username": "string",
  "classe": "string",
  "level": 1,
  "password": "string"
}

4 - Endpoint para listar todos os pedidos - GET

  • O endpoint deve ser acessível através do caminho (/orders).

5 - Endpoint para o login de pessoas usuárias - POST

  • O endpoint deve ser acessível através do caminho (/login).

  • O endpoint deve receber a seguinte estrutura:

  {
    "username": "string",
    "password": "string"
  }

6 - Endpoint para o cadastro de um pedido - POST

  • O endpoint deve ser acessível através do caminho (/orders);

  • O endpoint deve receber a seguinte estrutura:

  {
    "productsIds": [1, 2]
  }