@graphql_ru
GraphQL — русскоговорящее сообщество

Общаемся на темы, посвященные GraphQL и опыту его использования. Проблемы. Новости. Решения. Вам могут быть полезны: @apollo_ru, @react_js, @vuejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание в чате было полезным и комфортным.

352 members

Архив канала @graphql_ru 14 августа 2018 г.

05:59:56 ДП
User 356000953
const {
  GraphQLObjectType,
  GraphQLNonNull,
  GraphQLString,
  GraphQLInt,
  GraphQLID,
  GraphQLList
} = require('graphql');
const {Song} = require('../../db/models');
const singerType = require('../queries/singer');


const SongType = new GraphQLObjectType({
  name: 'Song',
  description: 'This is Song Type',
  fields: {
    id: {
      type: new GraphQLNonNull(GraphQLID),
    },
    title: {
      type: new GraphQLNonNull(GraphQLString),
    },
    year: {
      type: new GraphQLNonNull(GraphQLInt),
    },
    duration: {
      type: new GraphQLNonNull(GraphQLInt),
    },
    size: {
      type: new GraphQLNonNull(GraphQLInt),
    },
    filePath: {
      type: GraphQLInt
    },
    bitRate: {
      type: GraphQLInt
    },
    singers: {
      type: new GraphQLList(singerType),
    }
  },
  args: {
    id: new GraphQLNonNull(GraphQLID)
  },
  resolve: (root, {id}) => {
    const song = Song.findById(id).exec();
    if(!song) {
      throw new Error('Error')
    }
    return song
  }
});

module.exports = SongType;
 
const {
  GraphQLObjectType,
  GraphQLNonNull,
  GraphQLString,
  GraphQLID,
  GraphQLList
} = require('graphql');
const {Singer} = require('../../db/models');
const SongType = require('../queries/song');


const SingerType = new GraphQLObjectType({
  name: 'Singer',
  description: 'This is Singer Type',
  fields: {
    id: {
      type: new GraphQLNonNull(GraphQLID),
    },
    fullName: {
      type: new GraphQLNonNull(GraphQLString),
    },
    songs: {
      type: new GraphQLList(SongType)
    }
  },
  args: {
    id: new GraphQLNonNull(GraphQLID)
  },
  resolve: (root, {id}) => {
    const singer = Singer.findById(id).exec();
    if(!singer) {
      throw new Error('Error')
    }
    return singer
  }
});

module.exports = SingerType;
 вылетает ошибка Expected [object Object] to be a GraphQL type. в чем может быть проблема?
06:08:39 ДП
User 213453025
args: { id: {  type:  ... } }
06:11:28 ДП
User 356000953
не помогает
06:11:52 ДП
User 213453025
импорты проверь
06:16:44 ДП
User 356000953
а вообще можно делать many-to-many relationship
06:17:19 ДП
User 356000953
singers: [Singer!] songs: [Song!]
06:17:50 ДП
User 213453025
конечно
07:02:00 ДП
User 356000953
User 213453025
импорты проверь
const {
  GraphQLObjectType,
  GraphQLSchema,
  GraphQLList
} = require('graphql');
const songType = require('./queries/song');
const singerType = require('./queries/singer');
const songMutations = require('./mutations/song/');
const singerMutations = require('./mutations/singer/');



module.exports = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
      song: songType,
      songs: {
        type: new GraphQLList(songType),
      },
      singer: singerType,
      singers: {
        type: new GraphQLList(singerType)
      }
    }
  }),
  mutation: new GraphQLObjectType({
    name: 'RootMutation',
    fields: {
      ...songMutations,
      ...singerMutations
    }
  })
});
 я в отчаянии
07:35:35 ДП
User 213453025
ну так song: {type: songType }
07:35:42 ДП
User 213453025
все те же ошибки
07:47:08 ДП
User 356000953
https://github.com/asankulov/grapqhl-api
github.com/asankulov/grapqhl-api
Contribute to grapqhl-api development by creating an account on Github.
08:00:41 ДП
User 356000953
User 213453025
ну так song: {type: songType }
пасибо
09:59:40 ДП
User 23619976
а гайды никто на русский не переводил?
10:04:23 ДП
User 83376394
сейчас мало что переводят
10:38:49 ДП
User 356000953
type Singer {
    id: String!
    fullName: String!
    songs: [Song!]!
  } это означает что songs всегда должен быть при запросах?
10:42:06 ДП
User 213453025
нет, пустой массив тоже подойдет
10:43:50 ДП
User 356000953
! знак вообще что означает в типах. в мутациях и квери это понятно, но вот в типах
10:44:41 ДП
User 213453025
спеку почитай, там все расписано
10:49:05 ДП
10:59:48 ДП
User 321317845
@kylych https://railt.org/docs/language/modifiers
11:00:08 ДП
User 321317845
мб так понятнее будет
11:00:38 ДП
User 356000953
спасибо с англ дружу)
11:02:02 ДП
User 356000953
просто доки думал https://graphql.org/learn/  только эти. оказ есть спеки
graphql.org/learn
GraphQL gives clients the power to ask for exactly what they need and nothing more, making it easier to evolve APIs over time.