2020-04-16 02:22:57 +00:00
|
|
|
|
# 简单对象(SimpleObject)
|
|
|
|
|
|
2020-05-13 04:49:43 +00:00
|
|
|
|
简单对象是把Rust结构的所有字段都直接映射到GraphQL对象,不支持定义单独的Resolver函数。
|
2020-04-16 02:22:57 +00:00
|
|
|
|
|
2020-04-27 04:57:52 +00:00
|
|
|
|
下面的例子定义了一个名称为MyObject的对象,包含字段`a`和`b`,`c`由于标记为`#[field(skip)]`,所以不会映射到GraphQL。
|
2020-04-16 02:22:57 +00:00
|
|
|
|
|
2020-05-10 04:41:05 +00:00
|
|
|
|
**`a`和`b`字段都有描述信息,这会反映在GraphQL的内省信息中,它们采用了rustdoc和属性两种不同的写法,这两种写法`async-graphql`都支持。当两种写法同时存在时,属性的优先级更高。**
|
|
|
|
|
|
2020-04-16 02:22:57 +00:00
|
|
|
|
```rust
|
|
|
|
|
use async_graphql::*;
|
|
|
|
|
|
|
|
|
|
#[SimpleObject]
|
|
|
|
|
struct MyObject {
|
2020-05-10 04:41:05 +00:00
|
|
|
|
/// Value a
|
2020-04-16 02:22:57 +00:00
|
|
|
|
a: i32,
|
2020-05-10 04:41:05 +00:00
|
|
|
|
|
|
|
|
|
#[field(desc = "Value b")]
|
2020-04-16 02:22:57 +00:00
|
|
|
|
b: i32,
|
|
|
|
|
|
2020-04-27 04:57:52 +00:00
|
|
|
|
#[field(skip)]
|
2020-04-16 02:22:57 +00:00
|
|
|
|
c: i32,
|
|
|
|
|
}
|
|
|
|
|
```
|