Node JS ile GraphQL API Web Servisi Nasıl Yazılır?
Bu makalede, Node JS kullanarak GraphQL API web servisi nasıl oluşturulur detaylı bir şekilde açıklanmaktadır.
Merhaba! Bu makalede, Node JS kullanarak bir GraphQL API web servisi nasıl yazılacağını detaylı bir şekilde öğreneceksiniz.
İçindekiler
- Giriş
- Gereksinimler
- Proje Yapısının Oluşturulması
- GraphQL Kurulumu ve Ayarlanması
- Şema Oluşturma
- Sorguları ve Mutasyonları Oluşturma
- Sunucunun Başlatılması
- Sonuç
Giriş
GraphQL, Facebook tarafından geliştirilen bir sorgulama dilidir ve verilere istemci tarafından tam kontrol sağlama amacını taşır. Bu makalede, GraphQL'i kullanarak bir API web servisi oluşturma sürecini adım adım açıklayacağız. Node JS platformunu tercih edeceğiz, çünkü Node JS, GraphQL'ın geliştirme sürecini hızlandıran ve kolaylaştıran birçok kullanışlı kütüphaneyi desteklemektedir.
Gereksinimler
Bu projeyi oluşturmak için aşağıdaki gereksinimlere ihtiyacınız olacak:
- Node JS'in yüklü olduğundan emin olun.
- Bir metin düzenleyici (örn. VS Code gibi) kullanmanızı tavsiye ederiz.
Proje Yapısının Oluşturulması
Öncelikle, terminale aşağıdaki komutu girerek yeni bir Node JS projesi oluşturun:
mkdir graphql-api
cd graphql-api
npm init -y
Bu komutlarla "graphql-api" adında bir klasör oluşturup içine geçiş yapacak ve boş bir npm projesi oluşturacaksınız.
GraphQL Kurulumu ve Ayarlanması
GraphQL'i kullanabilmek için express-graphql
kütüphanesini yüklememiz gerekiyor. Terminale aşağıdaki komutu girerek, express-graphql
kütüphanesini yükleyin:
npm install express-graphql
Bu kütüphaneyi yükledikten sonra, index.js
adında bir dosya oluşturun ve aşağıdaki kodu içine yapıştırın:
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const app = express();
app.use('/graphql', graphqlHTTP({
graphiql: true,
}));
app.listen(3000, () => {
console.log('GraphQL API çalışıyor...');
});
Bu kod, GraphQL tarayıcı arayüzünü kullanabilmek için /graphql
endpoint'ini ve bu endpoint'i kullanarak GraphQL sorgularını işleyecek bir HTTP sunucusunu oluşturur.
Şema Oluşturma
Şimdi GraphQL şemasını oluşturmak için aşağıdaki adımları izleyelim:
- Proje klasörüne
schema
adında bir klasör oluşturun. - İçine
schema.js
adında bir dosya oluşturun ve aşağıdaki kodu yapıştırın:
const { buildSchema } = require('graphql');
const schema = buildSchema(`
type Query {
hello: String
}
`);
module.exports = schema;
Bu kod, hello
adında bir sorgu tipi içeren basit bir GraphQL şeması oluşturur.
Sorguları ve Mutasyonları Oluşturma
Şimdi, sorgular ve mutasyonlar için gerekli kodları resolvers
klasörü altında oluşturacağız:
- Proje klasörüne
resolvers
adında bir klasör oluşturun. - İçine
hello.js
adında bir dosya oluşturun ve aşağıdaki kodu yapıştırın:
const hello = () => {
return 'Merhaba Dünya!';
};
module.exports = hello;
Bu kod, hello
sorgusu için bir çözümleyici fonksiyonunu içerir. Bu çözümleyici, sorguyu işleyecek ve istemciye "Merhaba Dünya!" yanıtını döndürecektir.
Sunucunun Başlatılması
Son adımda, index.js
dosyamızı güncelleyerek sunucuyu başlatacağız:
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const schema = require('./schema/schema');
const helloResolver = require('./resolvers/hello');
const app = express();
const root = {
hello: helloResolver,
};
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(3000, () => {
console.log('GraphQL API çalışıyor...');
});
Bu güncellenmiş kod, GraphQL şemasını ve çözümleyicileri ayarlar. root
nesnesi, sorguların ve mutasyonların nasıl işleneceğini belirtir.
Sonuç
Bu makalede Node JS kullanarak GraphQL API web servisini nasıl oluşturacağınızı öğrendiniz. Bu süreçte, GraphQL'in temel kavramlarını ve kullanımını anlamış oldunuz. Artık bu temel bilgiyi kullanarak, farklı veri kaynaklarına ve daha karmaşık şemalara sahip GraphQL servisleri oluşturmaya başlayabilirsiniz.
Bu makalede, Node JS ile GraphQL API web servisinin nasıl yazılacağını adım adım açıkladık. Umarım bu makale size faydalı olmuştur ve GraphQL'i daha iyi anlamanıza yardımcı olmuştur. İyi kodlamalar!