[Rust Serial] Bài 4: Xây dựng HTTP REST API và các middleware
Outline
- Chương 0: Giới thiệu DDD ?
-
Chương 1: Thực hành Xây dựng một ứng dụng đăng nhập cơ bản
- 1.1 Cài đặt môi trường, các thư viện cần thiết
- 1.2 Viết API regiter/login/logout
- 1.3 Viết middleware
- 1.4
References:
Chương 0: Giới thiệu DDD?
Gồm 4 lớp chính:
-
Presentation: Chứa các UI, API, giao diện người dùng. Lớp này phụ thuộc vào Application layer.
-
Application: Chứa các business logic. Lớp này phụ thuộc vào Domain layer.
-
Domain: Chứa các domain model. Đây là trung tâm của hệ thống, chứa các thực thể, trạng thái, logic nghiệp vụ.
-
Infrastructure: Chứa các technical detail như database, messaging, caching, ... Lớp này phụ thuộc vào Domain layer.
-
Cách sử dụng
app layer và ifras sử ụng domain, presentation sẽ giao tiếp với app layer
Chương 1: Thực hành Xây dựng một ứng dụng đăng nhập cơ bản
1.1 Cài đặt môi trường, các thư viện cần thiết
- Sử dụng các thư viện sau
[dependencies]
serde = { version = "1.0.204", features = ["derive"] }
async-trait = "0.1.81"
diesel = { version = "2.2.1", features = ["postgres", "r2d2"] }
dotenv = "0.15.0"
r2d2 = "0.8.10"
actix-web = "4.8.0"
log = "0.4.22"
env_logger = "0.11.3"
- Create a file
.env
DATABASE_URL=postgres://rustddd:rustddd2024@45.119.83.244:6432/rust_ddd
- Cài đặt diesel command line
cargo binstall diesel_cli
cargo install diesel_cli
May be we get an error and need to install
Compiling unicode-normalization v0.1.23
error: failed to run custom build command for `mysqlclient-sys v0.4.0`
Caused by:
process didn't exit successfully: `/tmp/cargo-installyi3JQ9/release/build/mysqlclient-sys-8ed54e8ffd0676e2/build-script-build` (exit status: 101)
>>
sudo apt-get install libmysqlclient-dev
cargo install diesel_cli --no-default-features --features postgres
Tham khảo link
Thanks for reading! Read other posts?