Tôi muốn gửi yêu cầu đột biến graphql mà không phụ phầnGraphQL đột biến mà không phụ phần
mutation _ {
updateCurrentUser(fullName: "Syava", email: "[email protected]")
}
và tôi nhận được
{
"errors": [
{
"message": "Field \"updateCurrentUser\" of type \"User\" must have a sub selection.",
...
}
]
}
add {id} để yêu cầu hoạt động tốt nhưng tôi không muốn
Đồng thời Mã lược đồ
const userType = new GraphQLObjectType({
name: 'User',
fields:() => ({
id: { type: new GraphQLNonNull(GraphQLString) },
fullName: { type: GraphQLString },
email: { type: GraphQLString },
}),
});
type: userType,
args: {
fullName: { type: GraphQLString },
email: { type: new GraphQLNonNull(emailType) },
password: { type: GraphQLString },
},
resolve: async (root, { fullName, email, password }, { rootValue }) => {
const user = await User.findById(rootValue.req.user.id);
...
return user;
},
Bạn có thể làm cho câu trả lời này dễ hiểu hơn bằng cách thêm ví dụ lược đồ graphql hoặc định nghĩa kiểu graphql-js? – cpz
Trong trường hợp đột biến này được gọi từ một số phần của mã, có thể đôi khi phản hồi phải thuộc loại: "userType" và một số lần khác không cần phản hồi. Có cách nào để nhận phản hồi "userType" tùy chọn và dữ liệu lựa chọn phụ theo các ràng buộc của khách hàng không ?? –
Với 'type: userType', server cho biết nó trả về một người dùng * * null (với' type: GraphQLNonNull (userType) ', người dùng sẽ được bảo đảm có mặt). Bất kể, máy chủ cần chỉ định cách tìm nạp người dùng. Nếu nó có thể là 'null' cho một số trường hợp nhất định, máy khách phải chắc chắn trước khi truy cập các thuộc tính của nó. > theo các ràng buộc của máy khách Máy khách không thể hạn chế kiểu trả về. Những gì bạn có thể làm là yêu cầu 'updateCurrentUser (...) {id}' và đơn giản là bỏ qua những gì được trả về. Nhưng bạn không thể yêu cầu 'updateCurrentUser (...)' không có thuộc tính. –