homedepot / infinite-wish-board

A platform for kids to make wishes at Make-A-Wish, GA.
Apache License 2.0
27 stars 43 forks source link

API: Consider Using Graphql #45

Open crstamps2 opened 5 years ago

crstamps2 commented 5 years ago

Proposal to add [FEATURE] to to the site.

Feature Name Consider using Graphql

Functionality Graphql is great for getting all data needed in a single payload. Combined with an authorization library, it would be easy to layout authorization role based access, without us having to do a lot of custom controller work.

Notes

https://graphql.org/graphql-js/running-an-express-graphql-server/

alex-hall commented 5 years ago

I think we're open to this, as long as it's actually solving a concrete problem for the project.

alex-hall commented 5 years ago

How much work would it take to convert existing endpoints?

fernandocortez commented 5 years ago

Don't know how much of the front end has already been created, but we could leverage GraphQL to feed data into a Gatsby project. The visual components are also React.

crstamps2 commented 5 years ago

I am going to dump some links here as I come across them. Things that I think we could use that would help us with some of our goals. I will edit this comment as I go.

Pretty solid introduction: https://levelup.gitconnected.com/introduction-to-graphql-2bede313f8e0

https://levelup.gitconnected.com/realtime-subscriptions-with-graphql-and-nodejs-fc27898e1c14 This allows a system to subscribe to database changes. I think this would be cool for our wish wall.

https://encryption.io/blog/adding-graphql-into-existing-express-apis/ - how to add graphql into an existing app. I know we aren't too terribly far down the road on this app, but still an good read.

The best read I have found so far: https://www.robinwieruch.de/graphql-apollo-server-tutorial/ and a mongoose implementation of the same: https://github.com/the-road-to-graphql/fullstack-apollo-express-mongodb-boilerplate/blob/master/src/models/message.js

alex-hall commented 5 years ago

I've seen some work on this @crstamps2 , how is it coming? Need anything?

aclaire-thd commented 5 years ago

Of course, we'd have to update the UI to take advantage of the new GraphQL capabilities...