Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GraphQL接口定义是否将其实现类型绑定到使用相同的输入参数;签名;?_Javascript_Facebook Graph Api_Graphql - Fatal编程技术网

Javascript GraphQL接口定义是否将其实现类型绑定到使用相同的输入参数;签名;?

Javascript GraphQL接口定义是否将其实现类型绑定到使用相同的输入参数;签名;?,javascript,facebook-graph-api,graphql,Javascript,Facebook Graph Api,Graphql,例如,GitHub API声明了一个名为Actor的类型: interface Actor { avatarUrl(size: Int): URI! login: String! resourcePath: URI! url: URI! } 可以安全地假设实现Actor的每个类型都为字段avatarUrl获取一个Int输入参数吗 Actor的子类型能否在avatarUrl字段上声明更多输入参数 这是针对模式语言(客户端实现)的transpiler,因此我

例如,GitHub API声明了一个名为
Actor
的类型:

interface Actor {

    avatarUrl(size: Int): URI!

    login: String!

    resourcePath: URI!

    url: URI!
}
  • 可以安全地假设实现
    Actor
    的每个类型都为字段
    avatarUrl
    获取一个
    Int
    输入参数吗
  • Actor
    的子类型能否在
    avatarUrl
    字段上声明更多输入参数

  • 这是针对模式语言(客户端实现)的transpiler,因此我不想做任何可能在运行时失败的假设。

    就GraphQL.js而言:

  • 是的,任何实现
    Actor
    接口的类型都需要在类型定义的
    avatarUrl
    字段中包含
    size
    参数

    需要明确的是,如果参数不是非null,客户机仍然可以在查询中禁用它。但是,它总是需要包含在类型定义中,否则GraphQL会抱怨

  • 是的,实现
    Actor
    的类型可以在字段上声明超出接口要求的额外参数。我认为这可能是一种边缘情况,因为这些参数在返回接口的任何查询上都不可用。但是返回特定类型(而不是接口)的查询在技术上可以使用附加参数


  • 谢谢对于#2,我生成的kotlin类型层次结构将继承的抽象属性(在接口上)与输入参数类型的泛型参数绑定在一起。这是可行的,但我认为我必须在codegen中添加另一层继承