jkn_rust 0.1.1

Client Rust untuk bridging API BPJS/JKN
Documentation

Crates.io Documentation License: MIT

JKN Client Rust untuk bridging API BPJS/JKN

Status Service

  • vclaim
  • pcare
  • antrean
  • antrean_fktp
  • apotek
  • icare
  • rekam_medis
  • aplicares

Instalasi

[dependencies]
jkn_rust = "*"
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Konfigurasi

Crate akan membaca .env melalui dotenv.

Lihat .env.example:

JKN_MODE=development
JKN_PPK_CODE=
JKN_CONS_ID=
JKN_CONS_SECRET=
JKN_VCLAIM_USER_KEY=
JKN_ANTREAN_USER_KEY=
JKN_APOTEK_USER_KEY=
JKN_PCARE_USER_KEY=
JKN_PCARE_USER_PASS=
JKN_ICARE_USER_KEY=
JKN_REKAM_MEDIS_USER_KEY=
JKN_APLICARES_USER_KEY=

Penggunaan

use jkn_rust::Jkn;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let jkn = Jkn::from_env()?;

    let result = jkn
        .vclaim()
        .referensi()
        .faskes("silampari", 2)
        .await?;

    println!("success: {}", result.is_success());
    println!("{:#?}", result.response);

    Ok(())
}

Typed Response

Kalau ingin response yang typed, definisikan struct sendiri lalu parse dari response.

use jkn_rust::Jkn;
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct FaskesItem {
    kode: String,
    nama: String,
}

#[derive(Debug, Deserialize)]
struct FaskesPayload {
    faskes: Vec<FaskesItem>,
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let jkn = Jkn::from_env()?;
    let result = jkn
        .vclaim()
        .referensi()
        .faskes("silampari", 2)
        .await?;

    let payload: FaskesPayload = result.response_as()?;
    println!("{:#?}", payload.faskes);

    Ok(())
}