我是GraphQL的新手。我正在使用亚马逊和Itunes的API获取一本书的标题(和其他信息)。我返回的对象如下:
var data = [];
data.title = results[0].title;
data.author = results[0].author;
return data;
我可以调用Amazon和ITunes API并返回一本书的可用数据。但是,我希望能够插入EAN/ISBN数组,并从Amazon和ITunes返回所有书籍的数据。
因此,查询应该是这样的:
{
book(id:["9789025451608", "8974832789431","9789024576791"]){
amazon{
title
},
itunes{
title
}
}
}
而回应:
{
"data": {
"book": {
"book1":{
"amazon": {
"title": "De Moord op Commendatore"
},
"itunes": {
"title": "Niet beschikbaar" // not available
}
},
"book2":{
"amazon": {
"title": "Origin"
},
"itunes": {
"title": "Origin"
}
}
}
}
}
我已经搜索了使用graphQLList的例子,但我不确定在哪里使用graphQLList以及如何遍历BookTypes。
也许有人能帮我或者给我举个例子。
我的查询如下所示
{
book(id:["9789025451608"]){
amazon{
title
},
itunes{
title
}
}
}
并返回:
{
"data": {
"book": {
"amazon": {
"title": "De Moord op Commendatore"
},
"itunes": {
"title": "Niet beschikbaar" // not available
}
}
}
}
Schema.js
"use strict";
const graphql = require('graphql');
const axios = require('axios');
const {
GraphQLObjectType,
GraphQLString,
GraphQLInt,
GraphQLSchema,
GraphQLList
} = graphql;
// root queries
const RootQuery = require('./types/query');
module.exports = new GraphQLSchema({
query: RootQuery
});
根查询:
const graphql = require('graphql');
const axios = require('axios');
const {
GraphQLObjectType,
GraphQLString,
GraphQLList,
GraphQLInt
} = graphql;
const BookType = require('../types/book');
const RootQuery = new GraphQLObjectType({
name:'RootQuery',
fields: () => ( {
book: {
type: BookType,
args:{ id : { type: GraphQLString } },
resolve (parentValue, args) {
return resp = { id: args.id }
}
}
})
});
module.exports = RootQuery;
书本类型
const graphql = require('graphql');
const axios = require('axios');
const {
GraphQLObjectType,
GraphQLString,
GraphQLInt
} = graphql;
// Itunes
const itunes = require('../connections/itunes');
const ItunesType = require('./itunes');
// Amazon
const amazon = require('../connections/amazon');
const AmazonType = require('./amazon');
const BookType = new GraphQLObjectType({
name:'book',
fields: () => ( {
id: {
type: GraphQLString,
},
itunes: {
type: ItunesType,
resolve(parentValue,args){
console.log(parentValue);
data = itunes.getMetadataItunes(parentValue.id);
return data;
}
},
amazon: {
type: AmazonType,
resolve(parentValue, args) {
console.log(parentValue);
data = amazon.getMetadataAmazon(parentValue.id);
return data;
}
}
})
});
module.exports = BookType;
亚马逊类型
const graphql = require('graphql');
const{
GraphQLObjectType,
GraphQLString,
GraphQLList
} = graphql;
const AmazonType = new GraphQLObjectType({
name: 'amazon',
fields: () => ( {
title: { type: GraphQLString },
})
});
module.exports = AmazonType;
ITunesType也有同样的代码。
如果要返回多本书,则书籍字段的类型需要为 GraphQL 列表。
fields: () => ( {
book: {
type: new GrapQLList(BookType),
args:{ id : { type: GraphQLString } },
resolve (parentValue, args) {
return resp = { id: args.id }
}
}
问题内容: 我正在尝试遍历以下内容 我到目前为止所得到的: 有任何想法吗? 问题答案: 在您的代码中,元素是JSON对象的数组,而不是JSON对象本身。元件,和是JSON的一部分内部对象JSON阵列。 您需要遍历数组 版画 我不知道您的代码片段来自何处。
问题内容: 我可能错过了一些简单的事情,但似乎在这里被阻止了……我有一个带有两个表的MySQL数据库,每个表都有几行。因此,目标是查询数据库并在表中显示结果,因此我开始是这样的: 然后我有这个PHP代码: 然后,我用它来获取数组: 在这一点上,我认为我可以简单地遍历数组并将结果显示在表中。我已经有一个函数可以执行表的循环和显示,但是不幸的是,数组在到达函数之前似乎还不完整。 要对此进行故障排除,请
问题内容: 我有一个具有1 2 3 4 5值的数组。 现在我想以循环方式遍历它。像我想打印2 3 4 5 1或3 4 5 1 2或5 1 2 3 4等等。有什么 算法 吗? 编辑: 我想以循环方式打印所有组合。我不想在初始阶段说明起点。 问题答案: (如果要从向下迭代数组,请在数组下标表达式中更改为。) 我应该注意,就执行速度而言,这可能不是表达循环的最有效方法。但是,差异很小,并且 很可能无关紧
问题内容: 我需要遍历一个post数组并对其求和。 但是我不知道从哪里开始。 问题答案: 这是您的操作方式: 这会照顾传入的变量和数组。
问题内容: 我有一个Java类,其中有许多。 我想循环遍历所有字段,并为空字段做些事情。 例如,如果我的课程是: 在另一个位置,我将创建一个对象,并且想遍历该类中的所有字段。有点像这样: 我有什么办法可以做到这一点? 问题答案: 用于[班级] (http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html)
问题内容: 我试图遍历一个json文件的对象数组以访问其变量的键和值,并使用jquery的getjson及其每个将它们附加到列表项。 我认为该解决方案应该与本文中的解决方案类似…但是我似乎无法使其完全发挥作用并显示结果…非常感谢您的帮助! json数据的格式如下: 并且html的格式应如下所示: 问题答案: 您要替换为空白数组,从而在运行时破坏数据。删除此行,它应该工作。 编辑 :您的代码中还有一