为何HotChocolate未使用注册的输入/输出类型名?技术咨询
问题解答
这属于StrawberryShake的预期行为,而非Bug,具体原因和调整方式如下:
输入类型显示为DocumentInputContractInput的原因
StrawberryShake有默认的输入类型命名策略:当基于C#契约类生成GraphQL输入类型时,它会自动给契约类名称追加Input后缀,以此贴合GraphQL规范中输入类型通常以Input结尾的约定。如果想要使用自定义的输入类型名称(比如你定义的DocumentGraphqlInput),可以在输入契约类上显式添加特性指定:
[GraphQLInputType("DocumentGraphqlInput")] public class DocumentInputContract { // 契约属性定义 }
返回类型显示为DocumentOutputContract的原因
StrawberryShake默认会直接使用输出契约类的名称作为GraphQL返回类型的名称,除非你显式指定了GraphQL类型名称。如果想要让返回类型显示为DocumentGraphqlOutput,只需在输出契约类上添加类型指定特性:
[GraphQLType("DocumentGraphqlOutput")] public class DocumentOutputContract { // 契约属性定义 }
通过上述特性配置,就能让StrawberryShake生成的Schema中显示你期望的输入/返回类型名称。
内容的提问来源于stack exchange,提问作者AndrasCsanyi
相关产品推荐
相关产品推荐

