我想使用模式拼接,但我在使用mutation extend时遇到了问题,可能是传递参数的问题。
我下面的模式拼接代码
extend type Mutation {
space(value: SpaceInput): Int! @delegate(schema: "matterport", path: "space(value: $arguments:value)")
}
我得到以下错误
{
"errors": [
{
"message": "The variable `__arguments_value` is not compatible with the type of the current location.",
"locations": [
{
"line": 2,
"column": 5
}
],
"path": [
"space"
],
"extensions": {
"variable": "__arguments_value",
"variableType": "SpaceInput",
"locationType": "SpaceInput!",
"specifiedBy": "http://spec.graphql.org/October2021/#sec-All-Variable-Usages-are-Allowed",
"remote": {
"message": "The variable `__arguments_value` is not compatible with the type of the current location.",
"path": [
"space"
],
"extensions": {
"variable": "__arguments_value",
"variableType": "SpaceInput",
"locationType": "SpaceInput!",
"specifiedBy": "http://spec.graphql.org/October2021/#sec-All-Variable-Usages-are-Allowed"
}
},
"schemaName": "matterport"
}
}
]
}
你能帮帮我吗
我正在尝试多个传递参数,但我得到了相同的结果,我描述的错误。
1条答案
按热度按时间m1m5dgzv1#
正如我从你的错误响应中所看到的,你的扩展因为可空性而无法工作。扩展中的
space
采用可空参数,而委托中的space
采用不可空参数我通过这部分的回答得出了这样一个结论:
变量类型最终没有
!
,这意味着类型是不可空的。这种差异可能是不兼容性的原因。在specifiedBy
字段中链接的规范中还提到:AreTypesCompatible(variableType,locationType):
1.如果locationType是非null类型:
a.如果variableType不是非空类型,返回false。