Temel Tipler | GraphQL

Çoğu durumda, yapmamız gereken, buildSchema fonksiyonuna bir argüman olarak alınan GraphQL şema dili kullanılarak API’larınızın türlerini belirtmektir.

GraphQL şema dili ait sayılı türleri destekler String, Int, Float, Boolean ve ID dolayısıyla bunları direkt buildSchema’ya ilettiğiniz şemada kullanabilirsiniz.

Varsayılan olarak, her tür null değerdedir — null’u skalar türlerinden herhangi biri gibi döndürmek meşrudur.

Bir türün null olmayacağını belirtmek için bir ünlem işareti kullanın, böylece String! null olmayan bir dizgedir.

Liste (array olarak düşünebilirsiniz) türünü kullanmak için, tipi köşeli parantezler ile çevreleyin, böylece [Int] tamsayılardan oluşan bir liste olur.

Bu türlerin her biri basitçe JavaScript’e eşlenir; bu nedenle, bu türleri döndüren API’lerde basit eski JavaScript nesnelerine geri döndürebilirsiniz. İşte bu temel türlerden bazılarının nasıl kullanıcağını gösteren örnek:

var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');

// GraphQL şema dilini kullanarak bir şema oluşturur
var schema = buildSchema(`
type Query {
quoteOfTheDay: String
random: Float!
rollThreeDice: [Int]
}
`);

// Kök (root) her API bitiş noktası için bir çözümleyici (resolver) sağlar
var root = {
quoteOfTheDay: () => {
return Math.random() < 0.5 ? 'Take it easy' : 'Salvation lies within';
},
random: () => {
return Math.random();
},
rollThreeDice: () => {
return [1, 2, 3].map(_ => 1 + Math.floor(Math.random() * 6));
},
};

var app = express();
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');

Eğer bu kodu node server.js ile çalıştırsanız ve http://localhost:4000/graphql adresine gidin bu API’ları deneyebilirsiniz.

Bu örnekler, farklı türleri döndüren API’lara nasıl istek atacağınız gösterir. Bir API’ya farklı veri türleri göndermek için, Argümanları GraphQL API’na Aktarma hakkında bili edinmeniz gerekecek.