如何在 graphql 中定义 Java 映射?
How to define a Java Map in graphql?
我有一个 filterModel
地图 Map<String, ColumnFilter> filterModel
用于过滤我的 Actor 数据。当我尝试过滤我的数据时,我从客户端获得了一个 filterModel 对象。如何在我的 graphql 查询中定义此 Java 映射?
来自客户端的 filterModel 对象:
filterModel: {
firstname: {filterType: 'text', type: 'contains', filter: 'Tom'}, ...
}
架构:
type Actor {
actorId: ID!,
firstName: String,
lastName: String,
}
type Query {
rows(
filterModel: [filterModel]
): [Actor]
}
input filterModel {
key: String,
value: ColumnFilter
}
input ColumnFilter {
filterType: String,
type: String,
filter: String
}
GraphQL 中没有地图类型。因为地图基本上包含动态键,所以它们不能很好地融入 GraphQL 所期望的静态类型。
如果您真的不确定地图中数据的类型,您始终可以将该动态信息存储为字符串。这是我个人会做的事情。
所以你的 filterModel 会变成
filterModel:String
并且该字符串将是对象的 JSON
表示。您可以在代码中进行 JSON 解析,将其转换回 Map
我有一个 filterModel
地图 Map<String, ColumnFilter> filterModel
用于过滤我的 Actor 数据。当我尝试过滤我的数据时,我从客户端获得了一个 filterModel 对象。如何在我的 graphql 查询中定义此 Java 映射?
来自客户端的 filterModel 对象:
filterModel: {
firstname: {filterType: 'text', type: 'contains', filter: 'Tom'}, ...
}
架构:
type Actor {
actorId: ID!,
firstName: String,
lastName: String,
}
type Query {
rows(
filterModel: [filterModel]
): [Actor]
}
input filterModel {
key: String,
value: ColumnFilter
}
input ColumnFilter {
filterType: String,
type: String,
filter: String
}
GraphQL 中没有地图类型。因为地图基本上包含动态键,所以它们不能很好地融入 GraphQL 所期望的静态类型。
如果您真的不确定地图中数据的类型,您始终可以将该动态信息存储为字符串。这是我个人会做的事情。
所以你的 filterModel 会变成
filterModel:String
并且该字符串将是对象的 JSON
表示。您可以在代码中进行 JSON 解析,将其转换回 Map