-
Notifications
You must be signed in to change notification settings - Fork 95
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
GraphQL Endpoint Language #15
Comments
…ced configurable schema annotations in graphql.config.json (#15)
…ic Go to declaration and Find usages on schema type definitions. (#15)
…mpletion on imported interfaces. (#15)
…ired to composite list types. (#15)
…en used as field name or argument name. Fixed floating point number regex. (#15)
…ration (#15) Added new file template for GraphQL Endpoint Language
Folding and formatter now supports field arguments
…s and interface fields that have overrides (#15)
…sage. Added error markers on input type usages before input type declaration. (#15)
This sounds fantastic can't wait for it to be released. Is there any official specification for this endpoint language ? I couldn't find anything using Google. |
@sergehuber This issue and JSGraphQLEndpointParser.bnf is the only official specification at this time. You won't find any info elsewhere since the language design is done by my colleagues and myself. We're currently using the Endpoint language to build a product, and once we're happy with the language features, the plan is to include the language in the published plugin version. For now, I'd recommend that you write your schema in a ".graphqls" file (right click -> New -> GraphQL Schema file). Depending on which stack you're using on the server side, the Apollo team has a great set of tools that help you create a working endpoint based on your .graphqls schema file. See their medium post. /Jim. |
Merged to master. |
@jimkyndemeyer hi! What do you think about supporting this functionality now? It looks like it hasn't become a standard and doesn't have a specification, but it still complicates the code and requires support. Is it used by anyone? Maybe it makes sense to delete this code in the next released version, what do you think? If someone needs it, they can use one of the previous versions. |
Hi @vepanimas The GraphQL Endpoint language is actively used by teams at Elsevier, and as part of my work there I have time to support it as needed. I could potentially see us migrating to use GraphQL SDL, but we'd have to be able to augment the completion of directive argument values and their reference resolution to get the same level of tooling. I recall having seen ways for plugins to provide extension points for other plugins? In any case, there's a number of ways to approach cleaning this up for easier overall maintenance of the plugin. For now, is there any specific part of the code that you think needs attention due to the presence of the Endpoint language? |
@jimkyndemeyer ok, that's all I wanted to know. I mistakenly thought it was outdated, but if it isn't, there are many ways to slightly restructure it with extension points and isolate all the related code in a separate module. A lot of features inside the WebStorm are done in a similar way. Usually, there is a base class with common functionality that accesses the extension point and polls some providers. For example, this is done with d.ts files, third-party plugins can provide their own definitions so that they are taken into account in the autocomplete and other features. I think that this could be done later and incrementally, this does not prevent further development in any way. |
The endpoint language is a variation on the schema shorthand from Facebook.
The purpose of the endpoint language is to declaratively express how a schema is implemented. This includes:
The main syntactic differences from the shorthand are as follows:
Code example:
This issue tracks basic language support:
The text was updated successfully, but these errors were encountered: