#api-client #client-token #generated #opinionated #service #client-secret #gusto

gusto-api

为 Gusto API 完全自动生成且具有偏见的 API 客户端

35 个发布版本

0.7.0 2023 年 7 月 19 日
0.4.0 2023 年 3 月 31 日
0.3.1 2022 年 11 月 18 日
0.2.15 2022 年 7 月 28 日
0.1.1 2020 年 11 月 17 日

#1170 in 网页编程

Download history 12/week @ 2024-03-10 183/week @ 2024-03-31

每月 235 次下载

MIT 许可证

370KB
8K SLoC

gusto-api

为 Gusto 完全自动生成且具有偏见的 API 客户端库。

docs.rs

API 详细信息

欢迎使用 Gusto API 文档。

API 服务条款

联系方式

姓名 电子邮件
开发者关系 [email protected]

客户端详细信息

此客户端基于 API 规范版本 1.0Gusto OpenAPI 规范 自动生成。这样,随着新功能的添加,它将保持最新。文档与代码一起生成,以便轻松使用此库。

要安装库,请将以下内容添加到您的 Cargo.toml 文件中。

[dependencies]
gusto-api = "0.7.0"

基本示例

典型使用需要初始化一个 Client。这需要用户代理字符串和一系列凭证。

use gusto_api::Client;

let gusto = Client::new(
    String::from("client-id"),
    String::from("client-secret"),
    String::from("redirect-uri"),
    String::from("token"),
    String::from("refresh-token"),
    gusto_api::RootProductionServer
);

或者,库可以在环境中搜索客户端所需的大部分变量

  • GUSTO_CLIENT_ID
  • GUSTO_CLIENT_SECRET
  • GUSTO_REDIRECT_URI

然后您可以从环境中创建一个客户端。

use gusto_api::Client;

let gusto = Client::new_from_env(
    String::from("token"),
    String::from("refresh-token"),
    gusto_api::RootProductionServer
);

对于 tokenrefresh_token,传递空值是可以的。在客户端的初始状态下,您将不知道这些值。

要启动一个全新的客户端并获得 tokenrefresh_token,请使用以下方法。

use gusto_api::Client;

async fn do_call() {
    let mut gusto = Client::new_from_env("", "", gusto_api::RootProductionServer);

    // Get the URL to request consent from the user.
    // You can optionally pass in scopes. If none are provided, then the
    // resulting URL will not have any scopes.
    let user_consent_url = gusto.user_consent_url(&["some-scope".to_string()]);

    // In your redirect URL capture the code sent and our state.
    // Send it along to the request for the token.
    let code = "thing-from-redirect-url";
    let state = "state-from-redirect-url";
    let mut access_token = gusto.get_access_token(code, state).await.unwrap();

    // You can additionally refresh the access token with the following.
    // You must have a refresh token to be able to call this function.
    access_token = gusto.refresh_access_token().await.unwrap();
}

依赖关系

~16–34MB
~617K SLoC