Skip to content

Commit

Permalink
Squash commits for 1.0.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
kristianfreeman committed Jul 25, 2019
1 parent 6b73dc8 commit 2e48eee
Show file tree
Hide file tree
Showing 9 changed files with 553 additions and 177 deletions.
6 changes: 0 additions & 6 deletions .env.example

This file was deleted.

27 changes: 23 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# workers-graphql-server

An [Apollo GraphQL](https://www.apollographql.com/) server, built with [Cloudflare Workers](https://workers.cloudflare.com). Includes a GraphiQL route for testing requests.
An [Apollo GraphQL](https://www.apollographql.com/) server, built with [Cloudflare Workers](https://workers.cloudflare.com). [Try a demo by looking at a deployed GraphQL playground](https://graphql-on-workers.signalnerve.com/___graphql).

[Try a demo by looking at the GraphiQL explorer](https://graphql-on-workers.signalnerve.com/graphiql).
Why this rules: Cloudflare Workers is a serverless application platform for deploying your projects across Cloudflare's massive distributed network. Deploying your GraphQL application to the edge is a huge opportunity to build consistent low-latency API servers, with the added benefits of "serverless" (I know, the project has `server` in it): usage-based pricing, no cold starts, and instant, easy-to-use deployment software, using [Wrangler](https://github.com/cloudflare/wrangler).

By the way - as a full-stack developer who _loves_ GraphQL, and the developer advocate for Cloudflare Workers, I would love to see what you build with this! Let me know [on Twitter](https://twitter.com/signalnerve)!

## Usage

Expand All @@ -12,9 +14,26 @@ You can begin building your own Workers GraphQL server by [installing Wrangler](
wrangler generate my-graphql-server https://github.com/signalnerve/workers-graphql-server
```

The source for this project includes an external REST data source, and defined types for the [PokeAPI](https://pokeapi.co/), as an example of how to integrate external APIs.
You'll need to configure your project's `wrangler.toml` file to prepare your project for deployment. See the docs (["Configuring and Publishing"](https://workers.cloudflare.com/docs/quickstart/configuring-and-publishing/)) for a guide on how to do this. Note that you'll need to [find your Cloudflare API keys](https://workers.cloudflare.com/docs/quickstart/api-keys/) to set up your config file.

The source for this project includes an example external REST data source, and defined types for the [PokeAPI](https://pokeapi.co/), as an example of how to integrate external APIs.

To start using the project, configure your `graphQLOptions` object in `src/index.js`:

```js
const graphQLOptions = {
baseEndpoint: '/', // String
playgroundEndpoint: '/___graphql', // ?String
forwardUnmatchedRequestsToOrigin: false, // Boolean
debug: false, // Boolean
}
```

Make requests to your GraphQL server at the `baseEndpoint` (e.g. `graphql-on-workers.signalnerve.com/`) and, if configured, try GraphQL queries at the `playgroundEndpoint` (e.g. `graphql-on-workers.signalnerve.com/___graphql`).

If you run your GraphQL server on a domain already registered with Cloudflare, you may want to pass any unmatched requests from inside your Workers script to your origin: in that case, set `forwardUnmatchedRequestToOrigin` to true (if you're running a GraphQL server on a [Workers.dev](https://workers.dev) subdomain, the default of `false` is fine).

By the way - as a fullstack developer who _loves GraphQL_, and the developer advocate for Cloudflare Workers, I would love to see what you build with this! Let me know [on Twitter](https://twitter.com/signalnerve)!
Finally, while configuring your server, you may want to set the `debug` flag to `true`, to allow script errors to be returned in your browser. This can be useful for debugging any errors while setting up your GraphQL server.

## License

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "graphql-on-workers",
"name": "{{ project-name }}",
"private": true,
"description": "graphql-on-workers",
"version": "0.9.9",
"author": "Kristian Freeman <kristian@kristianfreeman.com>",
"description": "🔥Lightning-fast, globally distributed Apollo GraphQL server, deployed at the edge using Cloudflare Workers",
"version": "1.1.0",
"author": "{{ authors }}",
"dependencies": {
"apollo-datasource-rest": "^0.3.2",
"apollo-server-cloudflare": "^2.4.8",
Expand Down
2 changes: 1 addition & 1 deletion src/handlers/apollo.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const server = new ApolloServer({
}),
})

const handler = request =>
const handler = (request, _graphQLOptions) =>
graphqlCloudflare(() => server.createGraphQLServerOptions(request))(request)

module.exports = handler
147 changes: 0 additions & 147 deletions src/handlers/graphiql.js

This file was deleted.

Loading

0 comments on commit 2e48eee

Please sign in to comment.