Skip to content

Add answers for general FAQ questions #930

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

Closed
wants to merge 9 commits into from
Closed

Conversation

carolstran
Copy link
Member

@carolstran carolstran commented Oct 14, 2020

💓 This PR is part of Google Season of Docs 💓

We decided on the first 10 questions for the FAQ page would be the following:

  • Why should I use GraphQL?
  • Is GraphQL a database language like SQL?
  • Does GraphQL replace REST?
  • How can I learn GraphQL?
  • Is GraphQL frontend or backend?
  • Does GraphQL replace Redux or other state management libraries?
  • Is GraphQL only for React or JavaScript developers?
  • What is a GraphQL client and why would I use one?
  • What is the GraphQL Foundation?
  • How can I contribute to the GraphQL specification?

This PR includes the first attempt at answering these questions. Once approved, it'll be merged into the faq branch.

@carolstran carolstran self-assigned this Oct 14, 2020
@carolstran carolstran added 💬 FAQ Related to the FAQ project for Google Season of Docs. and removed ✏️ Editorial labels Oct 14, 2020
@carolstran carolstran marked this pull request as ready for review October 20, 2020 19:43
@carolstran
Copy link
Member Author

@IvanGoncharov, I tagged this for review (finally). I'm not convinced about all of the links... but I wanted to make sure to give readers resources to learn more! Something we should also decide is whether to include the links inline (like I did in this PR) or have no links inline and put them as a list at the end.

I'm also going to add a few comments throughout that I'd like your opinion on so please keep an eye out for those 💫


