1 创建控制台程序
2 安装GraphQL(2.4.0)
3 代码
Person.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace GraphQL.net
{
public class Person
{
public int UserId { get; set; }
public string Address { get; set; }
public string SayType { get; set; }
public string EatType { get; set; }
}
}
PersonQuery.cs
using GraphQL.Types;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace GraphQL.net
{
public class PersonQuery:ObjectGraphType
{
public PersonQuery()
{
List<Person> people = new List<Person>()
{
new Person(){Address="Dl",SayType="Dl",EatType="Dl",UserId=100},
new Person(){Address="SY",SayType="SY",EatType="SY",UserId=100}
};
Name = "person query";
Description = "query";
Field<PersonType>("queryPerson",arguments: new QueryArguments(new QueryArgument<StringGraphType> { Name="name"}, new QueryArgument<StringGraphType> { Name = "id" }), resolve:
ctx=>
{
string name = ctx.GetArgument<string>("name");
return people.Where(x => x.Address == name).FirstOrDefault();
});
}
}
}
PersonType.cs
using GraphQL.Types;
using System;
using System.Collections.Generic;
using System.Text;
namespace GraphQL.net
{
public class PersonType:ObjectGraphType<Person>
{
public PersonType()
{
Name = "Person";
Description = "test";
Field(a => a.UserId).Description("人的编号");
Field(a => a.Address).Description("地址");
Field(a => a.SayType).Description("语言");
Field(a => a.EatType).Description("吃");
}
}
}
Program.cs
using GraphQL.Types;
using System;
namespace GraphQL.net
{
class Program
{
static void Main(string[] args)
{
Schema schema = new Schema { Query = new PersonQuery() };
string para = "{\"specialName\":\"Dl\"}";
string json = schema.Execute(_ =>
{
//_.Query = "{queryPerson(name:\"pinghua\"){userId sayType}}";
_.Query = "query ($specialName:String) {queryPerson(name:$specialName){userId sayType}}";
_.Inputs = para.ToInputs();
}
);
Console.WriteLine(json);
Console.ReadKey();
}
}
}