我正在尝试为我的API定义我的架构。我遇到的问题是每个资源都有许多不同的部分。理想情况下,我希望能够说section是一个JSON对象,而不是定义各部分中的所有不同模块。有没有办法可以做到这一点?据我所知,使用JSON
似乎没有graphql-tools
类型定义
// Define your types here.
const typeDefs = `
type Resource {
id: ID,
title: String!,
slug: String!,
path: String!,
template: String!,
published: String!,
sections: Sections
}
type Sections {
// ...
}
type Query {
allLinks(filter: LinkFilter): [Link!]!
findResource(filter: ResourceFilter): [Resource!]!
}
`;
答案 0 :(得分:1)
您需要导入自定义JSON标量。 This module是最受欢迎的广告之一。
在typeDefs中的任何位置添加以下行:
function water() {
return function (valueOfWater) {
return {
water: valueOfWater
};
};
}
console.log(water()('is liquid')); // returns: { water: 'is liquid' }
然后在传递给scalar JSON
的{{1}}对象内:
resolvers
一句警告:只要您使用JSON作为标量,就会失去灵活性。 GraphQL的部分魅力在于它允许客户端只查询他们需要的字段。当您使用JSON时,您的客户端将只能查询整个JSON块,或者根本不查询它们 - 它们无法挑选和选择部分JSON。