Code Monkey home page Code Monkey logo

addresses-springbootapi's Introduction

MyAddresses

License: MIT

Projeto para teste prático e portfólio, que tem como objetivo principal criar uma API que possa:

Read this in other languages: English, Português.

Índice

Tecnologias

Requerimentos

Será necessário que tenha instalado o Java 17 e o Maven para conseguir instalar as dependências. Precisará também de alguma ferramenta para fazer requisições HTTP como o Postman.

O H2 está configurado para que você possa acessá-lo em:

http://localhost:8080/h2-console

JDBC URL: jdbc:h2:mem:addresses
username: admin
password: 

Você pode configurar essas opções no arquivo: application.yml (src/main/resources)

Instalação e Uso

Clone o repositório, e após isso, use o seguinte comandos no terminal de sua preferência:

    mvn spring-boot:run

Isso vai compilar o projeto e fazê-lo rodar na porta 8080 do localhost (verifique se é a mesma porta no console do springboot).

Se ele conseguir rodar, acesse em algum navegador:

http://localhost:8080/

Você acessará um painel administrativo que tem algumas informações (como o id dos usuários).

A aplicação está configurada para instanciar dez pessoas quando inicializada.

Esse painel servirá como apoio para testar recursos da API.

Use o postman ou outro aplicativo de sua referência para testar os recursos:

Criar uma pessoa

  • Faça uma Requisição Post no link http://localhost:8080/person
  • A body dessa requisição deve ser do formato JSON, como no seguinte exemplo:
{
        "name": "Fulano",
        "birthdate": "1990-03-04",
        "mainAddress": {
            "zipCode": "00001-001",
            "streetAddress": "Rua Principal",
            "number": 1,
            "city": "Carapicuíba-SP"
        },
        "addresses": [
            {
                "zipCode": "00001-002",
                "streetAddress": "Rua Secundária",
                "number": 2,
                "city": "Goiânia-GO"
            }
        ]
}

O id da pessoa sempre será em ordem crescente, como já foram instanciadas 10 pessoas, a próxima terá o id 11, e assim por diante.

Você pode conferir isso atualizando o painel administrativo.

Editar uma pessoa.

{
        "name": "Atualizado",
        "birthdate": "1999-12-31",
        "mainAddress": {
            "zipCode": "99999-999",
            "streetAddress": "Rua Atualizada 1",
            "number": 1000,
            "city": "Atualizada-SP"
        },
        "addresses": [
            {
                "zipCode": "99999-998",
                "streetAddress": "Rua Atualizada 1",
                "number": 999,
                "city": "Atualizada-GO"
            }
        ]
}

Consultar uma pessoa.

Listar pessoas.

  • Faça uma Requisição get no link http://localhost:8080/person/
  • As pessoas já estão listadas no painel administrativo, mas, nesse endereço você receberá um JSON com a lista de todas pessoas e seus detalhes. Você pode acessá-lo no navegador.

Criar endereço para pessoa

{
  "zipCode": "00001-111",
  "streetAddress": "Novo endereço",
  "number": 3,
  "city": "Novo Endereço-BA"
}

Listar endereços da pessoa

Poder informar qual endereço é o principal da pessoa

Outros recursos:

Em breve serão citados aqui.

Progresso

O projeto ainda está em desenvolvimento, provavelmente em 80%.

Arquitetura de Diretórios

A arquitetura foi feita usando como base MVC e packages por camadas. Abaixo segue a arquitetura da pasta principal da aplicação.

addresses

  ├── AddressesApplication.java

  ├── configuration
          └── Instantiation.java

  ├── controller
          ├── HomeController.java
          └── PersonController.java

  ├── database
        ├── model
              ├── Address.java
              └── Person.java
        └──repository
              ├── AddressRepository.java
              └── PersonRepository.java

  ├── dto   
        ├── mapper
              ├── AddressMapper.java
              └── PersonDto.java
        ├── AddressDto.java
        └── PersonDto.java

  └── service
        ├── AddressService.java
        └── PersonService.java

Licença

Este projeto é licenciado sob os termos da licença MIT.

addresses-springbootapi's People

Contributors

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