Dari Spring Boot ke Quarkus: Memahami JAX-RS, MicroProfile, dan SmallRye

Bagi banyak developer Java, Spring Boot adalah pilihan utama untuk membuat aplikasi REST API. Annotation seperti @RestController, @GetMapping, atau @PostMapping sudah menjadi makanan sehari-hari.

Namun, saat mulai mengenal Quarkus, sering muncul pertanyaan:

  • “Kalau di Quarkus bikin REST API pakai apa?”

  • “Apa itu MicroProfile dan SmallRye, dan bagaimana perannya di Quarkus?”

Artikel ini mencoba memberi penjelasan sederhana bagi pemula, khususnya mereka yang berasal dari dunia Spring Boot.

1. REST API di Quarkus: Dasarnya JAX-RS

Di Quarkus, pembuatan REST API menggunakan standar Jakarta RESTful Web Services (JAX-RS), bukan Spring MVC.

Contoh endpoint sederhana di Quarkus:

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello")
public class HelloResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "Hello from Quarkus!";
    }

Kalau di Spring Boot kita biasa tulis: 

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello from Spring Boot!";
    }

Maka di Quarkus padanannya pakai @Path + @GET dari JAX-RS sama-sama REST, hanya berbeda “dialek”. 

2. Lebih dari Sekadar Endpoint

REST API bukan hanya soal GET dan POST. Aplikasi modern biasanya butuh:

  • konfigurasi dinamis (misalnya ambil API key dari environment),

  • health check untuk dicek Kubernetes,

  • metrics agar bisa dipantau Prometheus/Grafana,

  • dokumentasi API otomatis dengan OpenAPI/Swagger,

  • retry atau circuit breaker untuk ketahanan,

  • keamanan JWT antar service.

Inilah tempat MicroProfile masuk ke dalam ekosistem Quarkus.

3. Apa Itu MicroProfile?

Eclipse MicroProfile adalah sekumpulan spesifikasi standar untuk membangun microservices di Java.

Beberapa API penting dari MicroProfile:

  • Config → membaca konfigurasi dengan cara standar.

  • Health → expose endpoint /health.

  • Metrics → catatan performa & monitoring.

  • OpenAPI → dokumentasi API otomatis.

  • Fault Tolerance → retry, timeout, circuit breaker.

  • JWT Propagation → autentikasi berbasis token JWT.

  • Rest Client → panggil service lain dengan interface.

Kalau dibandingkan dengan Spring, MicroProfile mirip kombinasi Spring Boot Actuator + Spring Cloud.

4. Peran SmallRye di Balik MicroProfile

Kalau MicroProfile hanya mendefinisikan “kontrak”, maka SmallRye adalah implementasi nyata dari kontrak tersebut.

Di Quarkus, hampir semua fitur MicroProfile berjalan menggunakan SmallRye.

Contoh: MicroProfile Config → di Quarkus dijalankan oleh SmallRye Config.

import org.eclipse.microprofile.config.inject.ConfigProperty;
import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class GreetingService {

    @ConfigProperty(name = "greeting.message")
    String message;

    public String greet(String name) {
        return message + ", " + name;
    }
}

application.properties

greeting.message=Hello 

Annotation @ConfigProperty ini disediakan MicroProfile, tapi yang benar-benar bekerja di Quarkus adalah SmallRye Config

5. Apakah Harus Install?

Jawabannya ya di pom atau graddle file.
Tapi di Quarkus, kita cukup tambahkan extension sesuai kebutuhan. Misalnya:

 ./mvnw quarkus:add-extension -Dextensions="smallrye-health,smallrye-openapi"

atau do Maven

<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-smallrye-health</artifactId>
</dependency> 

 Setelah itu:

  • Endpoint /q/health otomatis tersedia.

  • Dokumentasi API bisa dilihat di /q/openapi.

Tidak perlu install SmallRye secara manual, Quarkus sudah bundling implementasinya.

6. Peta Konsep: Spring vs Quarkus

Agar lebih mudah dipahami bagi pengguna Spring Boot:

Quarkus (MicroProfile + SmallRye)Spring Boot Ecosystem
JAX-RS (@Path, @GET)Spring MVC (@RestController, @GetMapping)
MicroProfile Config (SmallRye Config)@Value, @ConfigurationProperties
MicroProfile Health (SmallRye Health)Actuator Health
MicroProfile Metrics (SmallRye Metrics)Actuator Metrics + Micrometer
MicroProfile OpenAPI (SmallRye OpenAPI)Springdoc OpenAPI
MicroProfile Fault Tolerance (SmallRye FT)Spring Retry / Resilience4j
MicroProfile Rest Client (SmallRye Rest Client)Spring Cloud OpenFeign
MicroProfile JWT (SmallRye JWT)Spring Security JWT/OAuth2

7. Kesimpulan

  • JAX-RS adalah dasar REST API di Quarkus (pengganti Spring MVC).

  • MicroProfile menyediakan standar microservices (config, health, metrics, dsb).

  • SmallRye adalah implementasi MicroProfile di Quarkus.

  • Developer cukup menambahkan extension Quarkus, tidak perlu repot instalasi manual MicroProfile/SmallRye.

Jadi, bagi pengguna Spring Boot: bayangkan Quarkus sebagai framework yang menggabungkan Spring Boot + Spring Cloud + Actuator, tapi dengan fokus cloud-native dan native image (GraalVM) yang lebih efisien.

 

 

 

Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Numpang Kerja Remote dari Bandung Digital Valley

Cara Decompile berkas Dex dan Apk Android