Giter VIP home page Giter VIP logo

sparkjava-graalvm-service's Introduction

sparkjava-graalvm-service

API desenvolvida para testes do evento Rinha de Backend, 2024 Q1

Feita com

Uso

A partir do uso do Docker / Podman para orquestrar os containers que executam o projeto, com o comando:

podman compose up -f docker-compose.yml --detach

Registrando transações:

curl -q --no-progress-meter -X POST localhost:4567/clientes/1/transacoes -H "Content-Type: application/json" -d "{\"valor\":900,\"tipo\":\"c\",\"descricao\":\"descricao\"}"

cujo o retorno esperado é uma resposta em JSON com o seguinte formato:

{
   "limite" : 100000,
   "saldo" : 900
}

Gerando um extrato

curl -q --no-progress-meter localhost:4567/clientes/1/extrato

com retorno esperado no seguinte formato, mostrando até 10 últimas transações realizadas com aquele cliente:

{
   "saldo" : {
      "data_extrato" : "2024-03-17T04:02:40.888931",
      "limite" : 1000000,
      "total" : -537500
   },
   "ultimas_transacoes" : [
      {
         "descricao" : "descricao",
         "realizada_em" : "2024-03-16T21:48:56.696681",
         "tipo_transacao" : "D",
         "valor" : 9000
      },
      {
         "descricao" : "descricao",
         "realizada_em" : "2024-03-16T21:48:52.727091",
         "tipo_transacao" : "C",
         "valor" : 9000
      }
   ]
}

Estressando a aplicação

Script bash para enviar um número bom de requisições para a API desenvolvida.

# criando transações - CREDITO:
# while true; do \      # para loops infinitos
for i in {1..200}; do \
USUARIO_ID=$(($RANDOM%5+1)); \
VALOR_TRX=$(($RANDOM%10000+350)); \
curl -q --no-progress-meter -X POST localhost:9999/clientes/${USUARIO_ID}/transacoes -H "Content-Type: application/json" -d "{\"valor\":${VALOR_TRX},\"tipo\":\"c\",\"descricao\":\"descricao\"}" ;\
done; 

# criando transações - DEBITO:
# while true; do \      # para loops infinitos
for i in {1..200}; do \
USUARIO_ID=$(($RANDOM%5+1)); \
VALOR_TRX=$(($RANDOM%15000+8000)); \
curl -q --no-progress-meter -X POST localhost:9999/clientes/${USUARIO_ID}/transacoes -H "Content-Type: application/json" -d "{\"valor\":${VALOR_TRX},\"tipo\":\"d\",\"descricao\":\"descricao\"}" ;\
done; 

# gerando extratos:
# while true; do \      # para loops infinitos
for i in {1..200}; do \
USUARIO_ID=$(($RANDOM%5+1)); \
curl -q --no-progress-meter localhost:9999/clientes/${USUARIO_ID}/extrato \
done; 

sparkjava-graalvm-service's People

Contributors

thiagojacinto 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.