Giter Club home page Giter Club logo

bytebank-api's Introduction

Bytebank web API

Web API em Spring Boot para consumo do App em Flutter do Bytebank

Funcionalidades

A Web API oferece as seguintes funcionalidades:

  • Listagem e cadastro de transações.

Como baixar

Você pode baixar o arquivo jar aqui: https://github.com/alura-cursos/bytebank-api/archive/runnable.zip

Como executar

Após clonar o projeto, dentro do diretório raiz, execute a task bootRun do Gradle. A primeira execução vai realizar o download de todas dependências necessárias.

O uso do Wrapper é recomendado gradlew ou gradlew.bat para garantir a compatibilidade.

Também é possível executar o projeto via arquivo jar gerado pela task build que é armazenado no diretório build/libs/file-name.jar. Para executar basta usar o seguinte comando:

java -jar file-name.jar

A build do projeto foi feita com base no Java 8, portanto, é recomendado usar o Java 8 para que tudo funcione como esperado.

Modificando properties de inicialização

Por padrão o Spring Boot vai rodar a aplicação na porta 8080 e vai exigir a senha para criar transação com o valor 1000.

Caso queria modificar ambos valores, edite os valores das propriedades:

server:
  port: ${port:8081}
user:
  password: ${password:2000}

Na amostra acima, durante a execução a aplicação vai operar na porta 8081 e a senha para as transações será 2000.

Modificando propriedades durante a execução

Também é possível modificar as propriedades via command line durante a execução.

Via task bootRun do Gradle

Com o Gradle você pode alterar os valores das properties por meio do comando -args:

./gradlew bootRun --args='--server.port=8081 --user.password=2000'

Via arquivo jar gerado

Caso execute pelo arquivo jar,

java -jar file-name.jar --server.port=8081 --user.password=2000

Mapeamento de end-points

Para acessar as funcionalidades foram disponibilizados os seguintes end-points:

  • /transactions:

    • GET: Listagem:
      • O resultado é ordenado pela data e hora da criação em ordem crescente.
    // response example
    [
        {
            "id": "b9663ef3-3749-400e-be8f-1280db94aac8",
            "value": 200.00,
            "contact": {
                "name": "gui",
                "accountNumber": 1000
            },
            "dateTime": "2019-11-06 12:57:23"
        },
        {
            "id": "d1bf689c-caa2-4e45-b1fc-5a90b10d6d48",
            "value": 200.00,
            "contact": {
                "name": "gui",
                "accountNumber": 1500
            },
            "dateTime": "2019-11-06 12:57:37"
        }
    ]
    
    • POST: Inserção:
      • Para salvar a transação é necessário o envio do header password conforme o valor configurado na aplicação:
        • Caso não seja enviado, é retornado 400 BAD REQUEST;
        • Caso falhar na autenticação 401 UNAUTHORIZED.
      • Não é possível alterar a transação, caso haja a tentativa é retornado 409 CONFLICT.
    // request body example
    {
      	"value": 200.0,
      	"contact": {
      		"name": "gui",
      		"accountNumber": 1000
      	}
    }
    
    // response example
    {
          "id": "b9663ef3-3749-400e-be8f-1280db94aac8",
          "value": 200.00,
          "contact": {
              "name": "gui",
              "accountNumber": 1000
          },
          "dateTime": "2019-11-06 12:57:23"
    }
    

bytebank-api's People

Contributors

alexfelipe avatar guilhermesilveira avatar

Watchers

James Cloos 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.