Comments (15)
@chris-ramon @sogko Not critically important, but now that the package and its sister packages are collected under graphql-go
, perhaps we should give the project a logo :). How about this?
If someone else has actual design chops feel free to update/iterate :)
from graphql.
Yeah... We started using it too.. some contributor guidelines will help and maybe some Todos and features complete w.r.t. graphql-js would be good
from graphql.
+1
from graphql.
Thanks @EmergentBehavior for bringing this up 👍🏻
You are right that this area is lacking and requires more attention. (Previously I relied on the TODO list on the README to see how I can contribute but I noticed it's out-of-date currently.)
I can help out with sharing the latest nearest-of-the-nearest-term goals that we definitely need to address
- Package renaming and reorganisation
Other longer-term goals
- Lexer
- Parser
- Schema Parser
- Printer
- Schema Printer
- Visitor
- Executor
- Validator (optional according to specs, but nice to have)
- Basic usage / examples
- Related PR #21 (first example)
- Relay/React example (though I've started to write a couple of posts on Medium touching this topic)
- Release v0.1
As to the parity of this project vs graphql-js
, it was ported from v0.4.3 of graphql-js
(July 2015 spec, excluding validator
) (specifically commit e556526 ). It's currently behind (latest v0.4.12) but once the package name has been resolved and stable, it'll be easier to get back on track.
But I doubt it'll be a 1-1 port with graphql-js
from there on, we'd have to go by the GraphQL spec releases instead. In other words, we'd have to work on our implementation based on October 2015 spec next.
Cheers!
from graphql.
@sogko For information on unimplemented features as of yet (such as the Validator) is the single source of truth just the spec for GraphQL or do you already have plans you'd like to see done specifically for those features? I'd love to help contribute and just want to make sure that I don't do a lot of work on something in a way different from the plans of this library moving forward.
Also, I know you do a lot of work with this library outside of just this, such as your graphql-go-handler and your Relay specific wrapper for this library. Which are all great things. One thing I found lacking was specifically related to this library (as addressed in the 'Documenation' issue) is to have more examples specifically focusing on basic usage of just this library.
I spent some time with graphql-js after finding graphql-go to define the things I was looking to define before finally coming back here and having the ability to transfer that knowledge into how to do those similar things in Go. Which is great that this could be done, but any examples that get written (including yours), I think would be extremely beneficial if they only used this library to handle the GraphQL pieces. Even if you define it all raw with GraphQL as is and then refactor it using your Relay wrapper for example so at least the understanding of this library is talked about and discussed.
I'm bringing this up not just because of my desire to have seen that but a recent conversation in Gitter (for this repo). I'm referring to this comment from thanhliem89dn specifically (and I share his sentiment, this was my desire as well):
I'm reading todo example from [sogko] https://github.com/sogko/todomvc-relay-go/blob/master/data/schema.go but He used gqlrelay and I just want to use graphql at all
All of these utilities are great to have, but I think a full understanding of this library offers is a better place to start before introducing the other ones.
I got off topic and rambled. I'm sorry.
from graphql.
@sogko Thanks for the update. Am going to submit another PR to update the README
with this information.
from graphql.
@EmergentBehavior that's excellent 👍🏻! Thanks!
from graphql.
Submitted! https://github.com/chris-ramon/graphql-go/pull/32
from graphql.
@bbuck Thanks for the input, appreciate very much 👍🏻
Yes you are right, documentation is really lacking right now, in this project and others in its ecosystem currently. I think once we nail down the package naming, I'll help and do my part in providing better documentation.
I wrote the graphql-relay-go
and graphql-go-handler
libraries because I was being impatient and wanted to quickly have some form of Relay-compliant server for golang that can actually run lol. I realised that besides graphql-go
, there were bits and pieces missing to get it (i.e. Relay-compliant server) to work.
I have yet to put down my motivations on why I wrote those, but to draw parallels with the GraphQL in JS:
graphql-go
==graphql-js
Server-side implementation of graphqlgraphql-go-handler
==express-graphql
Middleware to handle GraphQL queries through HTTP requests. It parses GET/POST params and passes them into Graphql(), which returns JSON response.
You can choose not to use it, but you will end up writing similar code. As to whether it should be merged withgraphql-go
, I think it could possibly be. Or it could remain separate, just likeexpress-graphql
.
Either way, I'm open to merging it based on the community's decision.graphql-relay-go
==graphql-relay-js
This is a library to construct Relay-compliant servers, which has additional specs for pagination, global IDs and those sort of things. Not needed if you chose to build a pure GraphQL server.
Some of the other projects that I contributed do use graphql-go
+ graphql-go-handler
+ graphql-relay-go
, but they are specifically Relay applications:
Another project that I wrote used only graphql-go
+ graphql-go-handler
, with graphiql
for the front-end:
golang-graphql-playground
(Query only example, no mutations)
I did wrote a couple of posts on Golang + GraphQL + Relay but again, those are heading into the direction of Relay-specific details.
I do see what you mean there about diving deeper into examples pure GraphQL using graphql-go
. Better and in-depth examples on
- how to define schemas,
- probably touches as many GraphQL types as possible
- especially mutations
We definitely could use with those.
Let's see what we could do.
Thanks again! Cheers!
from graphql.
Most of the vital info seems to be shared in these issues I'm gonna be putting them in the Readme
from graphql.
The gopher strikes again haha! Thanks @EmergentBehavior for kicking this off!
Yeah, we definitely a logo for our community 👍🏻
For inspirations from other implementations:
- graphql-ruby (Ruby)
- graphene (Python, and their website is pretty impressive http://graphene-python.org)
- sangria (Scala)
from graphql.
graphql-ruby and graphene ones are great. i can help with a front-end website later too once package is a little more stable. Ruby and Python have more elegant base logos though so it's easier to iterate :)
from graphql.
EDIT: I see the contributing guidelines. Still, the ref spec is april 2016
And just a thought for the logo - The python logo looks almost like a G, make it a G. and add an o afterwards.
from graphql.
Keep the dream alive
cc: @logie17
from graphql.
Thanks a lot guys 🌟 for taking the time to bring interesting ideas, since #32 was merged; let's close this one issue; and continue the conversation on:
from graphql.
Related Issues (20)
- New release?
- Potential goroutine leak in TestContextDeadline HOT 1
- Enums with trailing white space cause error.
- Playground
- make union input type ? it just have output union type
- With fiber HOT 1
- Printing GraphQL documents is slow HOT 1
- Bug with underscore and same name in keys from json response
- MongoDB _id field
- Printer returns invalid SDL if Block String comment contains double-quote
- When using custom scalar types, it's crucial to provide error feedback to users when issues arise with their submitted data. However, triggering exceptions within the ParseValue and ParseLiteral methods can lead to program crashes when using the graphql.Do method. This prevents the necessary error messages from being delivered to users.
- String type no longer recongised HOT 1
- Is it possible to go from `*graphql.Schema` to an ast node? HOT 1
- Error handling HOT 1
- Disabling Field Suggestions
- Is possible to typing typeConfig of graphql.Object after Object done.
- RootObjectFn request body always empty
- Unable to pass {{....}} as part of query or mutation string
- Redefining scalar ID
- How to support scalar JSON type? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql.