Skip to content

LucasGeneroso/FlaskFrete

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlaskFrete

API FLask desenvolvida para o teste da vaga de backend da KaBuM!

Como usar

Você deve baixar ou clonar o projeto deste repositório (FlaskFrete)

Após baixar o projeto, será necessário criar um ambiente virtual (venv), para isso execute o seguite comando na pasta que baixou o projeto:

python -m venv venv (nome do ambiente virtual)

Após vamos ativar-lá:

Para sistema operacional linux:

cd venv (nome do seu ambiente virtual criado)
source bin/activate

Para sistemas windows

cd Scripts
activate

Com o ambiente virtual instalado e aberto, vamos instalar os pacotes (estão no arquivo requirements.txt)

Na pasta em que o arquivo se encontra, execute o seguinte comando para dar inicio:

pip install -r requirements.txt

Aguarde a instalação de todos os pacotes

Após isso, vamos executar o projeto para que a API funcione. Rode o seguinte comando na pasta raiz do projeto:

python app.py

Se tudo correr bem, os seguintes log's apareceram no seu terminal:

image

bom, com tudo funcionando vamos para os testes.

Testando a API

O teste pode ser feito a partir do Swagger onde se encontram todos os endpoints disponíveis da API.

Swagger

Para testar a API e suas funcionalidades pelo Swagger é necessário apenas acessar a rota http://localhost:5000/api/doc em seu navegador (com o projeto já rodando, vide passo anterior).

Você irá ver a seguinte tela:

image

  • Para iniciar os testes, é preciso criar as transporadoras com as informações que você deseja em POST /shippings

Exemplo de payload para cadastrar uma transportadora

{
   "carrier_name":"JADLOG",
   "constant_freight_calc":0.3,
   "minimum_height":10,
   "maximum_height":100,
   "minimum_width":4,
   "maximum_width":200,
   "delivery_time":4
}
  • Você também pode ver todas as transportadoras já criadas em GET /shippings
  • Assim como também pode consultar ou deletar uma especifica que deseja em GET /shippings/ e DELETE /shippings/

Após as transporadoras estarem configuradas, podemos partir para o calculo do frete, na rota: POST /freight

Será necessário enviar um paylaod contendo as informações do pacote que deseja postar, neste formato:

{
   "dimension":{
      "heigth":102,
      "width":40
   },
   "weight":400
}

e então o retorno será das transportadoras cadastradas que estão elegiveis para realizar a entrega. Caso nenhuma se encaixe, o retorno será uma lista vázia.

Exemplo de retorno:

[
    {
        "nome": "Entrega Ninja",
        "valor_frete": 12.0,
        "prazo_dias": 6.0
    },
    {
        "nome": "Entrega KaBuM",
        "valor_frete": 8.0,
        "prazo_dias": 4.0
    }
]

Caso fique em duvida em algum payload que necessite enviar na API, os modelos estão disponives logo abaixo das requisições

About

Shipping rest API made for KaBuM testing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages