例如,GitHub API 声明了一个名为 Actor
的类型:
interface Actor {
avatarUrl(size: Int): URI!
login: String!
resourcePath: URI!
url: URI!
}
- 是否可以安全地假设每个实现
Actor
的类型都为字段avatarUrl
采用一个Int
输入参数? Actor
的子类型能否在avatarUrl
字段上声明更多输入参数?
这是针对模式语言(客户端实现)的转译器,因此我不想做出任何可能在运行时失败的假设。
最佳答案
就 GraphQL.js 而言:
是的,任何实现
Actor
接口(interface)的类型都需要在其avatarUrl
字段中包含size
参数定义。需要明确的是,如果参数不是 NonNull,客户端仍然可以在查询中将其关闭。但是,它始终需要包含在类型定义中,否则 GraphQL 会报错。
是的,实现
Actor
的类型可以在该字段上声明超出接口(interface)要求的额外参数。我想这将是一种边缘情况,因为这些参数在返回接口(interface)的任何查询中都不可使用。但是返回特定类型而非接口(interface)的查询在技术上可以利用额外的参数。
关于javascript - GraphQL 接口(interface)定义是否将其实现类型绑定(bind)到使用相同的输入参数 "signature"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45806535/