0Pricing
Learn Rust Coding · Pelajaran

Perutean Axum

Handler dan rute

Perutean Axum adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.

Apa itu Axum?

Axum adalah kerangka kerja web asinkron yang ergonomis dari tim Tokio. Axum dibangun di atas tower dan hyper.

  • Handler adalah fungsi async biasa
  • Perutean digerakkan oleh tipe dan dapat dikomposisikan
  • Berjalan pada runtime Tokio

Handler adalah fungsi

Handler Axum adalah fungsi async yang mengembalikan sesuatu yang dapat diubah menjadi respons, seperti &str atau String.

async fn hello() -> &'static str {
    "Hello, world!"
}

Membangun Router

Router memetakan jalur ke handler. Gunakan route dengan filter metode HTTP seperti get.

use axum::{Router, routing::get};

async fn hello() -> &'static str { "Hello" }

fn app() -> Router {
    Router::new().route("/", get(hello))
}

Menjalankan server

Ikat listener TCP lalu layani router. Makro #[tokio::main] menyiapkan runtime async.

use axum::{Router, routing::get};

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(|| async { "Hi" }));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}

Beberapa rute

Rangkaikan pemanggilan route untuk mendaftarkan beberapa endpoint pada satu router.

use axum::{Router, routing::get};

fn app() -> Router {
    Router::new()
        .route("/", get(|| async { "home" }))
        .route("/about", get(|| async { "about" }))
}

Metode HTTP yang berbeda

Gabungkan handler metode pada satu jalur dengan get(...).post(...). Setiap metode diarahkan ke handlernya sendiri.

use axum::{Router, routing::get};

fn app() -> Router {
    Router::new().route(
        "/items",
        get(|| async { "list" }).post(|| async { "create" }),
    )
}

Parameter jalur

Tangkap bagian URL dengan segmen {name} dan baca melalui pengekstrak Path.

use axum::extract::Path;

async fn show(Path(id): Path<u32>) -> String {
    format!("item {}", id)
}

Memodelkan perutean dalam Rust biasa

Pada intinya, perutean memetakan jalur ke respons. Model yang dapat dijalankan ini menangkap gagasan tersebut tanpa kerangka kerja.

fn route(path: &str) -> &str {
    match path {
        "/" => "home",
        "/about" => "about page",
        _ => "404 not found",
    }
}

fn main() {
    println!("{}", route("/"));
    println!("{}", route("/about"));
    println!("{}", route("/missing"));
}

Menumpuk router

Komposisikan aplikasi yang lebih besar dengan memasang subrouter di bawah awalan menggunakan nest.

use axum::{Router, routing::get};

fn api() -> Router {
    Router::new().route("/users", get(|| async { "users" }))
}

fn app() -> Router {
    Router::new().nest("/api", api())
}

Handler cadangan

Tentukan tindakan untuk rute yang tidak cocok menggunakan fallback. Cocok untuk halaman 404 khusus.

use axum::{Router, http::StatusCode};

async fn not_found() -> (StatusCode, &'static str) {
    (StatusCode::NOT_FOUND, "nothing here")
}

fn app() -> Router {
    Router::new().fallback(not_found)
}

Mengembalikan kode status

Handler dapat mengembalikan tuple (StatusCode, body) untuk mengendalikan status respons secara tepat.

use axum::http::StatusCode;

async fn create() -> (StatusCode, &'static str) {
    (StatusCode::CREATED, "created")
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang perutean Axum.

Rangkuman

Anda telah mempelajari dasar-dasar perutean Axum:

  • Handler adalah fungsi async yang mengembalikan respons
  • Router::new().route(path, get(handler)) mendaftarkan endpoint
  • Path menangkap segmen URL
  • nest, fallback, dan tuple status membentuk app

Selanjutnya: pengekstrak mengurai request yang masuk.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Perutean Axum” gratis?

Ya — teks lengkap “Perutean Axum” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Perutean Axum”?

Handler dan rute Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?

Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Perutean Axum” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?

Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Perutean Axum
  2. Extractor
  3. JSON dan State
  4. Middleware
← Kembali ke Learn Rust Coding