Ecommerce

REST API CRUD Digital Inovation- BackEnd - Spring Boot

Criando um CRUD de Pessoa para Digital Inovation

GitHub repo size Packagist License GitHub top language GitHub language count GitHub followers

Sobre o projeto   |    Diagrama de Classe   |    Links   |    Contato

šŸ“ƒ Sobre o projeto

Ɖ proposto o desenvolvimento de uma REST API para realizaĆ§Ć£o de um CRUD de uma entidade pessoa.

O sistema permite o registro de usurio no bando de dados. Ɖ permitido o cadastro de um usuĆ”rio por CPF. A API nĆ£o permite CPF iguais no bando de dados lanƧando uma exceĆ§Ć£o para o cliente. Os dados do usuĆ”rio podem ser consultado por meio de uma listagem paginada e por seu cĆ³digo de identificaĆ§Ć£o. Por fim, a aplicaĆ§Ć£o permite as alteraƧƵes dos dados cadastrados.

šŸ“ƒ Diagrama de Classe

Ecommerce

Tecnologia:

  • Java 11
  • Spring Boot 2.4.5
  • Spring Data - JPA/Hibernate
  • Banco de Dados PostgreSQL
  • Apache Maven 3.6.0
  • JUnit5, Mockito
  • Heroku

ConstruĆ§Ć£o do Projeto:

  • CriaĆ§Ć£o de Interface Service (garantir baixo acoplamento)
  • CRUD (ORM Hibernate - Ambiente de teste)
  • Exception Personalizada
  • Consulta Paginada
  • DTO / ModelMapper
  • Teste UnitĆ”rio e Teste de IntegraĆ§Ć£o(JUnit5 e Mockito)

Start do Projeto Local

server.error.include-stacktrace=never
server.port=8080

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/dio
spring.datasource.username=postgres
spring.datasource.password=root

spring.jpa.hibernate.ddl-auto=validate
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

Start no Heroku

Utilize o link abaixo no seu Postman para realizar operaĆ§Ć£o CRUD:

https://application-crudperson-api.herokuapp.com/api/v1/people

[POST] save | status 200 OK

[POST] POSTMAN- https://application-crudperson-api.herokuapp.com/api/v1/people

Body:

{
    "firstName": "Jeff",
    "lastName": "Luiz",
    "cpf": "85731310041",
    "birthDate": "22/04/2021",
    "phones": [
        {
            "number": "988053101",
            "type": "COMMERCIAL"
        }
    ]
}

[POST] save | status 400 BAD REQUEST

[PUT] update | status 200 OK

[PUT] POSTMAN- https://application-crudperson-api.herokuapp.com/api/v1/people

Body:

{
    "firstName": "Jeff",
    "lastName": "Luiz",
    "cpf": "08134146015",
    "birthDate": "22/04/2021",
    "phones": [
        {
            "number": "988053101",
            "type": "COMMERCIAL"
        }
    ]
}

[GET] findById | status 200 OK

[GET] POSTMAN- https://application-crudperson-api.herokuapp.com/api/v1/people/1

[GET] findById | status 404 NOT FOUND

[GET] listAll | status 200 OK | CONSULTA PAGINADA

[GET] POSTMAN- https://application-crudperson-api.herokuapp.com/api/v1/people

[DELETE] delete | status 204 NO CONTENT

[DELETE] POSTMAN- https://application-crudperson-api.herokuapp.com/api/v1/people/1

šŸ“ƒ Contato

DĆŗvidas entrar em contato jefferson.luiz.cruz@gmail.com