Graphql 热巧克力中基于注释的vs代码优先
热巧克力中的Graphql 热巧克力中基于注释的vs代码优先,graphql,hotchocolate,Graphql,Hotchocolate,热巧克力中的code-First和Pure-code-First或Annotation-Based之间有什么区别?在GraphQL模式透视图和热巧克力中,每种编码方法的优缺点是什么?基于注释或纯代码-First:在这种方法中,我们不关心GraphQL模式类型,我们只编写干净的C代码,自动转换为GraphQL类型 代码优先:在这种方法中,我们使用模式类型,模式类型允许我们将GraphQL类型配置与.NET类型分开当我们不希望业务对象上有任何热巧克力属性时,这可能是正确的方法。纯代码优先被重命名为基
code-First
和Pure-code-First
或Annotation-Based
之间有什么区别?在GraphQL模式透视图和热巧克力中,每种编码方法的优缺点是什么?基于注释或纯代码-First:在这种方法中,我们不关心GraphQL模式类型,我们只编写干净的C代码,自动转换为GraphQL类型
代码优先:在这种方法中,我们使用
模式类型
,模式类型允许我们将GraphQL类型配置与.NET类型分开当我们不希望业务对象上有任何热巧克力属性时,这可能是正确的方法。纯代码优先
被重命名为基于注释的。所以这两个是一样的
这取决于你最终使用的架构和品味。您不必先编写代码或基于注释,还可以混合匹配
默认情况下,热巧克力会推断所有属性及其类型。也就是说,当您返回一个用户时,
将自动为其创建一个包含该用户所有属性的类型。
如果要更改类型的配置,可以使用注释或创建ObjectType`
在幕后,所有的方法(甚至先是模式)都有相同的表示。它们都被转换为code-first
方法
在代码优先的方法中,您使用类型继承和fluent API来配置类型
公共类用户
{
公共字符串Id{get;set}
}
公共类UserType:ObjectType
{
受保护的覆盖无效配置(IObjectTypeDescriptor描述符)
{
descriptor.Field(x=>x.Id).Type();
字段(x=>x.GetAddressAsync(默认,默认));
}
公共类解析器
{
公共任务