Skip to content

Commit 7cb00d6

Browse files
ydfzgyjleviding
authored andcommitted
up to date (xitu#83)
1 parent 24b7151 commit 7cb00d6

23 files changed

+148
-11
lines changed

site/_core/Site.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,10 @@ export default ({ page, category, title, section, className, noSearch, children
9191
<img src="/img/oss_logo.png" alt="Facebook Open Source" width="170" height="45" />
9292
</a>
9393
<section className="copyright">
94-
Copyright &copy; 2016 Facebook Inc. The contents of this page are licensed BSD-3-Clause.
94+
Copyright &copy;
95+
<span><script>document.write(new Date().getFullYear())</script> </span>
96+
<noscript>2017 </noscript>
97+
Facebook Inc. The contents of this page are licensed BSD-3-Clause.
9598
</section>
9699
</footer>
97100

site/code/index.html.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default ({ page, site }) =>
1919
<h1>Code</h1>
2020
<Marked>{`
2121
22-
GraphQL 已有多种编程语言支持。下表包含一些流行的服务端框架、客户端库和其他有用的内容
22+
GraphQL 已有多种编程语言支持。下表包含一些流行的服务端框架、客户端库、服务和其他有用的内容
2323
2424
## 服务端库
2525
@@ -30,6 +30,7 @@ GraphQL 已有多种编程语言支持。下表包含一些流行的服务端框
3030
- [Elixir](#elixir)
3131
- [Erlang](#erlang)
3232
- [Go](#go)
33+
- [Groovy](#groovy)
3334
- [Java](#java)
3435
- [JavaScript](#javascript)
3536
- [PHP](#php)
@@ -122,6 +123,26 @@ $ curl -XPOST "http://0:3000" -H'Content-Type: application/json' -d'{
122123
- [graphql-relay-go](https://github.com/graphql-go/relay): 一个用于帮助构建 graphql-go 服务器的 Go/Golang 库,支持 react-relay 。
123124
- [neelance/graphql-go](https://github.com/neelance/graphql-go):一个活跃的 Golang GraphQL 实现。
124125
126+
### Groovy
127+
128+
#### [gorm-graphql](https://github.com/grails/gorm-graphql/)
129+
130+
**核心库** —— GORM GraphQL 库提供了基于你的 GORM 实体来生成 GraphQL schema 的功能。除了能够将域类映射到 GraphQL schema 之外,核心库还提供了通过 schema 的执行来查询、更新和删除数据的“数据访问者”的默认实现。
131+
132+
**Grails 插件** —— 作为对核心库的补充,GORM GraphQL Grails 插件能够:
133+
134+
- 提供一个通过 HTTP 来接收和响应 GraphQL 请求的控制器。
135+
- 在启动时使用 spring bean 配置生成 schema,以便于扩展。
136+
- 包含一个在开发环境下默认启用的 [GraphiQL](https://github.com/graphql/graphiql) 浏览器。这一浏览器可以在 /graphql/browser 下访问。
137+
- 使用 Grails 提供的数据绑定覆盖默认的数据绑定
138+
- 提供一个 [特质](https://grails.github.io/gorm-graphql/latest/api/org/grails/gorm/graphql/plugin/testing/GraphQLSpec.html) 以使您更容易对 GraphQL 入口端点进行集成测试
139+
140+
更多信息请查看 [文档](https://grails.github.io/gorm-graphql/latest/guide/index.html)。
141+
142+
#### [GQL](https://grooviter.github.io/gql/)
143+
144+
GQL 是一个在 Groovy 中使用 GraphQL 的库。
145+
125146
### Java
126147
127148
#### [graphql-java](https://github.com/graphql-java/graphql-java)
@@ -391,8 +412,9 @@ Executor.execute(schema, query) map println
391412
392413
- [Relay](https://facebook.github.io/relay/) ([github](https://github.com/facebook/relay)) ([npm](https://www.npmjs.com/package/react-relay)):Facebook 的框架,用于构建与 GraphQL 后端交流的 React 应用。
393414
- [Apollo Client](http://dev.apollodata.com/react/) ([github](https://github.com/apollostack/apollo-client)):一个强大的 JavaScript GraphQL 客户端,设计用于与 React、React Native、Angular 2 或者原生 JavaScript 一同工作。
394-
- [graphql-request](https://github.com/graphcool/graphql-request):个简单的弹性的 JavaScript GraphQL 客户端,可以运行于所有的 JavaScript 环境(浏览器,Node.js 和 React Native)—— 基本上是 \`fetch\` 的轻度封装。
415+
- [graphql-request](https://github.com/graphcool/graphql-request):一个简单的弹性的 JavaScript GraphQL 客户端,可以运行于所有的 JavaScript 环境(浏览器,Node.js 和 React Native)—— 基本上是 \`fetch\` 的轻度封装。
395416
- [Lokka](https://github.com/kadirahq/lokka):一个简单的 JavaScript GraphQL 客户端,可以运行于所有的 JavaScript 环境 —— 浏览器,Node.js 和 React Native。
417+
- [nanogql](https://github.com/yoshuawuyts/nanogql):一个使用模板字符串的小型 GraphQL 客户端库。
396418
397419
### Swift / Objective-C iOS
398420
@@ -405,6 +427,14 @@ Executor.execute(schema, query) map println
405427
- [libgraphqlparser](https://github.com/graphql/libgraphqlparser):一个 C++ 版 GraphQL 查询语言分析器,提供 C 和 C++ API。
406428
- [Graphql Language Service](https://github.com/graphql/graphql-language-service):一个用于构建 IDE 的 GraphQL 语言服务(诊断、自动完成等)的接口。
407429
430+
## 服务
431+
432+
- [Apollo Optics](http://www.apollodata.com/optics/):一个用于监视 GraphQL 后端的性能和使用的服务。
433+
- [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 后端。
437+
408438
## 更多内容
409439
410440
- [awesome-graphql](https://github.com/chentsulin/awesome-graphql):一个神奇的社区,维护一系列库、资源等。

site/community/Community-Events.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,33 @@ sublinks: 即将举行的活动,聚会
88

99
## 即将举行的活动
1010

11+
### GraphQL 在生产环境中:KLM & Bynder 的案例
12+
13+
- **日期:** 2017 年 10 月 10 日
14+
- **地点:** 荷兰 阿姆斯特丹
15+
- **链接:** https://www.meetup.com/Bynder-JS-Guild/events/242414878/
16+
17+
我们很高兴分享在 KLM 和 Bynder 的数千人每天使用的基于 GraphQL 的应用程序的经验。除了基础之外我们将讨论:持久性查询(查询白名单并减少带宽使用);Optimistic UI(使界面响应更快);将 React 组件连接到带有包装器的 GraphQL(对默认 Apollo 前端实现的改进)... 最后锦上添花的是:GraphQL订阅。
18+
19+
### GraphQL Summit 2017
20+
21+
- **日期:** 2017 年 10 月 25-26 日
22+
- **地点:** 美国 加利福尼亚州 旧金山
23+
- **链接:** http://summit.graphql.com
24+
25+
GraphQL Summit 是一个完全专注于 GraphQL 开发者社区的会议。来自世界各地的演讲嘉宾将讨论关于 GraphQL 的最佳实践、设计模式、采用故事、生产环境中的 GraphQL 以及开源生态系统。今年的演讲将持续两天,并举办一个 afterparty 和工作坊。
26+
27+
## 过去的活动
28+
29+
### Relay Modern 还是 Apollo?
30+
31+
- **会议:** ReactNext 2017
32+
- **日期:** 2017 年 9 月 10 日
33+
- **地点:** 以色列 特拉维夫
34+
- **链接:** http://react-next.com
35+
36+
新项目启动发。每个人都很兴奋。在技术栈中加入了 GraphQL。啊!生活多美好!突然有人提出这个问题。那么我们应该使用哪个 GraphQL 客户端?你什么意思?哦,漏~~!别担心我会帮助你。在这个演讲中,我将把这两个客户端放在显微镜下来找出它们哪些方面最优秀、它们共同拥有什么特性、最重要的是它们的主要区别是什么?而你则可以休息了。
37+
1138
### 释放 GraphQL 和 React 的力量
1239

1340
- **会议:** OdessaJS 2017
@@ -17,9 +44,6 @@ sublinks: 即将举行的活动,聚会
1744

1845
GraphQL 很棒!仅仅一年的时间它已经受到很多来自社区的关注。许多实现已经出现并且变得越来越好。GraphQL是否适合您?它是一种查询语言还是运行时?在这个演讲中,我将带着您从零基础成为专家。
1946

20-
21-
## 过去的活动
22-
2347
### GraphQL —— 人民的查询语言
2448

2549
- **日期:** 2017 年 6 月 21 日
@@ -56,6 +80,11 @@ GraphQL-Europe 是欧洲非营利性的 GraphQL 大会,邀请了来自世界
5680
- [GraphQL & Relay (San Francisco)](http://www.meetup.com/graphql/)
5781
- [GraphQL Seattle](https://www.meetup.com/Seattle-GraphQL-Meetup/)
5882
- [GraphQL Toronto](https://www.meetup.com/GraphQL-Toronto/)
83+
- [GraphQL NYC](https://www.meetup.com/GraphQL-NYC/)
84+
- [GraphQL Atlanta](https://www.meetup.com/GraphQL-Atlanta/)
85+
- [GraphQL Austin](https://www.meetup.com/ATX-GraphQL/)
86+
- [GraphQL Miami](https://www.meetup.com/Miami-GraphQL/)
87+
- [GraphQL Los Angeles](https://www.meetup.com/Los-Angeles-GraphQL-Meetup/)
5988

6089
### 欧洲
6190

@@ -64,10 +93,15 @@ GraphQL-Europe 是欧洲非营利性的 GraphQL 大会,邀请了来自世界
6493
- [GraphQL Istanbul](https://www.meetup.com/GraphQL-Istanbul/)
6594
- [GraphQL London](https://www.meetup.com/GraphQL-London)
6695
- [GraphQL Paris](https://www.meetup.com/GraphQL-Paris/)
96+
- [GraphQL Munich](https://www.meetup.com/GraphQL-Munich/)
97+
- [GraphQL Barcelona](https://www.meetup.com/GraphQL-Barcelona/)
98+
- [GraphQL Stockholm](https://www.meetup.com/GraphQL-Stockholm/)
99+
- [GraphQL Budapest](https://www.meetup.com/Budapest-GraphQL/)
67100

68101
### 澳洲
69102

70103
- [GraphQL Melbourne](http://graphql.melbourne/)
104+
- [GraphQL Sydney](https://www.meetup.com/GraphQL-Sydney/)
71105

72106
### 亚洲
73107

site/community/Community-Resources.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ sublinks: 博客,视频
5656
- [GraphQL 讲解](https://medium.com/apollo-stack/graphql-explained-5844742f195e#.zdykxos6i) - Jonas Helfer
5757
- [GraphQL 概念可视化](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.hfczgtdsj) - Dhaivat Pandya
5858
- [构建 f8 App:使用 GraphQL & Relay](http://makeitopen.com/tutorials/building-the-f8-app/relay/)
59-
- [您的第一个 GraphQL 服务器](https://medium.com/the-graphqlhub/your-first-graphql-server-3c766ab4f0a2#.ovn0y19k4) - Clay Allsopp
59+
- [你的第一个 GraphQL 服务器](https://medium.com/the-graphqlhub/your-first-graphql-server-3c766ab4f0a2#.ovn0y19k4) - Clay Allsopp
60+
- [教程:用 Apollo-server、Dataloader 和 Knex 启动一个 JS API](https://bamtech.gitbooks.io/dev-standards/content/backend/graphql-js/getting-started-with-apollo-server-dataloader-knex.mo.html) - Thomas Pucci
6061
- [教程:如何构建一个 GraphQL 服务器](https://medium.com/apollo-stack/tutorial-building-a-graphql-server-cddaa023c035#.bu6sdnst4) - Jonas Helfer
6162
- [使用 GraphQL 查询参数设计强大的 API](https://www.graph.cool/docs/tutorials/designing-powerful-apis-with-graphql-query-parameters-aing7uech3/) - Johannes Schickling
6263
- [GraphQL 和不可思议的 Apollo Client](https://medium.com/google-developer-experts/graphql-and-the-amazing-apollo-client-fe57e162a70c) - Gerard Sans
@@ -108,3 +109,4 @@ Facebook 内外的开发者在世界各地的会议和聚会上都谈到了 Grap
108109
- [Scaphold Community](https://scaphold.io/community/): 一些帮助您将使用 GraphQL 的 app 发布到生产环境的资源
109110
- [GraphQL World](https://graphql-world.com): GraphQL 开发者和活动的全球社区
110111
- [GraphQL Talks](https://www.graph.cool/talks/): 找到并观看最好的 GraphQL 演讲
112+
- [Basically, Full-stack GraphQL](https://github.com/TejasQ/basically-fullstack-graphql):使用简单英文的一个基于代码的介绍在客户端_和_服务端使用 GraphQL

site/graphql-js/APIReference-TypeSystem.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: graphql/types
2+
title: graphql/type
33
layout: ../_core/GraphQLJSLayout
44
category: API 参考
55
permalink: /graphql-js/type/
@@ -251,6 +251,7 @@ type GraphQLInterfacesThunk = () => Array<GraphQLInterfaceType>;
251251

252252
type GraphQLFieldConfigMapThunk = () => GraphQLFieldConfigMap;
253253

254+
// 关于解析器函数,请参见下文
254255
type GraphQLFieldResolveFn = (
255256
source?: any,
256257
args?: {[argName: string]: any},
@@ -297,6 +298,8 @@ type GraphQLFieldConfigMap = {
297298
298299
当两个类型需要相互指代,或是某类型的某一字段类型为其自身,你可以使用函数表达式(也可称为闭包或是 thunk)来实现字段类型的延后求值。
299300
301+
注意,解析器函数提供 `source` 对象作为第一个参数。但是,如果未提供解析器函数,则将在 `source` 中查找与该字段名称相同的方法来作为默认的解析器。如果找到,则使用 `(args, context, info)` 调用该方法。由于它是一个在 `source` 上的方法,因此始终可以使用 `this` 来引用值。
302+
300303
#### 示例
301304
302305
```js

site/graphql-js/Tutorial-Mutations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ var root = {
133133
fakeDatabase[id] = input;
134134
return new Message(id, input);
135135
},
136-
}
136+
};
137137

138138
var app = express();
139139
app.use('/graphql', graphqlHTTP({

site/learn/Introduction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ permalink: /learn/
77
next: /learn/queries/
88
---
99

10-
> 在接下来的一系列文章中,我们会了解 GraphQL 是什么,它是如何运作以及如何使用它。在找如何搭建 GraphQL 服务的文档?这有一些类库可以帮你用[多种不同语言](/code/)实现 GraphQL。
10+
> 在接下来的一系列文章中,我们会了解 GraphQL 是什么,它是如何运作以及如何使用它。在找如何搭建 GraphQL 服务的文档?这有一些类库可以帮你用[多种不同语言](/code/)实现 GraphQL。通过实用教程深入学习体验,请访问 [How to GraphQL](https://www.howtographql.com) 全栈教程网站。
1111
1212
GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
1313

site/users/index.html.js

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,71 @@ var logos = [
531531
img: 'myntra.png',
532532
link: 'https://www.myntra.com/'
533533
},
534+
{
535+
name: 'Conduit',
536+
img: 'conduit.png',
537+
link: 'https://conduithq.com/'
538+
},
539+
{
540+
name: 'Medallia',
541+
img: 'medallia.png',
542+
link: 'https://www.medallia.com/'
543+
},
544+
{
545+
name: 'Colectica',
546+
img: 'colectica.png',
547+
link: 'http://www.colectica.com/'
548+
},
549+
{
550+
name: 'Neo4j',
551+
img: 'neo4j_logo.png',
552+
link: 'https://www.neo4j.com/developer/graphql/'
553+
},
554+
{
555+
name: 'ComparaOnline',
556+
img: 'comparaonline.png',
557+
link: 'https://www.comparaonline.com'
558+
},
559+
{
560+
name: 'Goalify.plus',
561+
img: 'goalify.png',
562+
link: 'https://goalify.plus'
563+
},
564+
{
565+
name: 'Teachers Pay Teachers',
566+
img: 'teacherspayteachers.png',
567+
link: 'https://teacherspayteachers.com'
568+
},
569+
{
570+
name: '1stdibs',
571+
img: '1stdibs.png',
572+
link: 'https://www.1stdibs.com/'
573+
},
574+
{
575+
name: 'Hackages',
576+
img: 'hackages.png',
577+
link: 'https://hackages.io/'
578+
},
579+
{
580+
name: 'Fairfax Media',
581+
img: 'fairfaxmedia.png',
582+
link: 'https://www.fairfaxmedia.com.au'
583+
},
584+
{
585+
name: 'Amplitude',
586+
img: 'amplitude.png',
587+
link: 'https://amplitude.com/engineering'
588+
},
589+
{
590+
name: 'Gentux',
591+
img: 'gentux.png',
592+
link: 'https://www.generationtux.com'
593+
},
594+
{
595+
name: 'Bynder',
596+
img: 'bynder.png',
597+
link: 'https://www.bynder.com'
598+
},
534599
// Adding your logo?
535600
// Add it to the /users/logos/ directory and then append an entry above this comment.
536601
//
@@ -560,7 +625,7 @@ module.exports = ({ page }) =>
560625
{logos.sort((a, b) =>
561626
a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1
562627
).map(logo =>
563-
<a href={logo.link} target="_blank" rel="noopener noreferrer" key={logo.name}>
628+
<a href={logo.link} target="_blank" rel="noopener noreferrer nofollow" key={logo.name}>
564629
<img src={'/users/logos/' + logo.img} title={logo.name} className={logo.isRound ? 'round' : null} />
565630
</a>
566631
)}

site/users/logos/1stdibs.png

12 KB
Loading

site/users/logos/20minutes.png

-35.4 KB
Loading

site/users/logos/amplitude.png

4.23 KB
Loading

site/users/logos/bynder.png

40.4 KB
Loading

site/users/logos/coletica.png

37.7 KB
Loading

site/users/logos/comparaonline.png

16.6 KB
Loading

site/users/logos/conduit.png

9.33 KB
Loading

site/users/logos/fairfaxmedia.png

34.2 KB
Loading

site/users/logos/gentux.png

2.83 KB
Loading

site/users/logos/goalify.png

43.5 KB
Loading

site/users/logos/graphcms.png

33.3 KB
Loading

site/users/logos/hackages.png

61.6 KB
Loading

site/users/logos/medallia.png

45.5 KB
Loading

site/users/logos/neo4j_logo.png

37 KB
Loading
9.87 KB
Loading

0 commit comments

Comments
 (0)