Dotnet api graphql linux: Difference between revisions

From bibbleWiki
Jump to navigation Jump to search
Line 32: Line 32:
     }
     }
</syntaxhighlight>
</syntaxhighlight>
==Create a Carved Rock Query==
==Create a Query==
Create a Query which looks in the repository (DB) and gets all of the products.  
Create a Query which looks in the repository (DB) and gets all of the products.  
<syntaxhighlight lang="c#">
<syntaxhighlight lang="c#">
Line 46: Line 46:
     }
     }
</syntaxhighlight>
</syntaxhighlight>
==Create a Schema for the Carved Rock Query==
==Create a Schema for the Carved Rock Query==
This holds the queries the schema supports. In our case the CarvedRockQuery created above
This holds the queries the schema supports. In our case the CarvedRockQuery created above

Revision as of 05:55, 6 August 2020

Creating a Project

Copy the project from RAID array

Sorry no help here

Add the packages

dotnet add package GraphQL

Create Database

Change the connection string

"CarvedRock": "Server=.;Database=CarvedRock;Trusted_Connection=False;User Id=test;Password=nottherealone"

Update the database

dotnet ef database update

Run the Site

To the site and look at https://localhost:5001/ui/playground

Creating a Schema

Create a Product Graph Type

Create Fields based on Meta Fields within ObjectGraphType

    public class ProductType: ObjectGraphType<Product>
    {
        public ProductType()
        {
            Field(t => t.Id);
            Field(t => t.Name).Description("The name of the product");
            Field(t => t.Description);
        }
    }

Create a Query

Create a Query which looks in the repository (DB) and gets all of the products.

    public class CarvedRockQuery: ObjectGraphType
    {
        public CarvedRockQuery(ProductRepository productRepository)
        {
            Field<ListGraphType<ProductType>>(
                "products", 
                resolve: context => productRepository.GetAll()
            );
        }
    }

Create a Schema for the Carved Rock Query

This holds the queries the schema supports. In our case the CarvedRockQuery created above

    public class CarvedRockSchema: Schema
    {
        public CarvedRockSchema(IDependencyResolver resolver): base(resolver)
        {           
            Query = resolver.Resolve<CarvedRockQuery>();
        }
    }