У меня есть плагин, который создает объект с {id: "XXX", text: "XXX"}, когда теги создаются пользователем. Я пытаюсь заставить мой сервер apollo graphql принимать этот объект как тип в моей схеме. Я перепробовал много вещей, но наиболее разумным для меня является создание типа с этой формой объекта и его использование. Это, кажется, работает в оригинальном типе, но не во входах (обновление и новый). Я получаю сообщение об ошибке: Ошибка: схема должна содержать уникальные именованные типы, но содержит несколько типов с именем «CustomQuestionOption».
const customQuestionTypeDefs = `
type CustomQuestionOption {
id: ID,
text: String
}
type CustomQuestion {
id: ID!
question: String
questionType: String
options: [CustomQuestionOption]
required: Boolean
}
input UpdatedCustomQuestion {
id: ID!
question: String
questionType: String
options: [CustomQuestionOption]
required: Boolean
}
input NewCustomQuestion {
question: String
questionType: String
options: [CustomQuestionOption]
required: Boolean
}
extend type Query {
CustomQuestion(id: ID!): CustomQuestion!
allCustomQuestions: [CustomQuestion]!
}
extend type Mutation {
newCustomQuestion(input: NewCustomQuestion!): CustomQuestion!
updateCustomQuestion(input: UpdatedCustomQuestion!): CustomQuestion!
}
`;
export default customQuestionTypeDefs;
, который затем объединяется как
const baseSchema = `
schema {
query: Query
mutation: Mutation
}
`;
export const schema = makeExecutableSchema({
typeDefs: [baseSchema, eventTypeDefs, sponsorshipItemTypeDefs, customQuestionTypeDefs, userTypeDefs],
resolvers: merge({}, eventResolvers, sponsorshipItemResolvers, customQuestionResolvers, userResolvers)
});
Есть ли способ заставить мой сервер принимать этот объект во входах или мне нужно сохранить как строку и преобразовать его при сохранении и загрузке? (т.е. "[{id: 'S', текст: 'S'}]")