Skip to content

About

REST API para o projeto "Desenvolvendo um sistema de gerenciamento de pessoas em API REST com Spring Boot" na plataforma DIO

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

People Rest API

REST API para cadastro de pessoas

Acesse a API rodando no Heroku aqui.

Sobre

Esta é uma API construída para o projeto "Desenvolvendo um sistema de gerenciamento de pessoas em API REST com Spring Boot" da plataforma DIO. É uma aplicação Spring Boot que utiliza os módulos Web, Data JPA e Validation. Lombok foi incluído para a geração de código boilerplate e Mapstruct, para conversão entre models e DTOs. A versão local da aplicação usa o MySQL e a versão do Heroku tem o PostgreSQL como banco de dados. Swagger foi utilizado para documentar a aplicação e os testes unitários foram implementados com a bibioteca de testes do Spring Boot.

Tecnologias

Como usar

Pré-requisitos

Como executar

Clone o repositório: git clone https://github.com/luizsac/people-rest-api.git

Entre na pasta do projeto: cd people-rest-api

Suba o container do banco de dados no docker: docker run --name mysql_container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=tatakae -d mysql:latest

Execute a aplicação: .\gradlew bootRun no Windows ou ./gradlew bootRun no Linux/Mac

Obs.: No Linux, talvez seja necessário executar o comando chmod +x gradlew antes de executar a aplicação

Funcionalidades

Cadastrar pessoa

Request

POST /api/v1/people

{
  "firstName": "Foo",
  "lastName": "Bar",
  "cpf": "78946699035",
  "birthDate": "13-12-1912",  
  "phones": [
    {
      "number": "5587864567786",
      "type": "COMMERCIAL"
    }
  ]
}

Obs.: O CPF deve ser válido. Acesse um gerador clicando aqui.

Response

HTTP/1.1 201 Created
Date: Mon, 28 Feb 2022 20:50:05 GMT
Status: 201 Created
Content-Type: application/json
{
    "id": 1,
    "firstName": "Foo",
    "lastName": "Bar",
    "cpf": "78946699035",
    "birthDate": "1912-12-13",
    "phones": [
        {
            "id": 1,
            "type": "COMMERCIAL",
            "number": "5587864567786"
        }
    ]
}

Recuperar lista de pessoas

Request

GET /api/v1/people

Response

HTTP/1.1 200 OK
Date: Mon, 28 Feb 2022 20:50:05 GMT
Status: 200 OK
Content-Type: application/json
[
    {
        "id": 1,
        "firstName": "Bar",
        "lastName": "Foo",
        "cpf": "02788745095",
        "birthDate": "1987-04-23",
        "phones": [
            {
                "id": 1,
                "type": "MOBILE",
                "number": "5548997685748"
            }
        ]
    },
    {
        "id": 2,
        "firstName": "Foo",
        "lastName": "Bar",
        "cpf": "78946699035",
        "birthDate": "1912-12-13",
        "phones": [
            {
                "id": 2,
                "type": "COMMERCIAL",
                "number": "5587864567786"
            }
        ]
    }
]

Recuperar pessoa pelo id

Request

GET /api/v1/people/id

Response

HTTP/1.1 200 OK
Date: Mon, 28 Feb 2022 20:50:05 GMT
Status: 200 OK
Content-Type: application/json
    {
        "id": 2,
        "firstName": "Foo",
        "lastName": "Bar",
        "cpf": "78946699035",
        "birthDate": "1912-12-13",
        "phones": [
            {
                "id": 2,
                "type": "COMMERCIAL",
                "number": "5587864567786"
            }
        ]
    }

Atualizar pessoa

Request

PUT /api/v1/people/id

{
  "firstName": "Foo",
  "lastName": "Bar",
  "cpf": "78946699035",
  "birthDate": "30-04-1945",  
  "phones": [
    {
      "number": "5543934328786",
      "type": "COMMERCIAL"
    }
  ]
}

Response

HTTP/1.1 200 OK
Date: Mon, 28 Feb 2022 20:50:05 GMT
Status: 200 OK
Content-Type: application/json
{
    "id": 2,
    "firstName": "Foo",
    "lastName": "Bar",
    "cpf": "78946699035",
    "birthDate": "1945-04-30",
    "phones": [
        {
            "id": 3,
            "type": "COMMERCIAL",
            "number": "5543934328786"
        }
    ]
}

Deletar pessoa

Request

DELETE /api/v1/people/id

Response

HTTP/1.1 200 OK
Date: Mon, 28 Feb 2022 20:50:05 GMT
Status: 200 OK
Content-Type: application/json
{
    "id": 2,
    "firstName": "Foo",
    "lastName": "Bar",
    "cpf": "78946699035",
    "birthDate": "1945-04-30",
    "phones": [
        {
            "id": 3,
            "type": "COMMERCIAL",
            "number": "5543934328786"
        }
    ]
}

Licença

Essa API está sob a licença MIT. Veja o arquivo LICENSE para mais informações.

Autor

Linkedin Badge Linkedin Badge

About

REST API para o projeto "Desenvolvendo um sistema de gerenciamento de pessoas em API REST com Spring Boot" na plataforma DIO

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages