
Özellik:
'oneOf' Input Object
'oneOf' Input Object
oneOf input object, özel bir input object türüdür; giriş olarak tam olarak bir giriş alanının sağlanması gerekir, aksi takdirde sunucu bir doğrulama hatası döndürür. Bu davranış, GraphQL'de girdiler için polimorfizm sunar ve daha düzenli şemalar tasarlamamıza olanak tanır.
Örneğin, uygulamamızdaki bir kullanıcıyı kullanıcı kimliği veya e-posta gibi farklı özelliklerle almak mümkündür. Bunu yapmak için normalde her özellik için ayrı bir alan oluşturmamız gerekir:
type Query {
userByID(id: ID!): User
userByEmail(email: String!): User
}oneOf input object sayesinde, yalnızca bir özelliğin (kimlik veya e-posta) sağlanabileceğini ve sağlanması gerektiğini bilerek, tüm özellikleri bir UserByInput oneOf input object aracılığıyla kabul eden tek bir user alanına sahip olabiliriz:
type Query {
user(by: UserByInput!): User
}
input UserByInput @oneOf {
id: ID
email: String
}Sorguda, özelliklerden tam olarak biri için giriş değerini sağlarız:
{
tom: user(by: {
id: 1
}) {
name
}
jerry: user(by: {
email: "jerry@warnerbros.com"
}) {
name
}
}