เป้าหมายของโครงการนี้คือการเขียนเว็บแอปพลิเคชันที่สมบูรณ์รวมถึงแบ็กเอนด์และส่วนหน้าภายใน Rust
Rust wasm Rust app
in browser <- REST -> HTTP Server -- actix-web
| |
Yew Diesel (ORM) -> PostgreSQLการพึ่งพาการสร้างต่อไปนี้จะต้องมีการเติมเต็มเพื่อสนับสนุนชุดคุณสมบัติเต็มของแอปพลิเคชันนี้:
แอพประกอบด้วยส่วนหน้าและแบ็กเอนด์ สำหรับการเริ่มต้นด้วยการแฮ็คแบ็กเอนด์สามารถทดสอบผ่าน make run-backend ในขณะที่ส่วนหน้าสามารถทดสอบได้ด้วย make run-frontend คุณสามารถปรับการกำหนดค่าแอปพลิเคชันภายใน Config.toml หากจำเป็น
สิ่งนี้ติดตั้งข้อกำหนดการสร้างสนิมและ Wasm-Pack บน Ubuntu หรือ Debian
> sudo apt-get update
> sudo apt-get install -y pkg-config libssl-dev npm sudo wget
> wget https://sh.rustup.rs -O rustup-init
> sudo sh rustup-init -y
> cargo install wasm-pack
> sudo npm install -g rollupสิ่งนี้สร้างโครงการ
> git clone https://github.com/saschagrunert/webapp.rs.git
> cd webapp.rs
> make all make deploy ใช้ใช้ Podman เพื่อเริ่มคอนเทนเนอร์ PostgreSQL และภาชนะแบ็กเอนด์สนิม หากคุณต้องการใช้ Docker แทน Podman ให้ตั้งค่า CONTAINER_RUNTIME=docker ที่ด้านบนของ Makefile แก้ไข Config.toml หากจำเป็นในการตั้งค่า URL แบ็กเอนด์และข้อมูลรับรอง PostgreSQL:
[ server ]
url = " http://127.0.0.1:30080 "
...
[ postgres ]
host = " 127.0.0.1 "
username = " username "
password = " "
database = " database "ตรวจสอบให้แน่ใจว่ามีการติดตั้งการพึ่งพารันไทม์แล้วเริ่มคอนเทนเนอร์ทั้งสอง
> sudo apt install -y postgresql-client
> cargo install diesel_cli --no-default-features --features " postgres "
> sudo make deploy ตอนนี้แอปพลิเคชันควรเข้าถึงได้ที่ http://127.0.0.1:30080 ในระหว่างการพัฒนาคุณสามารถเริ่มภาชนะแยกต่างหากโดยใช้ make run-app เพื่อเริ่มต้นเฉพาะคอนเทนเนอร์แบ็กเอนด์ Rust และ run-postgres เพื่อเริ่มต้นเฉพาะคอนเทนเนอร์ PostgreSQL
หากทั้งแบ็กเอนด์และส่วนหน้าทำงานอยู่คุณสามารถเยี่ยมชมเว็บแอปพลิเคชันได้ที่ http://127.0.0.1:30080 หลังจากการโหลดแอปพลิเคชันสำเร็จคุณควรเห็นหน้าจอการตรวจสอบสิทธิ์เช่นนี้:

หน้าจอเข้าสู่ระบบจะยอมรับชื่อผู้ใช้และรหัสผ่านที่เท่ากันเช่น me (ชื่อผู้ใช้) และ me (รหัสผ่าน) ขณะนี้ยังไม่มีการรับรองความถูกต้องของผู้ใช้เพิ่มเติม แต่ชุดค่าผสมที่ไม่ตรงกันจะส่งผลให้เกิดความล้มเหลวในการตรวจสอบความถูกต้อง หลังจากการเข้าสู่ระบบสำเร็จคุณควรจะเห็นเนื้อหาของแอปพลิเคชัน:

การรับรองความถูกต้องควรคงอยู่มันจะดียิ่งขึ้นหลังจากโหลดหน้าด้วยตนเอง การเข้าสู่ระบบแอปพลิเคชันผ่านปุ่มออกจากระบบควรทำงานตามที่ตั้งใจไว้
โฟลว์ควบคุมที่สมบูรณ์ของแอปพลิเคชันมีลักษณะเช่นนี้:

คุณต้องการมีส่วนร่วมในโครงการนี้หรือไม่? ว้าวขอบคุณ! ดังนั้นโปรดแยกมันและส่งคำขอดึงมาให้ฉัน