我正在尝试在 Apollo/Express 应用程序中使用graphql-geojson库来提供 GeoJSON 响应。
该库提供了解析器,但我还没有找到一种方法来将类型添加到我的模式定义中,而无需手动将它们写出来。即便如此,事实证明也不是那么简单。
另一种自定义类型,来自graphql-date 的 Date,我可以在模式中声明为自定义标量:
const typeDefs: DocumentNode = gql`
scalar Date
scalar PointObject
type Station {
id: ID!
name: String!
geom: PointObject
created: Date!
}
...
}
但是,将 PointObject 声明为标量可以让您获得完整的 GeoJSON(没问题),但会导致错误:
"GraphQLError: 字段 \"geom\" 不能有选择,因为类型 \"GeoJSONPoint\" 没有子字段。"
当您尝试返回 的子选择时geom
,例如:
{
stations {
id
name
geom {
coordinates
}
}
}
有没有办法将库提供的类型与我的模式合并?