.net core GraphQL query

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();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值