Pie gummies apple pie marzipan halvah cotton candy toffee tootsie roll oat cake. Brownie pudding pastry candy chupa chups liquorice bear claw pudding jujubes. Pie jelly liquorice dessert sweet roll bonbon. Danish macaroon cupcake jelly beans liquorice brownie dessert muffin candy canes.
For more practical guides, you can visit the [How to GraphQL](https://www.howtographql.com/) fullstack tutorial website. We also have a free online course with edX, [Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/exploring-graphql-a-query-language-for-apis).

## Is GraphQL frontend or backend?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@IvanGoncharov Should we explain some of the benefits of GraphQL for frontend and backend devs here? I started to but then the answer became long and complex.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with your comment that you could also use GraphQL just for the backend and just for the frontend.
I believe those are actually important use cases.

The frontend even more in terms of adoption -

Most of our larger clients have difficulties (political, technical) for introducing another gateway into their existing stack.
Adding GraphQL only on the frontend actually made adoption much faster in those companies, that later on were convinced to move that layer as a gateway.
Companies like PayPal, Microsoft and many others have went through that route.
So I believe mentioning that could open easier doors for early adoption.

Copy link
Contributor

@Urigo Urigo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know you didn't ask for my review, but I love that you are woking on this and making it happen and hope that some of my comments would help and not intrude your awesome work.


Jelly-o cupcake marshmallow marshmallow. Lemon drops cake caramels donut halvah cupcake topping tootsie roll. Jelly cotton candy candy cheesecake danish [jelly-o icing bonbon]().
GraphQL and REST can actually co-exist in your stack. For example, you can abstract REST APIs behind a [GraphQL server](https://www.howtographql.com/advanced/1-server/). This can be done by masking your REST endpoint into a GraphQL endpoint using [root resolvers](/learn/execution/#root-fields-resolvers).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would also add that you could do the other way around - generate REST on top of GraphQL so you could gradually move to REST but still support consumers who needs regular REST endpoints. (reference)

I've found this to be a very compelling argument when introducing GraphQL to developers for the first time

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that I think the use case could be good to include. Would you have an idea for somewhere within the docs to link to? We're trying to keep the FAQ neutral and not link to third-party sites.


Pie gummies apple pie marzipan halvah cotton candy toffee tootsie roll oat cake. Brownie pudding pastry candy chupa chups liquorice bear claw pudding jujubes. Pie jelly liquorice dessert sweet roll bonbon. Danish macaroon cupcake jelly beans liquorice brownie dessert muffin candy canes.
For more practical guides, you can visit the [How to GraphQL](https://www.howtographql.com/) fullstack tutorial website. We also have a free online course with edX, [Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/exploring-graphql-a-query-language-for-apis).

## Is GraphQL frontend or backend?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with your comment that you could also use GraphQL just for the backend and just for the frontend.
I believe those are actually important use cases.

The frontend even more in terms of adoption -

Most of our larger clients have difficulties (political, technical) for introducing another gateway into their existing stack.
Adding GraphQL only on the frontend actually made adoption much faster in those companies, that later on were convinced to move that layer as a gateway.
Companies like PayPal, Microsoft and many others have went through that route.
So I believe mentioning that could open easier doors for early adoption.

@carolstran
Copy link
Member Author

Oooooh thanks for the review @Urigo! I'll go through the comments in a bit, but wanted to say thanks and the reason its open source is that people can give their input so I appreciate you taking the time 😁

* Aggregate data from [multiple UI clients](/learn/queries/#fragments) in [a single request](/learn/best-practices/#server-side-batching-caching ).
* Create a representation of your data that feels familiar and natural ([a graph](/learn/thinking-in-graphs/#it-s-graphs-all-the-way-down-https-en-wikipedia-org-wiki-turtles-all-the-way-down)).
* Ensure that all of your data is [statically typed](/learn/schema/) and these types inform [what queries the schema supports](/learn/introspection/).
* Examine queries and responses through community tools like [GraphiQL](https://github.com/graphql/graphiql).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can add a point about schema evolution and that GraphQL not only has a built-in mechanism for deprecations but also greatly reduces the number of situations where you need to do breaking change.
Moreover, GraphQL actually gives you insights into what data is actually used by your clients so even in situations where you need to do breaking change you can effectively communicate it with affected clients.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried to squeeze that all into a bullet point, will be included in the next commit - curious to hear what you think!

@carolstran carolstran changed the base branch from faq to faq-v2 November 2, 2020 23:06
@carolstran carolstran changed the base branch from faq-v2 to faq November 2, 2020 23:07
@carolstran
Copy link
Member Author

Closing this for now, will reopen with a PR to the new faq branch - plus will hopefully be a bit more clear for reviewing!

@carolstran carolstran closed this Nov 2, 2020
@carolstran carolstran deleted the faq-general-questions branch November 2, 2020 23:10
@carolstran carolstran mentioned this pull request Nov 2, 2020
10 tasks
carolstran added a commit that referenced this pull request Nov 13, 2020
* Initial commit following Gatsby migration and review from #930

* Update FAQ based on feedback from Andreas

* Apply suggestions from Benjie's code review

Co-authored-by: Benjie Gillam <[email protected]>

* Update license attribution

Co-authored-by: Benjie Gillam <[email protected]>

* Add prereq note to learn question

* Update foundation numbers

* Update JS question based on Ivan's review

Co-authored-by: Benjie Gillam <[email protected]>
carolstran added a commit that referenced this pull request Nov 13, 2020
* Initial commit of FAQ page

* Add answers for initial FAQ (#943)

* Initial commit following Gatsby migration and review from #930

* Update FAQ based on feedback from Andreas

* Apply suggestions from Benjie's code review

Co-authored-by: Benjie Gillam <[email protected]>

* Update license attribution

Co-authored-by: Benjie Gillam <[email protected]>

* Add prereq note to learn question

* Update foundation numbers

* Update JS question based on Ivan's review

Co-authored-by: Benjie Gillam <[email protected]>

Co-authored-by: Benjie Gillam <[email protected]>
Urigo pushed a commit that referenced this pull request Jan 26, 2021
* Initial commit of FAQ page

* Add answers for initial FAQ (#943)

* Initial commit following Gatsby migration and review from #930

* Update FAQ based on feedback from Andreas

* Apply suggestions from Benjie's code review

Co-authored-by: Benjie Gillam <[email protected]>

* Update license attribution

Co-authored-by: Benjie Gillam <[email protected]>

* Add prereq note to learn question

* Update foundation numbers

* Update JS question based on Ivan's review

Co-authored-by: Benjie Gillam <[email protected]>

Co-authored-by: Benjie Gillam <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✏️ Editorial 💬 FAQ Related to the FAQ project for Google Season of Docs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants