just simply derive JsonSchema example: user.rs
just simply derive WebApiGen example: user.rs
example: user.rs
impl: auth.rs
example: mod.rs
sudo apt install build-essential
cargo install diesel_cli --no-default-features --features postgres(optional)
cargo install diesel_cli_ext(optional)
- modify DATABASE_URL in .env
- start app
cargo run
create table in schema.rs
diesel migration generate --diff-schema create_table
diesel_ext -m -r -d"Queryable, Clone, Serialize, Deserialize, Selectable, JsonSchema, Default, AsChangeset, Debug, WebApiGen, )]
#[diesel(table_name = crate::schema::)]
#[diesel(check_for_backend(super::DbType)"
derive WebApiGen ,
docker run -d --name web_quic_star_db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1234qwer -e POSTGRES_DB=web_quic_star -p 5432:5432 postgres:latest
curl --request POST \
--url http://127.0.0.1:5090/auth/login \
--header 'Content-Type: application/json' \
--cookie-jar cookies_jar.txt \
--data '{
"next": null,
"password": "1234qwer",
"username": "super_admin"
}' \
--include- 响应示例
HTTP/1.1 200 OK
Content-Length: 0
Access-Control-Allow-Origin: *
Connection: keep-alive
Date: Thu, 05 Dec 2024 03:27:48 GMT
Keep-Alive: timeout=4
Proxy-Connection: keep-alive
Set-Cookie: id=6zq5Zk4zgLxxxNqh0t-P8Q; HttpOnly; SameSite=Strict; Path=/; Max-Age=86400
Vary: origin, access-control-request-method, access-control-request-headers
curl --request POST \
--url http://127.0.0.1:5090/users/create_user \
--header 'Content-Type: application/json' \
--cookie cookies_jar.txt \
--data '{
"create_by": -2,
"create_time": "2024-12-05T10:00:00Z",
"group_id": -2,
"is_delete": false,
"password": "wd2",
"remark": null,
"tenantry": "",
"username": "wd2"
}' \
--include- 响应示例
HTTP/1.1 200 OK
Content-Length: 190
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Type: application/json
Date: Thu, 05 Dec 2024 03:37:17 GMT
Keep-Alive: timeout=4
Proxy-Connection: keep-alive
Vary: origin, access-control-request-method, access-control-request-headers
{
"id": 5,
"username": "wd1",
"password": "wd1",
"group_id": -2,
"tenantry": "",
"remark": null,
"update_time": null,
"create_time": "2024-12-05T10:00:00Z",
"create_by": -2,
"update_by": null,
"is_delete": false
}
curl --request GET \
--url http://127.0.0.1:5090/users/get_user_by_id/-2 \
--cookie cookies_jar.txt \
--include
- code
HTTP/1.1 200 OK
Content-Length: 339
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Type: application/json
Date: Thu, 05 Dec 2024 06:24:19 GMT
Keep-Alive: timeout=4
Proxy-Connection: keep-alive
Vary: origin, access-control-request-method, access-control-request-headers
{
"id": -2,
"username": "super_admin",
"password": "$argon2id$v=19$m=19456,t=2,p=1$pHJK4Msog1E+V7R4++t+Zg$QnzTOC3JNu50cn0fJcdO5P33WnUUeQRK3oa9M054nko",
"group_id": -2,
"tenantry": "default",
"remark": null,
"update_time": null,
"create_time": "2024-12-04T10:03:24.511666Z",
"create_by": -2,
"update_by": null,
"is_delete": false
}