Code Monkey home page Code Monkey logo

Comments (15)

EmergentBehavior avatar EmergentBehavior commented on July 2, 2024 1

@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?

graphqlgo

If someone else has actual design chops feel free to update/iterate :)

from graphql.

pyrossh avatar pyrossh commented on July 2, 2024

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.

EcutDavid avatar EcutDavid commented on July 2, 2024

+1

from graphql.

sogko avatar sogko commented on July 2, 2024

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
    • Discussed in PR #20 and PR #16
    • Currently being attempted in PR #30

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.

bbuck avatar bbuck commented on July 2, 2024

@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.

EmergentBehavior avatar EmergentBehavior commented on July 2, 2024

@sogko Thanks for the update. Am going to submit another PR to update the README with this information.

from graphql.

sogko avatar sogko commented on July 2, 2024

@EmergentBehavior that's excellent 👍🏻! Thanks!

from graphql.

EmergentBehavior avatar EmergentBehavior commented on July 2, 2024

Submitted! https://github.com/chris-ramon/graphql-go/pull/32

from graphql.

sogko avatar sogko commented on July 2, 2024

@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 graphql
  • graphql-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 with graphql-go, I think it could possibly be. Or it could remain separate, just like express-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:

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.

pyrossh avatar pyrossh commented on July 2, 2024

Most of the vital info seems to be shared in these issues I'm gonna be putting them in the Readme

from graphql.

sogko avatar sogko commented on July 2, 2024

The gopher strikes again haha! Thanks @EmergentBehavior for kicking this off!
Yeah, we definitely a logo for our community 👍🏻

For inspirations from other implementations:

from graphql.

EmergentBehavior avatar EmergentBehavior commented on July 2, 2024

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.

 avatar commented on July 2, 2024

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.

kmulvey avatar kmulvey commented on July 2, 2024

Keep the dream alive

cc: @logie17

from graphql.

chris-ramon avatar chris-ramon commented on July 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.