#google #google-api #list

google-api-proto

此库由 googleapis/googleapis 使用 tonic-build 生成

696个稳定版本

1.696.0 2024年7月2日
1.659.0 2024年5月31日
1.571.0 2024年3月30日
1.452.0 2023年12月29日
1.0.0-alpha.22021年12月30日

215网络编程

Download history 1968/week @ 2024-04-28 1750/week @ 2024-05-05 1727/week @ 2024-05-12 2419/week @ 2024-05-19 1662/week @ 2024-05-26 2197/week @ 2024-06-02 2004/week @ 2024-06-09 1905/week @ 2024-06-16 2402/week @ 2024-06-23 840/week @ 2024-06-30 778/week @ 2024-07-07 679/week @ 2024-07-14 658/week @ 2024-07-21 751/week @ 2024-07-28 582/week @ 2024-08-04 568/week @ 2024-08-11

2,587 每月下载量
用于 4 包

MIT/Apache

67MB
1M SLoC

google-api-proto

ci pub doc version

此库由 googleapis/googleapis 使用 tonic-build 生成。

概述

此库包含从 googleapis/googleapis 生成的所有代码。

使用每个产品API时,必须通过功能标志显式将其包含在构建中。
例如,如果您想使用 Cloud Pub/Sub,请将以下内容写入 Cargo.toml:features = ["google-pubsub-v1"]

功能名称是每个proto文件包名的点分隔符,替换为连字符。如果您指定了包,它将自动加载依赖包并将它们包含在构建中。这意味着 features = ["google-spanner-admin-database-v1"] 与下面的代码相同

pub mod google {
    pub mod api {
        // generated code
    }
    pub mod iam {
        pub mod v1 {
            // generated code
        }
    }
    pub mod longrunning {
        // generated code
    }
    pub mod r#type {
        // generated code
    }
    pub mod rpc {
        // generated code
    }
    pub mod spanner {
        pub mod admin {
            pub mod database {
                pub mod v1 {
                    // generated code
                }
            }
        }
    }
}

此外,可以指定多个功能。
可用功能的列表可以在 此处 找到。

版本矩阵

google-api-proto tonic tonic-build
1.0.0 <= 0.6.x 0.6.x
1.59.0 <= 0.7.x 0.7.x
1.243.0 <= 0.8.x 0.8.x
1.280.0 <= 0.9.x 0.9.x
1.415.0 <= 0.10.x 0.10.x
1.516.0 <= 0.11.x 0.11.x

示例

完整代码可以在 此处 找到。

Cargo.toml

[dependencies]
# For runtime
tokio = { version = "1.33.0", features = ["macros", "rt-multi-thread"] }
# For google authentication
google-authz = { version = "1.0.0-alpha.5", features = ["tonic"] }
# For gRPC
tonic = { version = "0.11.0", features = ["tls", "tls-webpki-roots"] }
prost = "0.12.3"
prost-types = "0.12.3"
google-api-proto = { version = "1", features = ["google-spanner-admin-database-v1"] }

main.rs

use std::env;

use google_api_proto::google::spanner::admin::database::v1::{
    database_admin_client::DatabaseAdminClient, ListDatabasesRequest,
};
use google_authz::GoogleAuthz;
use tonic::{transport::Channel, Request};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let project = "google project id";
    let instance = "spanner instance name";

    let channel = Channel::from_static("https://spanner.googleapis.com").connect().await?;
    let channel = GoogleAuthz::new(channel).await;

    let mut client = DatabaseAdminClient::new(channel);
    let response = client
        .list_databases(Request::new(ListDatabasesRequest {
            parent: format!("projects/{}/instances/{}", project, instance),
            page_size: 100,
            ..Default::default()
        }))
        .await?;
    println!("response = {:#?}", response);

    Ok(())
}

许可证

根据您的选择,受Apache License, Version 2.0MIT 许可证许可。

依赖项

~4–6MB
~100K SLoC