Carlos Chacin

Youtube Channel: @cchacin

Software Engineering Experiences


Crea una REST API sin usar ningún Framework con Java Servlets, JDBC, PostgreSQL y Jackson

Posted at February 01, 2025 /

Crea una REST API sin usar ningún Framework con Java Servlets, JDBC, PostgreSQL y Jackson

En éste video, veremos como implementar una REST API sin usar ningún framework como Quarkus, Micronaut, Helidon o Spring Boot. Usaremos Servlets para exponer la API, JDBC para conectarnos a PostgreSQL y Jackson para la serialización a JSON, Integration Testing con Junit5, AssertJ y TestContainers.

Recursos:

Parte 1

Parte 2

 ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
  Servlet Container                                                                   │
 │-----------------             ┌───────────────┐
  Jetty                         │ Serialization │                                     │
 │                              ├───────────────┤
                                │     JSON      │                                     │
 │        ┌───────────────┐     │    -------    │◀─────┐
          │     REST      │     │    Jackson    │      │                              │
 │        ├───────────────┤     └───────────────┘      │
          │   API Layer   │                            │                              │
 │        │   --------    │◀────────────────┐          │
          │   Servlets    │                 │          │                              │
 │        └───────────────┘                 │          │
                                            │          │                              │
 │                                          │          │
                                            │          │                              │
 │        ┌───────────────┐                 │          │       ┌───────────────┐
          │   Core DTOs   │                 │          │       │     Main      │      │
 │        ├───────────────┤                 │          │       ├───────────────┤
          │ Service Layer │                 │          │       │   App Layer   │      │
 │        │ ------------- │◀────────────────┼──────────┴───────│ ------------- │
          │  Plain Java   │                 │                  │  Plain Java   │      │
 │        └───────────────┘                 │                  └───────────────┘
                                            │                                         │
 │                                          │
                                            │                                         │
 │        ┌───────────────┐                 │
          │    DB DTOs    │                 │                                         │
 │        ├───────────────┤                 │
          │  Data Layer   │                 │                                         │
 │        │---------------│◀────────────────┘
          │JDBC / Postgres│                                                           │
 │        └───────────────┘
                  │                                                                   │
 │                │
                  │                                                                   │
 │                │
  ─ ─ ─ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
                  │
                  └────────────────────────┐
                                           │
                                           │
                                           │
                                           │
                                           │
                                           │
                                           ▼
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
 DATABASE                                                                            │
│----------
 PostgreSQL                                                                          │
│
                                                                                     │
│
                                                                                     │
│
                                                                                     │
│
                                                                                     │
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─