Graphql Non Nullable Nedir?

Graphql Non Nullable Nedir?

Graphql şemeları oluştururken zorunlu alanlara non nullable denir. Bu alanların tanımlarnının sonlarına bir ünlem ! getirilerek belirtilirler. Bu şekilde tanımlanmış alanlar bir sorgu ile çağrıldığı zaman boş bırakılamaz ve zorunlu olarak bir bilgi verecek şekilde gönderilirler. Aksi halde hata oluşur.

Non Nullable Alan Oluşturma

Eğer bir şema içerisinde bir alan non nullable olarak tanımlanacaksa tanım bilgisinin sonuna ünlem işareti konulur. Şimdi bir Kitap tanımlaması yapalım ve ismini zorunlu tutalım.

const typeDef = `#graphql
    type Kitap {
        isim: String!
        yazar: String
        yayinevi: String
    }
    `

Tanımlamada kullanılan kitap ismini tanımına bakalım isim: String! alanın tip bilgisinin sonuna bir adet ! işareti koyarak bu alanın non nullable olduğunu belirtmiş olduk.

Sorgu İçerisinde Bir Bilgiyi Non Nullable Olarak Tanımlamak

Eğer bir sorgu içerisinde gelen bilginin zorunlu olmasını istiyorsak, mesela kitap bilginin zorunlu olması gerekiyorsa bu durumda Query tanımlaması içerisinde bu bilginin sonuna ünlem ! işareti konulmalıdır.

    type Query {
        kitap: Kitap!
    }

Yukarıdaki örnek işleme alındığında bir kitap arandığında geriye boş / null olarak kitap bilgisi geldiğinde bir hata oluşacaktır. Bu tanımlama kitap bilgisinin zorunlu olduğunu belirtir.

Graphql non-nullable Array

Eğer geri dönderilecek sonuç bir array içeriyorsa ve bu dizinin boş olmasını istenmiyorsa. Bu array non-nullable olarak tanımlanabilir. Bunun için tanımın sonuna bir ünlem işareti koymak yeterlidir. Örnek verecek olursak. Eğer bir kitap listesinin geri dönmesini istiyorsak ve bu listenin boş olmaması gerekiyorsa şu şekilde belirtebiliriz.

    type Query {
        kitap: [Kitap]!
    }

Tanımlamayı [Kitap]! şeklinde yaptığımız zaman bu dizinin boş olamayacağını ve en az bir Kitap bilgisi içermesi gerektiğini belirtmiş oluyoruz.

Cannot return null for non-nullable field Hatası

Eğer non nullable olan bir alan boş olarak veya null değeri ile gönderilmek istenirse Cannot return null for non-nullable field hatası oluşur. Bu hatanın oluşmasını önlemek için ilgili alanın bir değer içerecek şekilde gönderilmesini sağlamak gereklidir.

Eğer bu mümkün değilse bu alanın non nullable olarak tanımlanmasını kaldırmak gerekebilir. Tabii ki bu mümkünse.

Sonuç

Bazı alanların zorunlu tutulması ve istek yapıldığı zaman bu alanın bir değer içermesi gerekebilir. Bu tip alanlar Graphqlde non nullable olarak tanımlanıyor.

Sormak istediklerinizi ve eklemek istediklerinizi lütfen yorumlara ekleyiniz.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir