Giter VIP home page Giter VIP logo

api_frete's Introduction

KaBum!

API-REST-Frete | Desafio BackEnd

' tenho como Objetivo me desafiar e expor minhas habilidades e evolução.'


Readme do Desafio original

README - KaBuM!


Getting Started

Inicie adicionando todas as dependencias e startando a ORM Prisma juntamente com Docker.

# dependencias
  npm install

# Iniciar prisma
  npx prisma migrate dev

🔗 Para Mais detalhes aqui 👈


ℹ️ Arquitura

./src:.

🔗. http/:

Principal app src/http, onde se encontra as Rotas e o Servidor.

Rotas /routs, contendo CRUD e a rota calcule.ts responsavel pelo resultado final.

creat-frete.ts e ger-frete.ts, caso queira add novo frete e ter retorno deles.

, caso queira add novo frete.

Servido ou controlador /server.ts.

🔗. lib/:

prisma.ts, liberando a funcionalidade de conectar ao db | @prisma/client.

🔗. utils/:

formuleCalcFrete.ts, responsavel pela funcao de calcular e formatar o valor do frete,


./prisma:.

schema.prisma, responsavel para criar o schema, criando as tabelas ou seus model para seu db

🔗. seed/:

O Script seed.ts popula o db


🎯 Objetivo

Fluxo

  • Criar uma API REST
    • Validar as Dimencoes com as opcoes de frete
      • Retornar uma ou mais transportadoras, se nao retornar vasio [] caso nem uma seja valida
    • calcular o frete cruzando a Info. do produto e as opcoes de frete
      (Peso x constante_frete) / 10 

Requisito

  • App ser API REST
  • Validação de altura máxima e mínima para cada opção de frete
  • Validação de largura máxima e mínima para cada opção de frete
    // caso a validacao nao aprove todos.
      []
  • Validação se o peso do produto é maior que 0 (zero).
  • Rota POST
  • Receber parametros em Formato JSON com as Info.: dimensao:altura e largura, peso
    {
      "dimensao": {
        "altura":152,
        "largura":50
      },
      "peso":850
    }
  • Formatar e retornar com as Info.: nome, valor e prazo
    [
      {
        "nome":"Entrega Ninja",
        "valor_frete": 12.00,
        "prazo_dias": 6
      },
    ]

api_frete's People

Contributors

isaacgss avatar

Stargazers

 avatar

Watchers

 avatar

api_frete's Issues

Valid zero

Valid zero

identification falha de validação

esta sendo permitido pela validação o envio de parâmetros com o valor Zero (0)

dentro do aquivo src/http/routs/calcule.ts

    const dataProdutc = z.object({
      dimensao: z.object({
        altura: z.number().min(1),
        largura: z.number().min(1)
      }),
      peso: z.number().min(1)
    })

Doc Zod | min and max

Simplifying

Simplifying

Simplificando fazendo refatoração

Marcando que as rotas organizadas podem ser mais simples e semântico

  app.register( [FunctionRouteName] , {
    prefix: [RoutePath] 
  })

Agrupar rotas na mesma function de acordo com a semântica do código e sua logica

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.