Skip to content

Commit 6dbd053

Browse files
author
Kevin Landsberg
authored
Merge branch 'source' into source
2 parents 318f48a + e74d407 commit 6dbd053

29 files changed

+284
-152
lines changed

site/CNAME

Lines changed: 0 additions & 1 deletion
This file was deleted.

site/blog/20160502-rest-api-graphql-wrapper.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ However, as we mentioned before, this architecture features some inherent perfor
198198
Take the next 10 minutes to watch me build a server side version of the GraphQL wrapper above using Node and Express.
199199

200200
<iframe id="ytplayer" type="text/html" width="640" height="390"
201-
src="http://github.com/%3Cspan%20class="pl-corl">http://www.youtube.com/embed/UBGzsb2UkeY?autoplay=0&origin=http://graphql.org&start=900"
201+
src="http://github.com/%3Cspan%20class="pl-corl">https://www.youtube.com/embed/UBGzsb2UkeY?autoplay=0&origin=http://graphql.org&start=900"
202202
frameborder="0"></iframe>
203203

204204
## Bonus round: A truly Relay compliant schema

site/code/index.html.js

Lines changed: 79 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ In addition to the GraphQL [reference implementations in JavaScript](#javascript
4242
4343
- [graphql-dotnet](https://github.com/graphql-dotnet/graphql-dotnet): GraphQL for .NET
4444
- [graphql-net](https://github.com/ckimes89/graphql-net): Convert GraphQL to IQueryable
45+
- [Hot Chocolate](https://github.com/ChilliCream/hotchocolate): GraphQL Service for .net core and .net classic
4546
4647
### Clojure
4748
@@ -122,6 +123,8 @@ Code that executes a hello world GraphQL query with \`graphql-clj\`:
122123
- [graphql-go](https://github.com/graphql-go/graphql): An implementation of GraphQL for Go / Golang.
123124
- [graphql-relay-go](https://github.com/graphql-go/relay): A Go/Golang library to help construct a graphql-go server supporting react-relay.
124125
- [neelance/graphql-go](https://github.com/neelance/graphql-go): An active implementation of GraphQL in Golang.
126+
- [machinebox/graphql](https://github.com/machinebox/graphql): An elegant low-level HTTP client for GraphQL.
127+
- [samsarahq/thunder](https://github.com/samsarahq/thunder): A GraphQL implementation with easy schema building, live queries, and batching.
125128
126129
### Groovy
127130
@@ -253,22 +256,22 @@ app.use('/graphql', graphqlHTTP({
253256
app.listen(4000, () => console.log('Now browse to localhost:4000/graphql'));
254257
\`\`\`
255258
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))
259+
#### [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))
257260
258261
A set of GraphQL server packages from Apollo that work with various Node.js HTTP frameworks (Express, Connect, Hapi, Koa etc).
259262
260-
To run a hello world server with graphql-server-express:
263+
To run a hello world server with apollo-server-express:
261264
262265
\`\`\`bash
263-
npm install graphql-server-express body-parser express graphql graphql-tools
266+
npm install apollo-server-express body-parser express graphql graphql-tools
264267
\`\`\`
265268
266269
Then run \`node server.js\` with this code in \`server.js\`:
267270
268271
\`\`\`js
269272
var express = require('express');
270273
var bodyParser = require('body-parser');
271-
var { graphqlExpress, graphiqlExpress } = require('graphql-server-express');
274+
var { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
272275
var { makeExecutableSchema } = require('graphql-tools');
273276
274277
var typeDefs = [\`
@@ -295,13 +298,54 @@ app.use('/graphiql', graphiqlExpress({endpointURL: '/graphql'}));
295298
app.listen(4000, () => console.log('Now browse to localhost:4000/graphiql'));
296299
\`\`\`
297300
298-
GraphQL Server also supports all Node.js HTTP server frameworks: Express, Connect, HAPI and Koa.
301+
Apollo Server also supports all Node.js HTTP server frameworks: Express, Connect, HAPI and Koa.
299302
300303
### PHP
301304
302305
- [graphql-php](https://github.com/webonyx/graphql-php): A PHP port of GraphQL reference implementation
303306
- [graphql-relay-php](https://github.com/ivome/graphql-relay-php): A library to help construct a graphql-php server supporting react-relay.
304307
308+
#### [Siler](https://siler.leocavalcante.com/graphql/) ([github](https://github.com/leocavalcante/siler))
309+
310+
Siler is a PHP library powered with high-level abstractions to work with GraphQL.
311+
312+
To run a Siler hello world script:
313+
314+
\`\`\`graphql
315+
type Query {
316+
hello: String
317+
}
318+
\`\`\`
319+
320+
\`\`\`php
321+
<?php
322+
declare(strict_types=1);
323+
require_once '/path/to/vendor/autoload.php';
324+
325+
use Siler\Diactoros;
326+
use Siler\Graphql;
327+
use Siler\Http;
328+
329+
$typeDefs = file_get_contents(__DIR__.'/schema.graphql');
330+
$resolvers = [
331+
'Query' => [
332+
'hello' => 'world',
333+
],
334+
];
335+
$schema = Graphql\schema($typeDefs, $resolvers);
336+
337+
echo "Server running at http://127.0.0.1:8080\n";
338+
Http\server(Graphql\psr7($schema), function (\Throwable $err) {
339+
var_dump($err);
340+
return Diactoros\json([
341+
'error' => true,
342+
'message' => $err->getMessage(),
343+
]);
344+
})()->run();
345+
\`\`\`
346+
347+
It also provides functionality for the construction of a WebSocket Subscriptions Server based on how Apollo works.
348+
305349
### Python
306350
307351
#### [Graphene](http://graphene-python.org/) ([github](https://github.com/graphql-python/graphene))
@@ -320,14 +364,14 @@ Then run \`python hello.py\` with this code in \`hello.py\`:
320364
import graphene
321365
322366
class Query(graphene.ObjectType):
323-
hello = graphene.String()
367+
hello = graphene.String(name=graphene.String(default_value="World"))
324368
325-
def resolve_hello(self, args, context, info):
326-
return 'Hello world!'
369+
def resolve_hello(self, info, name):
370+
return 'Hello ' + name
327371
328372
schema = graphene.Schema(query=Query)
329373
result = schema.execute('{ hello }')
330-
print(result.data['hello'])
374+
print(result.data['hello']) # "Hello World"
331375
\`\`\`
332376
333377
There are also nice bindings for [Relay](https://facebook.github.io/relay/), Django, SQLAlchemy, and Google App Engine.
@@ -361,7 +405,7 @@ Schema = GraphQL::Schema.define do
361405
query QueryType
362406
end
363407
364-
puts Schema.execute('{ hello }')
408+
puts Schema.execute('{ hello }').to_json
365409
\`\`\`
366410
367411
There are also nice bindings for Relay and Rails.
@@ -391,14 +435,22 @@ Executor.execute(schema, query) map println
391435
## GraphQL Clients
392436
393437
- [C# / .NET](#c-net-1)
438+
- [Clojurescript](#clojurescript-1)
394439
- [Go](#go-1)
395440
- [Java / Android](#java-android)
396441
- [JavaScript](#javascript-1)
397442
- [Swift / Objective-C iOS](#swift-objective-c-ios)
443+
- [Python](#python-1)
398444
399445
### C# / .NET
400446
447+
- [GraphQL.Client](https://github.com/graphql-dotnet/graphql-client): A GraphQL Client for .NET.
401448
- [graphql-net-client](https://github.com/bkniffler/graphql-net-client): Basic example GraphQL client for .NET.
449+
- [SAHB.GraphQLClient](https://github.com/sahb1239/SAHB.GraphQLClient): GraphQL client which supports generating queries from C# classes
450+
451+
### Clojurescript
452+
453+
- [re-graph](https://github.com/oliyh/re-graph/): A GraphQL client implemented in Clojurescript with support for websockets.
402454
403455
### Go
404456
@@ -408,24 +460,36 @@ Executor.execute(schema, query) map println
408460
409461
- [Apollo Android](https://github.com/apollographql/apollo-android): A strongly-typed, caching GraphQL client for Android, written in Java.
410462
463+
- [Nodes](https://github.com/americanexpress/nodes): A GraphQL JVM Client designed for constructing queries from standard model definitions. By American Express.
464+
411465
### JavaScript
412466
413467
- [Relay](https://facebook.github.io/relay/) ([github](https://github.com/facebook/relay)) ([npm](https://www.npmjs.com/package/react-relay)): Facebook's framework for building React applications that talk to a GraphQL backend.
414-
- [Apollo Client](http://apollographql.com/client/) ([github](https://github.com/apollostack/apollo-client)): A powerful JavaScript GraphQL client, designed to work well with React, React Native, Angular 2, or just plain JavaScript.
468+
- [Apollo Client](http://apollographql.com/client/) ([github](https://github.com/apollographql/apollo-client)): A powerful JavaScript GraphQL client, designed to work well with React, React Native, Angular 2, or just plain JavaScript.
415469
- [graphql-request](https://github.com/graphcool/graphql-request): A simple and flexible JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native) - basically a lightweight wrapper around \`fetch\`.
416470
- [Lokka](https://github.com/kadirahq/lokka): A simple JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native).
417471
- [nanogql](https://github.com/yoshuawuyts/nanogql): Tiny GraphQL client library using template strings.
472+
- [gq-loader](https://github.com/Houfeng/gq-loader): A simple JavaScript GraphQL client,Let the *.gql file be used as a module through webpack loader.
473+
- [AWS Amplify](https://aws.github.io/aws-amplify): A JavaScript library for application development using cloud services, which supports GraphQL backend and React components for working with GraphQL data.
474+
- [Grafoo](https://github.com/grafoojs/grafoo): An all purpose GraphQL client with view layer integrations for multiple frameworks in just 1.6kb.
418475
419476
### Swift / Objective-C iOS
420477
421-
- [Apollo iOS](https://www.apollographql.com/docs/ios/) ([github](https://github.com/apollostack/apollo-ios)): A GraphQL client for iOS that returns results as query-specific Swift types, and integrates with Xcode to show your Swift source and GraphQL side by side, with inline validation errors.
478+
- [Apollo iOS](https://www.apollographql.com/docs/ios/) ([github](https://github.com/apollographql/apollo-ios)): A GraphQL client for iOS that returns results as query-specific Swift types, and integrates with Xcode to show your Swift source and GraphQL side by side, with inline validation errors.
422479
- [GraphQL iOS](https://github.com/funcompany/graphql-ios): An Objective-C GraphQL client for iOS.
423480
481+
### Python
482+
483+
- [GQL](https://github.com/graphql-python/gql): A GraphQL client in Python.
484+
- [python-graphql-client](https://github.com/graphcool/python-graphql-client): Simple GraphQL client for Python 2.7+.
485+
- [sgqlc](https://github.com/profusion/sgqlc): A simple Python GraphQL client. Supports generating code generation for types defined in a GraphQL schema.
486+
424487
## Tools
425488
426489
- [graphiql](https://github.com/graphql/graphiql) ([npm](https://www.npmjs.com/package/graphiql)): An interactive in-browser GraphQL IDE.
427490
- [libgraphqlparser](https://github.com/graphql/libgraphqlparser): A GraphQL query language parser in C++ with C and C++ APIs.
428491
- [Graphql Language Service](https://github.com/graphql/graphql-language-service): An interface for building GraphQL language services for IDEs (diagnostics, autocomplete etc).
492+
- [quicktype](https://quicktype.io) ([github](https://github.com/quicktype/quicktype)): Generate types for GraphQL queries in TypeScript, Swift, golang, C#, C++, and more.
429493
430494
## Services
431495
@@ -434,6 +498,9 @@ Executor.execute(schema, query) map println
434498
- [Graphcool](https://www.graph.cool) ([github](https://github.com/graphcool)): A BaaS (Backend as a Service) providing a GraphQL backend for your applications with a powerful web ui for managing your database and stored data.
435499
- [Reindex](https://www.reindex.io/baas/) ([github](https://github.com/reindexio/reindex-js)): A BaaS (Backend as a Service) that sets you up with a GraphQL backend targeted at applications using React and Relay.
436500
- [Scaphold](https://scaphold.io) ([github](https://github.com/scaphold-io)): A BaaS (Backend as a Service) that sets you up with a GraphQL backend for your applications with many different integrations.
501+
- [Tipe](https://tipe.io) ([github](https://github.com/tipeio)): A SaaS (Software as a Service) content management system that allows you to create your content with powerful editing tools and access it from anywhere with a GraphQL or REST API.
502+
- [AWS AppSync](https://aws.amazon.com/appsync/): Fully managed GraphQL service with realtime subscriptions, offline programming & synchronization, and enterprise security features as well as fine grained authorization controls.
503+
- [Hasura](https://hasura.io): A BaaS (Backend as a Service) that lets you create tables, define permissions on Postgres and query and manipulate using a GraphQL interface.
437504
438505
## More Stuff
439506

site/community/Community-Events.md

Lines changed: 24 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,68 +8,21 @@ sublinks: Upcoming Events,Meetups
88

99
## Upcoming Events
1010

11-
### GraphQL in production: KLM & Bynder cases
11+
### GraphQL Europe Conference
1212

13-
- **Date:** 10th October, 2017
14-
- **Location:** Amsterdam, The Netherlands
15-
- **Link:** https://www.meetup.com/Bynder-JS-Guild/events/242414878/
16-
17-
We'd like to share KLM and Bynder experience working on GraphQL based applications that thousands of people are using every day. Beyond basics we'll discuss: persistent queries (query whitelisting and reduced bandwidth usage); optimistic UI (make the interface respond faster); connecting React components to GraphQL with wrappers (improvements beyond default Apollo frontend implementation)... and the cherry on the cake: GraphQL Subscriptions.
18-
19-
### GraphQL Summit 2017
20-
21-
- **Date:** 25-26 October, 2017
22-
- **Location:** San Francisco, CA, USA
23-
- **Link:** http://summit.graphql.com
24-
25-
GraphQL Summit is a conference dedicated entirely to the GraphQL developer community. Speakers from all around the world will talk about GraphQL best practices, design patterns, adoption stories, GraphQL in production, and the open source ecosystem. This year there will be one track of talks over two days, as well as an afterparty and workshops. The CFP closes August 14, 2017 12:00AM PST.
26-
27-
## Past Events
28-
29-
### Relay Modern or Apollo?
30-
31-
- **Conference:** ReactNext 2017
32-
- **Date:** 10th September, 2017
33-
- **Location:** Tel Aviv, Israel
34-
- **Link:** http://react-next.com
35-
36-
New project starts. Everyone is excited. GraphQL is on the stack. Yay! Life is good! Suddenly someone pops the question. So which GraphQL Client should we use? What do you mean? Oh, nooo! =) Don’t worry I’ve got your back. In this talk I am going to put these two under the microscope and find out what are they best at, what features they share and, most importantly, what are their key differences! You can relax.
37-
38-
### Unleashing the power of GraphQL and React
39-
40-
- **Conference:** OdessaJS 2017
41-
- **Date:** 1st July, 2017
42-
- **Location:** Odessa, Ukraine
43-
- **Link:** http://odessajs.org/index_en.html
44-
45-
GraphQL is awesome! After only a year it has got a lot of attention from the community. Many implementations have emerged and it's just getting better. Is GraphQL right for you? Is it a query language or runtime? In this talk I am going to take you from 0 to hero. ;)
46-
47-
### GraphQL - The People's Query Language
48-
49-
- **Date:** 21st June, 2017
50-
- **Location:** Denver, Colorado, USA
51-
- **Link:** https://www.meetup.com/Node-js-Denver-Boulder/events/240482998/
52-
53-
In this talk, we'll discuss the history and purpose of GraphQL, common misconceptions about GraphQL, and setting up GraphQL in a Node/Express back-end. We'll also take a look at GraphQL's development tool GraphiQL and how it self-documents your resources. If you're curious about GraphQL and how to make working with relational data a breeze, join us!
54-
55-
### GraphQL-Europe Conference
56-
57-
- **Date:** 21st May, 2017
13+
- **Date:** June 15, 2018
5814
- **Location:** Berlin, Germany
5915
- **Link:** https://graphql-europe.org
6016

61-
GraphQL-Europe is a non-profit GraphQL conference in Europe with speakers from all around the world. Learn about GraphQL best practices from industry experts and become part of the thriving GraphQL community.
17+
GraphQL Europe is a non-profit GraphQL conference in Europe with speakers from all around the world. Learn about GraphQL best practices from industry experts and become part of the thriving GraphQL community.
6218

63-
### Workshop - Building a real-time app using GraphQL and React
19+
### GraphQL Finland Conference
6420

65-
- **Event:** GraphQL Berlin
66-
- **Date:** 22nd May, 2017
67-
- **Location:** Berlin, Germany
68-
- **Duration:** 2.5 hours
69-
- **Instructors:** Gerard Sans
70-
- **Link:** https://www.meetup.com/graphql-berlin/events/239830863
21+
- **Date:** October 18-19, 2018
22+
- **Location:** Helsinki, Finland
23+
- **Link:** https://graphql-finland.fi/
7124

72-
Everyone is excited about Subscriptions, the new real-time GraphQL feature. Curious about how you can use it past the basic app? This is your workshop! We are going to introduce the overall architecture and share our learnings while building a real-time voting app.
25+
GraphQL Finland is a community-organized GraphQL conference. The first of its kind in Finland, the event consists of a workshop day and a day of talks around the topic. GraphQL Finland is organized by the same team that brought you React Finland.
7326

7427
## Meetups
7528

@@ -82,27 +35,40 @@ Everyone is excited about Subscriptions, the new real-time GraphQL feature. Curi
8235
- [GraphQL NYC](https://www.meetup.com/GraphQL-NYC/)
8336
- [GraphQL Atlanta](https://www.meetup.com/GraphQL-Atlanta/)
8437
- [GraphQL Austin](https://www.meetup.com/ATX-GraphQL/)
85-
- [GraphQL Miami](https://www.meetup.com/Miami-GraphQL/)
8638
- [GraphQL Los Angeles](https://www.meetup.com/Los-Angeles-GraphQL-Meetup/)
39+
- [GraphQL Dallas-Fort Worth](https://www.meetup.com/DFW-GraphQL-Meetup/)
40+
- [GraphQL Ottawa](https://www.meetup.com/GraphQL-Ottawa/)
41+
- [GraphQL Columbus](https://www.meetup.com/GraphQL-Columbus/)
42+
- [GraphQL Vancouver](https://www.meetup.com/GraphQL-Vancouver/)
43+
- [GraphQL Minneapolis](https://www.meetup.com/GraphQL-MN/)
44+
- [GraphQL Denver/Boulder](https://www.meetup.com/GraphQL-Denver-Boulder-Meetup/)
45+
- [GraphQL By the Bay (San Francisco)](https://www.meetup.com/graphql-by-the-bay/)
46+
47+
### South America
48+
49+
- [GraphQL São Paulo](https://www.meetup.com/Apollo-GraphQL/)
50+
- [GraphQL Buenos Aires](https://www.meetup.com/GraphQL-BA/)
8751

8852
### Europe
8953

9054
- [GraphQL Amsterdam](https://www.meetup.com/Amsterdam-GraphQL-Meetup/)
9155
- [GraphQL Berlin](https://www.meetup.com/graphql-berlin/)
92-
- [GraphQL Istanbul](https://www.meetup.com/GraphQL-Istanbul/)
9356
- [GraphQL London](https://www.meetup.com/GraphQL-London)
9457
- [GraphQL Paris](https://www.meetup.com/GraphQL-Paris/)
9558
- [GraphQL Munich](https://www.meetup.com/GraphQL-Munich/)
9659
- [GraphQL Barcelona](https://www.meetup.com/GraphQL-Barcelona/)
9760
- [GraphQL Stockholm](https://www.meetup.com/GraphQL-Stockholm/)
9861
- [GraphQL Budapest](https://www.meetup.com/Budapest-GraphQL/)
62+
- [GraphQL Lisbon](https://www.meetup.com/GraphQL-Lisbon/)
63+
- [GraphQL Vienna](https://www.meetup.com/GraphQL-Vienna/)
9964

10065
### Australia
10166

10267
- [GraphQL Melbourne](http://graphql.melbourne/)
103-
- [GraphQL Sydney](http://graphql.sydney/)
68+
- [GraphQL Sydney](https://graphql.sydney/)
10469

10570
### Asia
10671

10772
- [GraphQL Tel Aviv](https://www.meetup.com/GraphQL-TLV/)
10873
- [GraphQL Tokyo](https://www.meetup.com/GraphQL-Tokyo/)
74+
- [GraphQL Meetup (Bangalore)](https://www.meetup.com/GraphQL-Meetup/)

0 commit comments

Comments
 (0)