Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction Improvements #569

Merged
merged 4 commits into from
Mar 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Contribution Guidelines

Want to contribute to gqlgen? Here are some guidelines for how we accept help.

## Getting in Touch

Our [gitter](https://gitter.im/gqlgen/Lobby) channel is the best place to ask questions or get advice on using gqlgen.

## Reporting Bugs and Issues

We use [GitHub Issues](https://github.com/99designs/gqlgen/issues) to track bugs, so please do a search before submitting to ensure your problem isn't already tracked.

### New Issues

Please provide the expected and observed behaviours in your issue. A minimal GraphQL schema or configuration file should be provided where appropriate.

## Proposing a Change

If you intend to implement a feature for gqlgen, or make a non-trivial change to the current implementation, we recommend [first filing an issue](https://github.com/99designs/gqlgen/issues/new) marked with the `proposal` tag, so that the engineering team can provide guidance and feedback on the direction of an implementation. This also help ensure that other people aren't also working on the same thing.

Bug fixes are welcome and should come with appropriate test coverage.

New features should be made against the `next` branch.

### License

By contributing to gqlgen, you agree that your contributions will be licensed under its MIT license.
60 changes: 28 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,30 @@
# gqlgen [![CircleCI](https://badgen.net/circleci/github/99designs/gqlgen/master)](https://circleci.com/gh/99designs/gqlgen) [![Read the Docs](https://badgen.net/badge/docs/available/green)](http://gqlgen.com/)

This is a library for quickly creating strictly typed graphql servers in golang.

See the [docs](https://gqlgen.com/) for a getting started guide.

### Feature comparison

| | [gqlgen](https://github.com/99designs/gqlgen) | [gophers](https://github.com/graph-gophers/graphql-go) | [graphql-go](https://github.com/graphql-go/graphql) | [thunder](https://github.com/samsarahq/thunder) |
| --------: | :-------- | :-------- | :-------- | :-------- |
| Kind | schema first | schema first | run time types | struct first |
| Boilerplate | less | more | more | some |
| Docs | [docs](https://gqlgen.com) & [examples](https://github.com/99designs/gqlgen/tree/master/example) | [examples](https://github.com/graph-gophers/graphql-go/tree/master/example/starwars) | [examples](https://github.com/graphql-go/graphql/tree/master/examples) | [examples](https://github.com/samsarahq/thunder/tree/master/example)|
| Query | :+1: | :+1: | :+1: | :+1: |
| Mutation | :+1: | :construction: [pr](https://github.com/graph-gophers/graphql-go/pull/182) | :+1: | :+1: |
| Subscription | :+1: | :construction: [pr](https://github.com/graph-gophers/graphql-go/pull/182) | :+1: | :+1: |
| Type Safety | :+1: | :+1: | :no_entry: | :+1: |
| Type Binding | :+1: | :construction: [pr](https://github.com/graph-gophers/graphql-go/pull/194) | :no_entry: | :+1: |
| Embedding | :+1: | :no_entry: | :construction: [pr](https://github.com/graphql-go/graphql/pull/371) | :no_entry: |
| Interfaces | :+1: | :+1: | :+1: | :no_entry: [is](https://github.com/samsarahq/thunder/issues/78) |
| Generated Enums | :+1: | :no_entry: | :no_entry: | :no_entry: |
| Generated Inputs | :+1: | :no_entry: | :no_entry: | :no_entry: |
| Stitching gql | :clock1: [is](https://github.com/99designs/gqlgen/issues/5) | :no_entry: | :no_entry: | :no_entry: |
| Opentracing | :+1: | :+1: | :no_entry: | :scissors:[pr](https://github.com/samsarahq/thunder/pull/77) |
| Hooks for error logging | :+1: | :no_entry: | :no_entry: | :no_entry: |
| Dataloading | :+1: | :+1: | :+1: | :warning: |
| Concurrency | :+1: | :+1: | :+1: | :+1: |
| Custom errors & error.path | :+1: | :no_entry: [is](https://github.com/graphql-go/graphql/issues/259) | :no_entry: | :no_entry: |
| Query complexity | :+1: | :no_entry: [is](https://github.com/graphql-go/graphql/issues/231) | :no_entry: | :no_entry: |


### Help

Create an issue or join the conversation on [gitter](https://gitter.im/gqlgen)
## What is gqlgen?

[gqlgen](https://github.com/99designs/gqlgen) is a Go library for building GraphQL servers without any fuss. gqlgen is:

- **Schema first** — Define your API using the GraphQL [Schema Definition Language](http://graphql.org/learn/schema/).
- **Type safe** — You should never see `map[string]interface{}` here.
- **Codegen** — Let us generate the boring bits, so you can build your app quickly.

[Feature Comparison](https://gqlgen.com/feature-comparison/)

## Getting Started

First work your way through the [Getting Started](ttps://gqlgen.com/getting-started/) tutorial.

If you can't find what your looking for, look at our [examples](https://github.com/99designs/gqlgen/tree/master/example) for example usage of gqlgen.

## Reporting Issues

If you think you've found a bug, or something isn't behaving the way you think it should, please raise an [issue](https://github.com/99designs/gqlgen/issues) on GitHub.

## Contributing

Read our [Contribution Guidelines](https://github.com/99designs/gqlgen/blob/master/CONTRIBUTING.md) for information on how you can help out gqlgen.

## Talks & Blog Posts

- [Christopher Biscardi @ Gophercon UK 2018](https://youtu.be/FdURVezcdcw)
- [Introducing gqlgen: a GraphQL Server Generator for Go](https://99designs.com.au/blog/engineering/gqlgen-a-graphql-server-generator-for-go/)
1 change: 1 addition & 0 deletions docs/content/_introduction.md
29 changes: 29 additions & 0 deletions docs/content/feature-comparison.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
linkTitle: Feature Comparison
title: Comparing Features of Other Go GraphQL Implementations
description: Comparing Features of Other Go GraphQL Implementations
menu: main
weight: -1
---

| | [gqlgen](https://github.com/99designs/gqlgen) | [gophers](https://github.com/graph-gophers/graphql-go) | [graphql-go](https://github.com/graphql-go/graphql) | [thunder](https://github.com/samsarahq/thunder) |
| --------: | :-------- | :-------- | :-------- | :-------- |
| Kind | schema first | schema first | run time types | struct first |
| Boilerplate | less | more | more | some |
| Docs | [docs](https://gqlgen.com) & [examples](https://github.com/99designs/gqlgen/tree/master/example) | [examples](https://github.com/graph-gophers/graphql-go/tree/master/example/starwars) | [examples](https://github.com/graphql-go/graphql/tree/master/examples) | [examples](https://github.com/samsarahq/thunder/tree/master/example)|
| Query | 👍 | 👍 | 👍 | 👍 |
| Mutation | 👍 | 🚧 [pr](https://github.com/graph-gophers/graphql-go/pull/182) | 👍 | 👍 |
| Subscription | 👍 | 🚧 [pr](https://github.com/graph-gophers/graphql-go/pull/182) | 👍 | 👍 |
| Type Safety | 👍 | 👍 | ⛔️ | 👍 |
| Type Binding | 👍 | 🚧 [pr](https://github.com/graph-gophers/graphql-go/pull/194) | ⛔️ | 👍 |
| Embedding | 👍 | ⛔️ | 🚧 [pr](https://github.com/graphql-go/graphql/pull/371) | ⛔️ |
| Interfaces | 👍 | 👍 | 👍 | ⛔️ [is](https://github.com/samsarahq/thunder/issues/78) |
| Generated Enums | 👍 | ⛔️ | ⛔️ | ⛔️ |
| Generated Inputs | 👍 | ⛔️ | ⛔️ | ⛔️ |
| Stitching gql | 🕐 [is](https://github.com/99designs/gqlgen/issues/5) | ⛔️ | ⛔️ | ⛔️ |
| Opentracing | 👍 | 👍 | ⛔️ | ✂️[pr](https://github.com/samsarahq/thunder/pull/77) |
| Hooks for error logging | 👍 | ⛔️ | ⛔️ | ⛔️ |
| Dataloading | 👍 | 👍 | 👍 | ⚠️ |
| Concurrency | 👍 | 👍 | 👍 | 👍 |
| Custom errors & error.path | 👍 | ⛔️ [is](https://github.com/graphql-go/graphql/issues/259) | ⛔️ | ⛔️ |
| Query complexity | 👍 | ⛔️ [is](https://github.com/graphql-go/graphql/issues/231) | ⛔️ | ⛔️ |
27 changes: 1 addition & 26 deletions docs/content/introduction.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
---
linkTitle: Introduction
title: Type-safe graphql for golang
title: Type-safe GraphQL for Go
type: homepage
date: 2018-03-17T13:06:47+11:00
---

## What is gqlgen?

[gqlgen](https://github.com/99designs/gqlgen) is a golang library for building graphql servers without any fuss. gqlgen is:

- Schema first: You define your API using the graphql [Schema Definition Language](http://graphql.org/learn/schema/)
- Type safe: You should never see `map[string]interface{}` here.
- Codegen: Let us generate the boring bits, so you can build your app quickly.


## Getting started

First take a look at the [Getting Started]({{< ref "getting-started.md" >}}) tutorial.

If you cant find what your looking for, maybe the [examples](https://github.com/99designs/gqlgen/tree/master/example) will help.


## Getting help

If you think you've found a bug, or something isn't behaving the way you think it should please raise an [issue](https://github.com/99designs/gqlgen/issues) on github.


## Talks

- [Christopher Biscardi @ Gophercon UK 2018](https://youtu.be/FdURVezcdcw)
5 changes: 5 additions & 0 deletions docs/layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ <h1>{{ .LinkTitle }}</h1>
<main>
<div class="content">
{{ .Content }}
{{.Scratch.Set "intro" (readFile "content/_introduction.md")}}
{{.Scratch.Set "intro" (split (.Scratch.Get "intro") "\n")}}
{{.Scratch.Set "intro" (after 2 (.Scratch.Get "intro"))}}
{{.Scratch.Set "intro" (delimit (.Scratch.Get "intro") "\n")}}
{{.Scratch.Get "intro"|markdownify}}
</div>
</main>
{{ end }}
Expand Down
18 changes: 17 additions & 1 deletion docs/static/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -430,4 +430,20 @@ blockquote p:first-of-type {

blockquote code {
background-color: var(--color-blockquote-highlight);
}
}

table {
width: 100%;
}

td, th {
padding: 0.2em 1em;
}

tr {
border-bottom: 1px solid var(--color-heading-background);
}

tr td:first-child, th {
font-weight: bold;
}