Code Monkey home page Code Monkey logo

graphql-dotnetcore's Introduction

Library for creating GraphQL servers with .NET core.

Build Status Coverage Status NuGet MyGet Pre Release

Code Example

public class Query : GraphQLObjectType
{
	public Query() : base("Query", "Root query defintion")
	{
		this.Field("sum", (int[] numbers) => numbers.Sum());
	}
}

public class MyAwesomeSchema : GraphQLSchema
{
    public MyAwesomeSchema()
    {
        var rootQuery = new Query();
        this.AddKnownType(rootQuery);
        this.Query(rootQuery);
    }
}

[Route("api/[controller]")]
public class GraphQLController : Controller
{
    private MyAwesomeSchema schema = new MyAwesomeSchema();

    [HttpPost]
    public JsonResult Post(string query)
    {
        return this.Json(
            new
            {
                data = this.schema.Execute(query)
            }
        );
    }
}

Query

{
  sum(numbers: [1,2,3])
}

Result

{
  "sum" : 6
}

Interested? Have a look on a better example here!

Documentation

  1. Scalar type translation
  2. Nullability
  3. Untyped object definition
  4. Typed object definition
  5. Interfaces
  6. Input object definition
  7. Schema
    • Queries
    • Mutations
    • Subscriptions (TBD)
    • Execution
  8. Introspection
  9. Validation
  10. Roadmap

Contributions

Wanna contribute? Awesome! Please follow this process to get your feature or bugfix in place.

Fork it

Clone it

git clone https://github.com/<your_username>/graphql-dotnetcore.git
cd graphql-dotnetcore

Do it

git checkout develop
...
git add -A
git commit -m "Awesome feature"
...
git add -A
git commit -m "Fix awesome feature"
...
git add -A
git commit -m "Fix the previous fix for awesome feature"
...

Squash it

git rebase -i <commit>

More info about squashing http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html.

Push it

git push

Request it

The final step will be creating a pull request. Refer the github docs for more details about that https://help.github.com/articles/using-pull-requests/

graphql-dotnetcore's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphql-dotnetcore's Issues

Enforce NonNull on reference .NET types with boxing

Currently graphqlcore decides nullability depending on whether certain field or parameter is value type or reference type (therefore nullable).

Mostly for arguments it makes sense to enforce non nullability somehow.
Good approach could be boxing the type into a NonNullable kind of type similarily as the Nullable equivalent.

Example working with EF Core

Could you please provide an example of using graphql-dotnetcore working with EF Core, for a query and mutation

Parser Collaboration

I'm the creator/maintainer of the graphql-dotnet project. I noticed your project a few days ago, its looking pretty great!

One thing that my project has been lacking in a .NET version of the core parser. Now that you've written one, I have plans to use that in my project.

What I would like to propose though is that we collaborate on it together. I think it could be beneficial to have the core parser as a standalone Nuget that both of our projects could depend on. That way when there are updates to the spec or bug fixes we both can benefit.

What do you think?

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.