Skip to content

Commit f6663b6

Browse files
ydfzgyjleviding
authored andcommitted
up to date 20171127 (xitu#84)
1 parent 7cb00d6 commit f6663b6

File tree

4 files changed

+49
-21
lines changed

4 files changed

+49
-21
lines changed

site/code/index.html.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -253,22 +253,22 @@ app.use('/graphql', graphqlHTTP({
253253
app.listen(4000, () => console.log('Now browse to localhost:4000/graphql'));
254254
\`\`\`
255255
256-
#### [graphql-server](http://dev.apollodata.com/tools/graphql-server/index.html) ([github](https://github.com/apollostack/graphql-server)) ([npm](https://www.npmjs.com/package/graphql-server-express))
256+
#### [apollo-server](https://www.apollographql.com/docs/apollo-server/) ([github](https://github.com/apollographql/apollo-server)) ([npm](https://www.npmjs.com/package/apollo-server-express))
257257
258258
来自于 Apollo 的一套 GraphQL server 包,可用于多种 Node.js HTTP 框架(Express,Connect,Hapi,Koa 等)。
259259
260-
如果要运行 \`graphql-server-express\` 的 hello world 服务器:
260+
如果要运行 \`apollo-server-express\` 的 hello world 服务器:
261261
262262
\`\`\`bash
263-
npm install graphql-server-express body-parser express graphql graphql-tools
263+
npm install apollo-server-express body-parser express graphql graphql-tools
264264
\`\`\`
265265
266266
然后使用 \`node server.js\` 以运行 \`server.js\` 中的代码:
267267
268268
\`\`\`js
269269
var express = require('express');
270270
var bodyParser = require('body-parser');
271-
var { graphqlExpress, graphiqlExpress } = require('graphql-server-express');
271+
var { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
272272
var { makeExecutableSchema } = require('graphql-tools');
273273
274274
var typeDefs = [\`
@@ -295,7 +295,7 @@ app.use('/graphiql', graphiqlExpress({endpointURL: '/graphql'}));
295295
app.listen(4000, () => console.log('Now browse to localhost:4000/graphiql'));
296296
\`\`\`
297297
298-
GraphQL Server 也支持所有的 Node.js HTTP 服务器框架:Express、Connect、HAPI 和 Koa。
298+
Apollo Server 也支持所有的 Node.js HTTP 服务器框架:Express、Connect、HAPI 和 Koa。
299299
300300
### PHP
301301
@@ -395,6 +395,7 @@ Executor.execute(schema, query) map println
395395
- [Java / Android](#java-android)
396396
- [JavaScript](#javascript-1)
397397
- [Swift / Objective-C iOS](#swift-objective-c-ios)
398+
- [Python](#python-1)
398399
399400
### C# / .NET
400401
@@ -411,15 +412,19 @@ Executor.execute(schema, query) map println
411412
### JavaScript
412413
413414
- [Relay](https://facebook.github.io/relay/) ([github](https://github.com/facebook/relay)) ([npm](https://www.npmjs.com/package/react-relay)):Facebook 的框架,用于构建与 GraphQL 后端交流的 React 应用。
414-
- [Apollo Client](http://dev.apollodata.com/react/) ([github](https://github.com/apollostack/apollo-client)):一个强大的 JavaScript GraphQL 客户端,设计用于与 React、React Native、Angular 2 或者原生 JavaScript 一同工作。
415+
- [Apollo Client](http://apollographql.com/client/) ([github](https://github.com/apollographql/apollo-client)):一个强大的 JavaScript GraphQL 客户端,设计用于与 React、React Native、Angular 2 或者原生 JavaScript 一同工作。
415416
- [graphql-request](https://github.com/graphcool/graphql-request):一个简单的弹性的 JavaScript GraphQL 客户端,可以运行于所有的 JavaScript 环境(浏览器,Node.js 和 React Native)—— 基本上是 \`fetch\` 的轻度封装。
416417
- [Lokka](https://github.com/kadirahq/lokka):一个简单的 JavaScript GraphQL 客户端,可以运行于所有的 JavaScript 环境 —— 浏览器,Node.js 和 React Native。
417418
- [nanogql](https://github.com/yoshuawuyts/nanogql):一个使用模板字符串的小型 GraphQL 客户端库。
418419
419420
### Swift / Objective-C iOS
420421
421-
- [Apollo iOS](http://dev.apollodata.com/ios/) ([github](https://github.com/apollostack/apollo-ios)):一个用于 iOS 的 GraphQL 客户端,返回查询特定的 Swift 类型,与 Xcode 集成后可以分屏显示你的 Swift 源代码和 GraphQL,并能在行内展示验证错误。
422-
- [GraphQL iOS](https://github.com/funcompany/graphql-ios): 一个用于 iOS 的 Objective-C GraphQL 客户端。
422+
- [Apollo iOS](https://www.apollographql.com/docs/ios/) ([github](https://github.com/apollographql/apollo-ios)):一个用于 iOS 的 GraphQL 客户端,返回查询特定的 Swift 类型,与 Xcode 集成后可以分屏显示你的 Swift 源代码和 GraphQL,并能在行内展示验证错误。
423+
- [GraphQL iOS](https://github.com/funcompany/graphql-ios):一个用于 iOS 的 Objective-C GraphQL 客户端。
424+
425+
### Python
426+
427+
- [GQL](https://github.com/graphql-python/gql):一个 Python 中的 GraphQL 客户端。
423428
424429
## 工具
425430
@@ -429,11 +434,12 @@ Executor.execute(schema, query) map println
429434
430435
## 服务
431436
432-
- [Apollo Optics](http://www.apollodata.com/optics/):一个用于监视 GraphQL 后端的性能和使用的服务。
437+
- [Apollo Engine](http://www.apollographql.com/engine/):一个用于监视 GraphQL 后端的性能和使用的服务。
433438
- [GraphCMS](https://graphcms.com/):一个 BaaS(后端即服务),它为您配置了一个作为内容编辑工具来处理存储数据的 GraphQL 后端。
434-
- [Graphcool](https://www.graph.cool) ([github](https://github.com/graphcool)):一个BaaS(后端即服务),它为您的应用程序提供了一个 GraphQL 后端,且具有用于管理数据库和存储数据的强大的 web ui。
435-
- [Reindex](https://www.reindex.io/baas/) ([github](https://github.com/reindexio/reindex-js)):一个BaaS(后端即服务),它针对使用 React 和 Relay 的应用程序配置了 GraphQL 后端。
436-
- [Scaphold](https://scaphold.io) ([github](https://github.com/scaphold-io)):一个BaaS(后端即服务),为您的应用程序配置了一个拥有多种不同集成的 GraphQL 后端。
439+
- [Graphcool](https://www.graph.cool) ([github](https://github.com/graphcool)):一个 BaaS(后端即服务),它为您的应用程序提供了一个 GraphQL 后端,且具有用于管理数据库和存储数据的强大的 web ui。
440+
- [Reindex](https://www.reindex.io/baas/) ([github](https://github.com/reindexio/reindex-js)):一个 BaaS(后端即服务),它针对使用 React 和 Relay 的应用程序配置了 GraphQL 后端。
441+
- [Scaphold](https://scaphold.io) ([github](https://github.com/scaphold-io)):一个 BaaS(后端即服务),为您的应用程序配置了一个拥有多种不同集成的 GraphQL 后端。
442+
- [Tipe](https://tipe.io) ([github](https://github.com/tipeio)): 一个 SaaS(软件即服务)内容管理系统,允许您使用强大的编辑工具创建您的内容,并通过 GraphQL 或 REST API 从任何地方访问它。
437443
438444
## 更多内容
439445

site/community/Community-Events.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ GraphQL-Europe 是欧洲非营利性的 GraphQL 大会,邀请了来自世界
8585
- [GraphQL Austin](https://www.meetup.com/ATX-GraphQL/)
8686
- [GraphQL Miami](https://www.meetup.com/Miami-GraphQL/)
8787
- [GraphQL Los Angeles](https://www.meetup.com/Los-Angeles-GraphQL-Meetup/)
88+
- [GraphQL Dallas-Fort Worth](https://www.meetup.com/DFW-GraphQL-Meetup/)
8889

8990
### 欧洲
9091

@@ -101,7 +102,7 @@ GraphQL-Europe 是欧洲非营利性的 GraphQL 大会,邀请了来自世界
101102
### 澳洲
102103

103104
- [GraphQL Melbourne](http://graphql.melbourne/)
104-
- [GraphQL Sydney](https://www.meetup.com/GraphQL-Sydney/)
105+
- [GraphQL Sydney](http://graphql.sydney/)
105106

106107
### 亚洲
107108

site/learn/Learn-Queries.md

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: ../_core/DocsLayout
44
category: 学习
55
permalink: /learn/queries/
66
next: /learn/schema/
7-
sublinks: 字段(Fields),参数(Arguments),别名(Aliases),片段(Fragments),变量(Variables),操作名称(Operation Name),指令(Directives),变更(Mutations),内联片段(Inline Fragments)
7+
sublinks: 字段(Fields),参数(Arguments),别名(Aliases),片段(Fragments),操作名称(Operation Name),变量(Variables),指令(Directives),变更(Mutations),内联片段(Inline Fragments)
88
---
99

1010
你可以在本页学到有关如何查询 GraphQL 服务器的详细信息。
@@ -80,6 +80,7 @@ sublinks: 字段(Fields),参数(Arguments),别名(Aliases),片段(
8080
## 别名(Aliases)
8181

8282
如果你眼睛够锐利,你可能已经发现,即便结果中的字段与查询中的字段能够匹配,但是因为他们并不包含参数,你就没法通过不同参数来查询相同字段。这便是为何你需要**别名** —— 这可以让你重命名结果中的字段为任意你想到的名字。
83+
8384
```graphql
8485
# { "graphiql": true }
8586
{
@@ -124,6 +125,32 @@ fragment comparisonFields on Character {
124125
你可以看到上面的查询如何漂亮地重复了字段。片段的概念经常用于将复杂的应用数据需求分割成小块,特别是你要将大量不同片段的 UI 组件组合成一个初始数据获取的时候。
125126

126127

128+
## 操作名称(Operation name)
129+
130+
这之前,我们都使用了简写句法,省略了 `query` 关键字和查询名称,但是生产中使用这些可以使我们代码减少歧义。
131+
如果你想要执行查询以外的操作或传递动态变量,则需要将这些可选部分用于 GraphQL 操作。
132+
133+
下面的示例包含了作为**操作类型**的关键字 `query` 以及**操作名称** `HeroNameAndFriends`
134+
135+
```graphql
136+
# { "graphiql": true }
137+
query HeroNameAndFriends {
138+
hero {
139+
name
140+
friends {
141+
name
142+
}
143+
}
144+
}
145+
```
146+
147+
**操作类型**可以是 _query__mutation__subscription_,描述你打算做什么类型的操作。
148+
149+
**操作名称**是你的操作的有意义和明确的名称。这对于调试和服务器端日志记录的原因可能非常有用。
150+
当在你的网络日志或是 GraphQL 服务器中出现问题时,通过名称来从你的代码库中找到一个查询比尝试去破译内容更加容易。
151+
就把它想成你喜欢的程序语言中的函数名。例如,在 JavaScript 中,我们只用匿名函数就可以工作,但是当我们给了函数名之后,就更加容易追踪、调试我们的代码,并在其被调用的时候做日志。同理,GraphQL 的查询和变更名称,以及片段名称,都可以成为服务端侧用来识别不同 GraphQL 请求的有效调试工具。
152+
153+
127154
## 变量(Variables)
128155

129156
目前为止,我们将参数写在了查询字符串内。但是在很多应用中,字段的参数可能是动态的:例如,可能是一个"下拉菜单"让你选择感兴趣的《星球大战》续集,或者是一个搜索区,或者是一组过滤器。
@@ -181,12 +208,6 @@ query HeroNameAndFriends($episode: Episode = "JEDI") {
181208

182209
当所有变量都有默认值的时候,你可以不传变量直接调用查询。如果任何变量作为变量字典的部分传递了,它将覆盖其默认值。
183210

184-
## 操作名称(Operation name)
185-
186-
上面案例中我们看到的另一个东西就是我们的查询还有个**操作名**。这之前,我们都使用了简写句法,省略了 `query` 关键字和查询名称,但是生产中使用这些可以使我们代码减少歧义。
187-
188-
就把它想成你喜欢的程序语言中的函数名。例如,在 JavaScript 中,我们只用匿名函数就可以工作,但是当我们给了函数名之后,就更加容易追踪、调试我们的代码,并在其被调用的时候做日志。同理,GraphQL 的查询和变更名称,以及片段名称,都可以成为服务端侧用来识别不同 GraphQL 请求的有效调试工具。
189-
190211

191212
## 指令(Directives)
192213

site/users/index.html.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ var logos = [
503503
{
504504
name: 'Alembic',
505505
img: 'alembic.png',
506-
link: 'http://alembic.com.au',
506+
link: 'https://alembic.com.au',
507507
},
508508
{
509509
name: 'Twitter',

0 commit comments

Comments
 (0)