Rust:Cynic(客户端)
graphql-github-io-zh-Hans生态项目与库
Rust:Cynic(客户端)
描述: 一个为 Rust 设计的自带类型(bring your own types)GraphQL 客户端。
这是一个 Rust 客户端库,它根据你提供的类型生成查询,并验证这些类型是否与你的 schema 形状匹配。
它提供了一个生成器,用于从现有的 GraphQL 查询中引导(bootstrap)类型。
使用示例
rust
#[derive(cynic::QueryFragment, Debug)]
#[cynic(
schema_path = "../schemas/starwars.schema.graphql",
query_module = "query_dsl",
graphql_type = "Root",
argument_struct = "FilmArguments"
)]
struct FilmDirectorQuery {
#[arguments(id = &args.id)]
film: Option<Film>,
}
#[derive(cynic::QueryFragment, Debug)]
#[cynic(
schema_path = "../schemas/starwars.schema.graphql",
query_module = "query_dsl",
graphql_type = "Film"
)]
struct Film {
title: Option<String>,
director: Option<String>,
}
#[derive(cynic::FragmentArguments)]
struct FilmArguments {
id: Option<cynic::Id>,
}
fn main() {
use cynic::{QueryBuilder, http::ReqwestBlockingExt};
let query = FilmDirectorQuery::build(&FilmArguments {
id: Some("ZmlsbXM6MQ==".into()),
})
reqwest::blocking::Client::new()
.post("https://swapi-graphql.netlify.com/.netlify/functions/index")
.run_graphql(query)
.unwrap()
}
mod query_dsl {
cynic::query_dsl!("../schemas/starwars.schema.graphql");
}
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
