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 endpointPathmenangkap segmen URLnest,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
- Perutean Axum
- Extractor
- JSON dan State
- Middleware