Поэтому я задаю этот вопрос потому, что могу заставить оба из них вернуть рабочий результат, просто заменив один или другой. Итак, какой из них лучше использовать и почему?
Каковы их цели в отношении схем?
import { mergeSchemas } from 'graphql-tools'
import bookSchema from './book/schema/book.gql'
import bookResolver from './book/resolvers/book'
export const schema = mergeSchemas({
schemas: [bookSchema],
resolvers: [bookResolver]
})
import { makeExecutableSchema } from 'graphql-tools'
import bookSchema from './book/schema/book.gql'
import bookResolver from './book/resolvers/book'
export const schema = makeExecutableSchema({
typeDefs: [bookSchema],
resolvers: [bookResolver]
})
Оба эти примера работают и возвращают желаемый результат. Я считаю, что правильный вариант для использования здесь - makeExecutableSchema
, но не уверен, почему первый будет работать?
EDIT
Просто было бы неплохо иметь типы / резолверы:
* 1016 определения типов *
type Query {
book(id: String!): Book
bookList: [Book]
}
type Book {
id: String
name: String
genre: String
}
Resolvers
export default {
Query: {
book: () => {
return {
id: `1`,
name: `name`,
genre: `scary`
}
},
bookList: () => {
return [
{ id: `1`, name: `name`, genre: `scary` },
{ id: `2`, name: `name`, genre: `scary` }
]
}
}
}
Запрос Run
query {
bookList{
id
name
genre
}
}
Результат
{
"data": {
"bookList": [
{
"id": "1",
"name": "name",
"genre": "scary"
},
{
"id": "2",
"name": "name",
"genre": "scary"
}
]
}
}