#help #json #reqwest #json-api #case #query #detail

uslegalpro

uslegalpro 是一个简单的库,通过 reqwest crate 与 uslegalpro 的 JSON API 进行交互。

1 个不稳定版本

0.1.0 2023年9月15日

#30 in #detail

MIT 许可证

15KB
256

USLEGALPRO

uslegalpro 是一个简单的库,帮助与 uslegalpro 的 JSON API 进行交互。

在端点

目前有几个端点可用。我希望根据需要添加更多。请随意创建一个 pull request 来添加更多。

  • 身份验证 验证用户
  • 案例预览 按 case_number 和司法管辖区查询案例
  • 详情 获取案例的详细信息

在 URL 上

您可以指定要使用的 URL 作为端点,您现在也可以使用预建的 Texas 端点,我计划稍后添加更多州。

假设上述端点具有以下路由

POST /authenticate GET /search_case GET /case/{CASE_TRACKING_ID}

请求 & 类型

唯一的身份验证请求方式是如果您成功进行了身份验证。在库提供的方法之外无法构造客户端(已认证或未认证)。但是您仍然可以修改和查看客户端使用的属性。

示例用法

身份验证

use uslegalpro::{client::NoAuthClient, state::State, auth::{authenticate, user::User}};
use reqwest::Client;

async fn auth() {
    let texas = State::Texas;
    let client = NoAuthClient::new(client, "MY_CLIENT_TOKEN", texas.endpoint());

    let user = User {
        username: "MY_USERNAME",
        password: "MY_PASSWORD",
    };

    let authtoken = authenticate(client, user).await.unwrap();

    println!("AUTHED = {}", authtoken);

    let client = client.into_authed_client(&authtoken);

    // client can now make authed requests
}

案例预览

use uslegalpro::{query::{query, Query}};

async fn pre() {
    // client from last part of authentication example
    let case_query = Query {
        client,
        case_number: "MY_CASE_#",
        jurisdiction: "county:court",
    };

    let previews = query(case_query).await.unwrap();

    println!("my vector of previews = {:?}", previews);
}

依赖项

~3–18MB
~241K SLoC