790 B
790 B
输入对象(InputObject)
你可以定义一个对象作为参数类型,GraphQL称之为Input Object
,输入对象的定义方式和简单对象很像,不同的是,简单对象只能用于输出,而输入对象只能用于输入。
输入对象不需要为每个字段指定#[field]
标记,它每个字段都是Input Value
。但你也可以通过可选的#[field]
标记来给字段添加描述,重命名。
use async_graphql::*;
#[InputObject]
struct Coordinate {
latitude: f64,
#[field(desc = "...")]
longitude: f64
}
struct Mutation;
#[Object]
impl Mutation {
async fn users_at_location(&self, coordinate: Coordinate, radius: f64) -> Vec<User> {
// 将坐标写入数据库
// ...
}
}