spring-postgres

Crates.iospring-postgres
lib.rsspring-postgres
version0.2.1
sourcesrc
created_at2024-09-05 12:10:13.11324
updated_at2024-10-06 10:10:06.36373
descriptionrust microservice framework
homepage
repositoryhttps://github.com/holmofy/spring-rs
max_upload_size
id1364517
size9,036
holmofy (holmofy)

documentation

README

crates.io Documentation

tokio-postgres is a database connection tool similar to sqlx. Unlike sqlx, it only focuses on implementing postgresql database connections.

Dependencies

spring-postgres = { version = "0.1.1" }

Configuration items

[postgres]
connect = "postgres://root:12341234@localhost:5432/myapp_development" # Database address to connect to

Components

After configuring the above configuration items, the plugin will automatically register a Postgres object. This object wraps tokio_postgres::Client.

pub struct Postgres(Arc<tokio_postgres::Client>);

Extract the Component registered by the plugin

The PgPlugin plugin automatically registers a Postgres object for us. We can use Component to extract this connection pool from AppState. Component is an axum extractor.

#[get("/postgres")]
async fn hello_postgres(Component(pg): Component<Postgres>) -> Result<impl IntoResponse> {
    let rows = pg
        .query("select version() as version", &[])
        .await
        .context("query postgresql failed")?;

    let version: String = rows[0].get("version");

    Ok(Json(version))
}

Complete code reference postgres-example

Commit count: 0

cargo fmt