Skip to content

Julian332/web_quic_star

Repository files navigation

rs web3 quick

Advantage

autogenerated api doc

just simply derive JsonSchema example: user.rs

autogenerated crud api

just simply derive WebApiGen example: user.rs

auto log error position when using ? with AppError ,so that we can find the origin error

example: user.rs

basic cookie auth

impl: auth.rs

scheduled task

example: mod.rs

using axum as web server

using diesel as orm

Prerequisite

sudo apt install build-essential

cargo install diesel_cli --no-default-features --features postgres(optional)

cargo install diesel_cli_ext(optional)

Usage

start

  1. modify DATABASE_URL in .env
  2. start app
cargo run

add table

create table in schema.rs

diesel migration generate --diff-schema create_table

生成实体类 注意 crate::schema:: 后面要补全

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 ,

database instance

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

请求示例

登录 (需要保存 set-cookie)

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

创建用户 (需要cookie)

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
}

查询用户 (需要cookie)

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
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •  

Languages