如何在 graphql dotnet 中使用 Pascal 大小写而不是骆驼大小写
how to use pascal casing instead of camel casing in graphql dotnet
这里我有一个突变,你可以看到参数名称是 Product,大写 P,字段名称是 CreateProduct,大写 C 当我从图形执行这个突变时,我必须在 camel 上写字段的名称外壳和参数名称,有没有办法配置 graphql-dotnet 以尊重代码中编写的名称?
const string STR_Product = "Product";
public Mutations(IProductService ProductService)
{
Name = "Mutation";
Field<ProductType>(
"CreateProduct",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<ProductInputType>> { Name = STR_Product }),
resolve: context =>
{
var ProductInput = context.GetArgument<ProductInput>(STR_Product);
return ProductService.CreateAsync(ProductInput.Code, ProductInput.Name, ProductInput.Description);
//return new ProductInputType();
}
);
}
}
您可以将 IFieldNameConverter
传递给 ExecutionOptions
。它默认使用 CamelCaseFieldNameConverter
.
内省类型需要一些特殊注意事项,因为根据 GraphQL 规范,这些类型需要采用驼峰式大小写。
GraphQL.NET 提供 CamelCaseFieldNameConverter
、PascalCaseFieldNameConverter
和 DefaultFieldNameConverter
。你也可以自己写。 Source found here.
using System;
using GraphQL;
using GraphQL.Types;
public class Program
{
public static void Main(string[] args)
{
var schema = Schema.For(@"
type Query {
Hello: String
}
");
var json = schema.Execute(_ =>
{
_.Query = "{ Hello }";
_.Root = new { Hello = "Hello World!" };
_.FieldNameConverter = new DefaultFieldNameConverter();
});
Console.WriteLine(json);
}
}
请参阅 Joe McBride 的上述回答,但应该使用“NameConverter”而不是“FieldNameConverter”。示例:
var json = schema.Execute(_ =>
{
_.NameConverter = new DefaultNameConverter(); //or PascalNameConverter, etc.
});
(作为答案发布,因为我无法发表评论)
这里我有一个突变,你可以看到参数名称是 Product,大写 P,字段名称是 CreateProduct,大写 C 当我从图形执行这个突变时,我必须在 camel 上写字段的名称外壳和参数名称,有没有办法配置 graphql-dotnet 以尊重代码中编写的名称?
const string STR_Product = "Product";
public Mutations(IProductService ProductService)
{
Name = "Mutation";
Field<ProductType>(
"CreateProduct",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<ProductInputType>> { Name = STR_Product }),
resolve: context =>
{
var ProductInput = context.GetArgument<ProductInput>(STR_Product);
return ProductService.CreateAsync(ProductInput.Code, ProductInput.Name, ProductInput.Description);
//return new ProductInputType();
}
);
}
}
您可以将 IFieldNameConverter
传递给 ExecutionOptions
。它默认使用 CamelCaseFieldNameConverter
.
内省类型需要一些特殊注意事项,因为根据 GraphQL 规范,这些类型需要采用驼峰式大小写。
GraphQL.NET 提供 CamelCaseFieldNameConverter
、PascalCaseFieldNameConverter
和 DefaultFieldNameConverter
。你也可以自己写。 Source found here.
using System;
using GraphQL;
using GraphQL.Types;
public class Program
{
public static void Main(string[] args)
{
var schema = Schema.For(@"
type Query {
Hello: String
}
");
var json = schema.Execute(_ =>
{
_.Query = "{ Hello }";
_.Root = new { Hello = "Hello World!" };
_.FieldNameConverter = new DefaultFieldNameConverter();
});
Console.WriteLine(json);
}
}
请参阅 Joe McBride 的上述回答,但应该使用“NameConverter”而不是“FieldNameConverter”。示例:
var json = schema.Execute(_ =>
{
_.NameConverter = new DefaultNameConverter(); //or PascalNameConverter, etc.
});
(作为答案发布,因为我无法发表评论)