Git Product home page Git Product logo

api-rest-java's Introduction

API RESTFUL em Java + SpringBoot + Docker

O projeto se propõe a desenvolvover uma API RESTFul em JAVA versão 8, que seja capaz de realizar as funcionalidades de CRUD(create, read, update, delete) para as entidades Loja e Produto, com persistência de dados em um banco de dados MySQL .

Requistos executar o projeto:
  • Java SE Development Kit 8
  • Docker
Repositório da interface consumindo a API

Como executar o projeto

  • Certifique-se que a porta 8080 está livre
  • Abra o terminal na pasta do projeto
    $ cd /api-rest-java
  • Execute o comando do Docker-Compose:
    $ docker-compose up --build --force-recreate

Consumindo a API

  • Loja

    • Listar todas lojas
      • URL: http://localhost:8080/loja
      • Método GET
      • Resposta Sucesso:
        • Code 200 OK
        • Conteúdo:
          [
              {
                  "id": 1,
                  "nome": "Locadora Vermelha",
                  "endereco": "Rua Host Ricco",
                  "cidade": "Quixada",
                  "estado": "Ceara"
              }
          ]
          
    • Cadastrar nova loja
      • URL: http://localhost:8080/loja
        • Método POST
        • Paramentros de corpo Dados:
          • JSON
            {
                "nome": "",
                "endereco": "",
                "cidade": "",
                "estado": ""
            }
            
        • Resposta Sucesso:
          • Code 201 CREATE
    • Atualizar loja por id
      • URL: http://localhost:8080/loja/{id}
        • Método PUT
        • Dados Requiridos:
          • id = [integer]
        • Paramentros de corpo Dados:
          • JSON
            {
                "nome": "",
                "endereco": "",
                "cidade": "",
                "estado": ""
            }
            
        • Resposta Sucesso:
          • Code 200 OK
    • Excluir loja por id

  • Produto

    • Listar todos produtos
      • URL: http://localhost:8080/produto
      • Método GET
      • Resposta Sucesso:
        • Code 200 OK
        • Conteúdo:
          [
              {
                  "id": 1,
                  "nome": "Monitor Dell 19pol",
                  "descricao": "exemplo",
                  "preco": 700.0
              }
          ]
          
    • Cadastrar novo produto
      • URL: http://localhost:8080/produto
        • Método POST
        • Paramentros de corpo Dados:
          • JSON
            {
                "nome": "",
                "descricao": "",
                "preco": 0.0
            }
            
        • Resposta Sucesso:
          • Code 201 CREATE
    • Atualizar produto por id
      • URL: http://localhost:8080/produto/{id}
        • Método PUT
        • Dados Requiridos:
          • id = [integer]
        • Paramentros de corpo Dados:
          • JSON
            {
                "nome": "",
                "descricao": "",
                "preco": 0.0
            }
            
        • Resposta Sucesso:
          • Code 200 OK
    • Excluir produto por id

api-rest-java's People

Contributors

sidnobre avatar

Watchers

 avatar

api-rest-java's Issues

avaliação

instruções

Construa uma API RESTFul, que permita uma pequena empresa cadastrar suas lojas e produtos. Deve ser possível realizar o cadastro, alteração e remoção das lojas e produtos.

É desejável que haja uma interface para que se comunique com a API RESTFul e permita a execução das operações de cadastro, alteração e remoção das entidades.

Clareza do README

  • O README do frontend está padrão, sem nenhum apontamento sobre o aplicativo. Nada grave.
  • A seção instruindo sobre executar o projeto não contém a parte de construir o proeto. Seguindo como está o docker-compose falha porque não existe o api_java.jar
  • É apontado o java 8 como pré-requisito mas o Dockerfile usa o 11. Na prática há uma inconsistência na versão da máquina virtual a utilizar.

Organização do código: Separação de módulos, view e model, back-end e front-end

  • O layout é de um repositório por projeto, faltando a ligação bidirecional entre os dois. É preciso conhecer o backend para encontrar o frontend

Organização da api: Verbos, recursos, códigos de resposta http

  • os recursos poderiam ser pluralizados. Nada grave.

A aplicação está fazendo o que é esperado?

  • Foi preciso instalar o docker para rodar o backend, mas não rodou.
  • Feita uma tentativa com o podman, sem efeito também.
  • A aplicação foi alterada para rodar livre de containers
  • Embora opcional, a aplicação frontend precisou de ajuste no package.json, que faltava dependências, bem como correções no código (loja.apagar is not a function porque o nome parâmetro cobriu o nome do cliente de serviço de loja)

Escolhas técnicas feitas no projeto

  • Containerização é valioso para colocar no ar mas não é bom negligenciar a fase de desenvolvimento. Do modo que foi apresentado, o único modo de desenvolver o aplicativo era com container (url de banco hardcoded no application.properties em vez de depender de uma variável de ambiente)

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.