ขอบคุณที่สนใจมีส่วนร่วมกับ Axum Tutorial! 🎉
หากพบข้อผิดพลาดในเนื้อหาหรือโค้ด:
- ตรวจสอบ Issues ว่ามีคนรายงานแล้วหรือไม่
- สร้าง Issue ใหม่พร้อมรายละเอียด:
- บทที่พบปัญหา
- คำอธิบายปัญหา
- แนวทางแก้ไข (ถ้ามี)
สำหรับการแก้ไขเล็กน้อย (typos, คำผิด):
- Fork repository
- แก้ไขไฟล์
.mdที่ต้องการ - สร้าง Pull Request
หากต้องการเพิ่มบทหรือหัวข้อใหม่:
- เปิด Issue เพื่อหารือก่อน
- รอการอนุมัติ
- Fork และสร้างเนื้อหา
- สร้าง Pull Request
- ภาษา: คำอธิบายเป็นภาษาไทย, โค้ดเป็นภาษาอังกฤษ
- กลุ่มเป้าหมาย: ผู้ที่มีพื้นฐาน Rust แล้วต้องการเรียนรู้ Axum
- โครงสร้าง: แต่ละบทควรมีเนื้อหา, ตัวอย่างโค้ด, และสรุป
// ✅ ดี - มี comments อธิบายจุดสำคัญ
async fn handler(State(state): State<AppState>) -> impl IntoResponse {
// ดึงข้อมูลจาก Database
let users = sqlx::query("SELECT * FROM users")
.fetch_all(&state.db)
.await
.unwrap();
Json(users)
}
// ❌ ไม่ดี - ไม่มีคำอธิบาย
async fn handler(State(s): State<S>) -> Json<Vec<U>> {
Json(s.db.q("...").await.unwrap())
}docs: แก้ไข typo ในบทที่ 5
feat: เพิ่มตัวอย่าง WebSocket ใน ch12
fix: แก้ไข link ผิดใน README
# ติดตั้ง Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# ติดตั้ง mdBook
cargo install mdbookcd docs
mdbook serve
# เปิด http://localhost:3000# ทดสอบ code blocks ในหนังสือ
cd docs
mdbook test
# ทดสอบ examples
cargo run --example hello_worldโดยการมีส่วนร่วม คุณยอมรับว่าเนื้อหาจะอยู่ภายใต้ MIT License
ขอบคุณทุกคนที่ช่วยทำให้ Axum Tutorial ดีขึ้น!