0Pricing
Learn Rust Coding · Ders

Axum Yönlendirmesi

İşleyiciler ve rotalar

Axum Yönlendirmesi, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

Axum nedir?

Axum, Tokio ekibinin geliştirdiği, kullanımı kolay ve eşzamansız bir web çatısıdır. tower ve hyper üzerine kuruludur.

  • İşleyiciler, sıradan eşzamansız işlevlerdir
  • Yönlendirme tür odaklıdır ve birleştirilebilir
  • Tokio çalışma zamanı üzerinde çalışır

İşleyici bir işlevdir

Axum'da bir işleyici, &str veya String gibi yanıta dönüştürülebilen bir şey döndüren eşzamansız bir işlevdir.

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

Bir Router oluşturma

Router, yolları işleyicilere eşler. get gibi bir HTTP yöntem filtresiyle birlikte route kullanın.

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

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

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

Sunucuyu başlatma

Bir TCP dinleyicisine bağlanın ve yönlendiriciyi sunun. #[tokio::main] makrosu eşzamansız çalışma zamanını kurar.

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();
}

Birden fazla yol

Tek bir yönlendiriciye birden fazla uç nokta kaydetmek için route çağrılarını zincirleyin.

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

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

Farklı HTTP yöntemleri

Bir yol üzerindeki yöntem işleyicilerini get(...).post(...) ile birleştirin. Her yöntem kendi işleyicisine yönlendirilir.

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

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

Yol parametreleri

URL'nin bölümlerini {name} segmentiyle yakalayın ve Path çıkarıcısı aracılığıyla okuyun.

use axum::extract::Path;

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

Yönlendirmeyi saf Rust ile modelleme

Özünde yönlendirme, bir yolu bir yanıta eşler. Bu çalıştırılabilir model, çatı olmadan bu fikri yansıtır.

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

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

Yönlendiricileri iç içe yerleştirme

Bir alt yönlendiriciyi nest ile bir ön ekin altına yerleştirerek daha büyük uygulamalar oluşturun.

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

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

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

Geri dönüş işleyicisi

Eşleşmeyen yollar için ne olacağını fallback kullanarak tanımlayın. Özel 404 sayfaları için idealdir.

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)
}

Durum kodları döndürme

Bir işleyici, yanıt durumunu tam olarak denetlemek için (StatusCode, body) demeti döndürebilir.

use axum::http::StatusCode;

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

Hızlı kontrol

Axum yönlendirmesini anlayıp anlamadığınızı test edin.

Özet

Axum yönlendirmesinin temellerini öğrendiniz:

  • İşleyiciler, yanıt döndüren eşzamansız işlevlerdir
  • Router::new().route(path, get(handler)), uç noktaları kaydeder
  • Path, URL segmentlerini yakalar
  • nest, fallback ve durum demetleri uygulamanın yapısını belirler

Sırada: çıkarıcılar gelen istekleri ayrıştırıyor.

Sıkça Sorulan Sorular

“Axum Yönlendirmesi” dersi ücretsiz mi?

Evet — “Axum Yönlendirmesi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

“Axum Yönlendirmesi” dersinde ne öğreneceğim?

İşleyiciler ve rotalar Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Axum Yönlendirmesi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Axum Yönlendirmesi
  2. Çıkarıcılar
  3. JSON ve Durum
  4. Ara Katman
← Learn Rust Coding Sayfasına Dön