Graphql 将默认/静态值从服务器传递到客户端
我有一个带有两个字段的输入类型,用于过滤客户机上的查询 我想将默认值(Graphql 将默认/静态值从服务器传递到客户端,graphql,react-apollo,apollo-server,Graphql,React Apollo,Apollo Server,我有一个带有两个字段的输入类型,用于过滤客户机上的查询 我想将默认值(rentIntervalLow+rentIntervalHigh)从服务器传递到客户端,但不知道如何做 下面是我当前的代码。我提出了两个天真的解决方案: 让客户机反思整个模式 拥有一个全局配置对象,并使用返回配置对象值的解析器创建一个可查询的config类型 如何使客户机可以访问服务器上的默认/配置值,还有比上述更好的建议吗 // schema.js const typeDefs = gql` input Filterin
rentIntervalLow
+rentIntervalHigh
)从服务器传递到客户端,但不知道如何做
下面是我当前的代码。我提出了两个天真的解决方案:
config
类型// schema.js
const typeDefs = gql`
input FilteringOptions {
rentIntervalLow: Int = 4000
rentIntervalHigh: Int = 10000
}
type Home {
id: Int
roomCount: Int
rent: Int
}
type Query {
allHomes(first: Int, cursor: Int, input: FilteringOptions): [Home]
}
`
export default typeDefs
我使用的是Apollo Server 2.8.1和Apollo React 3.0。没有必要对整个模式进行反思,以获取有关特定类型的信息。您可以编写如下查询:
query {
__type(name:"FilteringOptions") {
inputFields {
name
description
defaultValue
}
}
}
默认值是在查询中省略特定输入值时使用的值。因此,为了利用默认值,客户端将向allHomes
字段的input
参数传递一个空对象。您还可以给input
一个默认值{}
,这将允许客户端根本不提供input
参数,同时仍然将最小和最大默认值中继到解析器
但是,如果您的目的是向客户机提供最小值和最大值,以驱动某些特定于客户机的逻辑(如验证、下拉菜单值等),则不应为此使用默认值。相反,客户机应该直接查询此信息,例如,使用您建议的
Config
类型。无需内省整个模式来获取特定类型的信息。您可以编写如下查询:
query {
__type(name:"FilteringOptions") {
inputFields {
name
description
defaultValue
}
}
}
默认值是在查询中省略特定输入值时使用的值。因此,为了利用默认值,客户端将向allHomes
字段的input
参数传递一个空对象。您还可以给input
一个默认值{}
,这将允许客户端根本不提供input
参数,同时仍然将最小和最大默认值中继到解析器
但是,如果您的目的是向客户机提供最小值和最大值,以驱动某些特定于客户机的逻辑(如验证、下拉菜单值等),则不应为此使用默认值。相反,客户机应该直接查询此信息,例如使用您建议的Config
类型