Study
Actix

Routing di Actix-web

Penjelasan

Actix-web punya dua gaya utama untuk mendaftarkan route. Pertama, macro attribute seperti `#[get("/catatan")]` yang ditempel langsung di atas fungsi handler — ringkas dan deklaratif. Kedua, pendaftaran manual lewat `App::new().route("/catatan", web::get().to(handler))` yang lebih eksplisit dan berguna kalau route-nya dibuat secara dinamis. Kamu juga bisa mendaftarkan banyak handler sekaligus dengan `.service(handler)` untuk handler yang memakai macro attribute.

Contoh Konsep

use actix_web::{get, post, web, App, HttpServer, Responder};

#[get("/catatan")]
async fn daftar_catatan() -> impl Responder {
    "Daftar semua catatan"
}

async fn tambah_catatan() -> impl Responder {
    "Catatan ditambahkan"
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .service(daftar_catatan)
            .route("/catatan", web::post().to(tambah_catatan))
    })
    .bind(("127.0.0.1", 8080))?
    .run()
    .await
}

Praktikum

Lengkapi pendaftaran route POST untuk handler `tambah_catatan` di path "/catatan".

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Konsisten pilih satu gaya (macro attribute atau `.route()` manual) per project supaya route lebih mudah ditelusuri — mencampur keduanya secara acak bisa membuat kode sulit dibaca saat project membesar.