将默认值/静态值从服务器传递到客户端



我有一个输入类型,其中包含两个字段,用于过滤客户端上的查询。

我想将默认值(rentIntervalLow+rentIntervalHigh(从服务器传递到客户端,但不知道如何做。

下面是我当前的代码。我想出了两个幼稚的解决方案:

  1. 让客户端自省整个架构。

  2. 具有全局配置对象,并使用返回配置对象值的解析程序创建可查询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类型。

相关内容

最新更新