diff --git a/docs/zh-CN/src/introduction.md b/docs/zh-CN/src/introduction.md index bfd470dd..660a9c07 100644 --- a/docs/zh-CN/src/introduction.md +++ b/docs/zh-CN/src/introduction.md @@ -1 +1,13 @@ # 介绍 + +`Async-graphql`是用Rust语言实现的GraphQL服务端库。它完全兼容GraphQL规范以及绝大部分的扩展功能,类型安全并且高性能。 + +你可以用Rust语言的方式来定义Schema,过程宏会自动生成GraphQL查询的框架代码,没有扩展Rust的语法,意味着Rustfmt可以正常使用,我很看重这一点,这也是为什么我会开发Async-graphql的原因之一。 + +## 为什么我要开发Async-graphql? + +我喜欢GraphQL和Rust,之前我一直用`Juniper`,它解决了我用Rust实现GraphQL服务器的问题,但也有一些遗憾,其中最重要的是它当时不支持async/await,所以我决定自己做一个给自己用。 + +## Async-graphql的现状 + +今天(2020年04月15日)写这篇文档的时候,刚好距离我开始Async-graphql的开发一个半月,它已经大大超出了当初我设定的目标,成为了一个全功能的GraphQL服务端库。 \ No newline at end of file diff --git a/docs/zh-CN/src/quickstart.md b/docs/zh-CN/src/quickstart.md index e69de29b..886657a8 100644 --- a/docs/zh-CN/src/quickstart.md +++ b/docs/zh-CN/src/quickstart.md @@ -0,0 +1,35 @@ +# 快速开始 + +## 添加依赖 + +```toml +[dependencies] +async-graphql = "1.9.0" +``` + +## 写一个Schema + +一个GraphQL的Schema包含一个必须的查询(Query)根对象,可选的变更(Mutation)根对象和可选的订阅(Subscription)根对象,这些对象类型都是用Rust语言的struct来描述它们,结构的字段对应GraphQL对象的字段,但你需要用`#[field]`来修饰它,这样`Async-graphql`提供的过程宏才能够正确的识别它。 + +Async-graphql实现了常用数据类型到GraphQL类型的映射,例如`i32`, `f64`, `Option`, `Vec`等。同时,你也能够[扩展这些基础类型](custom_scalars.md),基础数据类型在GraphQL里面称为标量。 + +下面是一个简单的例子,我们只提供一个查询,返回`a`和`b`的和。 + +```rust +use async_graphql::*; + +struct Query; + +#[Object] +impl Query { + #[field(desc = "Returns the sum of a and b")] + async fn add(a: i32, b: i32) -> i32 { + a + b + } +} + +type MySchema = Schema; + +``` + +## 执行查询 \ No newline at end of file