GraphQL, modern web uygulamaları için kullanılan bir teknolojidir ve RESTful API'lerden daha esnek ve verimlidir Bu nedenle, GraphQL kullanmak web uygulamaları geliştirirken oldukça önemlidir Mongoose ve Apollo Server kullanarak GraphQL yazılımı geliştirmek, veri modellerinin oluşturulması ve kullanıcıların veriye erişme şekillerinin öğrenilmesi açısından önemlidir
Mongoose, MongoDB için kullanılan bir nesne modelleme kütüphanesidir ve MongoDB veritabanının yönetimini ve modelleme işlemlerini kolaylaştırmak için tasarlanmıştır Apollo Server da Nodejs kütüphanesi olarak kullanılan ve GraphQL uygulamaları geliştirmek için kullanılan bir kütüphanedir Apollo Server ile birlikte, frontend tarafındaki istekleri alıp backend tarafındaki veritabanına yönlendirerek, veri sorgulama, ekleme ve güncelleme işlemleri yapmak oldukça kolaydır
Mongoose ve Apollo Server kullanarak GraphQL ile veri modelleri oluşturmak oldukça kolaydır

GraphQL, modern web uygulamalarının hızlı ve verimli bir şekilde geliştirilmesi için kullanılan bir teknolojidir. Bu teknoloji, RESTful API'lerden daha esnek ve verimlidir. Bu nedenle, GraphQL kullanmak, modern web uygulamaları geliştirirken çok önemlidir. Bu makalede, Mongoose ve Apollo Server kullanarak GraphQL yazılımı geliştirmenin önemini ve nasıl yapıldığını ele alacağız.
Mongoose, MongoDB için tasarlanmış bir nesne modelleme kütüphanesi olup, Node.js platformunda kullanılmaktadır. Bu kütüphane, MongoDB veritabanı işlemlerini basitleştirmek için kullanılmaktadır. Apollo Server ise, GraphQL uygulamaları geliştirmek için kullanılan bir Node.js kütüphanesidir. Apollo Server, açık kaynak kodlu bir projedir ve oldukça popülerdir.
Bu makale, Mongoose ve Apollo Server kullanarak GraphQL yazılımı geliştirmenin önemini vurgulayacak ve nasıl yapıldığını ayrıntılı olarak ele alacaktır. Mongoose ve Apollo Server kullanarak GraphQL ile nasıl veri modelleri oluşturulacağı ve kullanıcıların veriye nasıl erişeceği öğrenilecektir. Bu sayede, modern web uygulamaları geliştirirken daha etkili ve verimli bir şekilde çalışabileceksiniz.
Mongoose Nedir?
Mongoose, JavaScript tabanlı bir nesne veritabanı modelleme kütüphanesidir. Bu kütüphane, MongoDB veritabanına erişim kolaylığı sağlamanın yanı sıra, veritabanının yönetimini ve modelleme işlemlerini kolaylaştırmak için tasarlanmıştır. Mongoose, Node.js platformu için özel olarak geliştirilmiştir ve MongoDB veritabanını kullanır. Mongoose, nesne modellerinden oluşan bir şema yapısı üzerine inşa edilir ve bu şema yapısı, MongoDB veritabanındaki koleksiyonların yapısına benzer bir yapıya sahiptir.
Mongoose kullanımı, veritabanı işlemlerini ve sorgulama işlemlerini daha kolay hale getirir. Mongoose, şema yapısı üzerinden kayıt ekleme, kayıt silme, kayıt güncelleme ve kayıt sorgulama işlemlerini gerçekleştirebilir. Ayrıca, Mongoose, MongoDB veritabanındaki belgelerdeki tekil alanların otomatik olarak oluşturulmasını, güncellenmesini ve yönetilmesini sağlar.
Apollo Server Nedir?
Apollo Server, Node.js ortamında çalışan bir GraphQL uygulama sunucusudur. Bu kütüphane, GraphQL arayüz basit ve hızlı bir şekilde oluşturmanızı sağlar. Apollo Server aracılığıyla, frontend tarafındaki istekleri alıp backend tarafındaki veritabanına yönlendirebilirsiniz.
Apollo Server, tüm ihtiyaçlarınızı karşılayacak birçok özellik sunar. Örneğin, güvenlik tehditlerine karşı güvenliği artırabilecek koruyucu tedbirler veya performans hızlandırma teknikleri gibi özellikleri içerir.
Apollo Server ile birlikte GraphQL sorgularını ve mutasyonlarını kolayca yönetebilirsiniz. Bu sayede, veritabanına erişim ve dışa açık API'larla entegrasyon gibi konularda geliştirme sürecinde ciddi zaman kazanabilirsiniz.
Ayrıca, Apollo Server'ın GraphQL uygulamalarında yaygın olarak kullanılan birçok paketle de uyumlu olması sayesinde, işlevselliği kolayca genişletebilirsiniz.
Mongoose ve Apollo Server ile GraphQL Kullanımı
Mongoose ve Apollo Server kullanarak GraphQL ile veri modelleri oluşturmak oldukça kolaydır. Mongoose, MongoDB ile çalışmak için kullanılan bir nesne modelleme kütüphanesi olduğundan, ilk olarak MongoDB veritabanında bir şema oluşturmak gerekir. Şemalar, veritabanındaki verinin yapısını belirleyen şablonlardır. Bu şema oluşturma işlemi Mongoose ile oldukça kolaydır ve Apollo Server kullanarak bu şemaya erişebilirsiniz.
Apollo Server, GraphQL sorgularını cevaplamak için şema ve çözücüler kullanır. Apollo Server kullanarak şemaya erişip, verileri sorgulamak, ekleme ve güncelleme işlemlerini gerçekleştirmek mümkündür. Örneğin, bir kitap siparişi uygulaması yapmak istediğinizi düşünelim. Mongoose şeması kullanarak, kitaplar için bir veri modeli oluşturabilirsiniz ve Apollo Server kullanarak, bu veriye erişim sağlayabilirsiniz.
Mongoose Şema | Apollo Server Query |
---|---|
| query { kitaplar { kitapAdı kitapYazarı kitapFiyatı } } |
Yukarıdaki örnekte, Mongoose şeması kitap adı, yazarı ve fiyatını içerir. Apollo Server'da kullanılan sorgu ise kitapların adını, yazarını ve fiyatını sorgulamak için kullanılır. Bu şekilde, GraphQL ile veriye erişmek oldukça basit ve kolaydır.
Mongoose Schema Oluşturma ve Kullanımı
Mongoose, MongoDB veritabanı işlemlerini kolaylaştırmak için kullanılan bir nesne modelleme kütüphanesidir. Mongoose, MongoDB ile etkileşime geçmek için bir arayüz sağlar ve şema ve model tanımlamaya olanak tanır.
Mongoose'da bir şema, belirli bir modelin özelliklerini belirler. Bu özellikler, veri türleri, validasyon kuralları ve varsayılan değerler gibi alanlar içerebilir. Şema oluşturmak için Mongoose kütüphanesindeki Schema sınıfını kullanabilirsiniz.
Örneğin, bir meyve deposunu ele alalım. Depomuzda bulunan meyvelerin adı, rengi, ağırlığı ve fiyatı gibi özelliklerini içeren bir Mongoose şeması oluşturmak istediğimizde şu şekilde olur:
const mongoose = require('mongoose');const Schema = mongoose.Schema;const meyveSchema = new Schema({ ad: String, renk: String, agirlik: Number, fiyat: Number});module.exports = mongoose.model('Meyve', meyveSchema);
Bu örnekte, mongoose.Schema sınıfından bir örnek olarak meyveSchema oluşturduk. Daha sonra, meyve özelliklerini ve veri tiplerini tanımladık ve şemayı bir modelle ilişkilendirdik. Model adı, veritabanındaki koleksiyon adını temsil eder. Bu örnekte, Meyve modeli, MongoDB veritabanında bir meyve koleksiyonu oluşturacaktır.
Apollo Server Schema Oluşturma ve Kullanımı
Apollo Server, GraphQL uygulamaları geliştirmek için kullanılan bir Node.js kütüphanesidir. Schema, GraphQL sorgularının veri yapısını belirleyen bir yapıdır. Schema oluşturmak için Apollo Server’da şu adımlar izlenir:
İlk adım, Apollo Server ve GraphQL modüllerinin yüklenmesidir. Bunun için şu komutlar kullanılır:```npm install apollo-server graphql```
Schema’nın oluşturulacağı dosyaya geçiş yapılır ve apollo-server modülü import edilir.```const { ApolloServer, gql } = require('apollo-server');```
Schema oluşturma için, gql (`graphql-tag` paketinden alınan) işlevi kullanılır. Bu işlevle, GraphQL sorgusu olarak tanımlanacak esnek bir dize oluşturulur.
Örnek bir Schema şu şekildedir:
```const typeDefs = gql` type User { id: ID! name: String! email: String! }
type Query { getUsers: [User] getUser(id: ID!): User }
type Mutation { addUser(name: String!, email: String!): User! editUser(id: ID!, name: String!): User! }`;```
Bu örnekte, User adında bir tip oluşturulmuştur. Bu, query’de veya mutation’da kullanılmak üzere yeni bir veri yapısı tanımlar. typeDefs değişkenine tanımlanan özet veri türleri, bu tipin sahip olduğu özelliklerdir. Query ve Mutation, Apollo Server’da oluşturulan bir eylemin adını ve girdilerini belirleyen yapıdır.
Bu şekilde, Apollo Server Schema oluşturulabilir ve aynı zamanda bu schema, Apollo Server uygulamasına dahil edilir. Bu adımların sonunda, GraphQL sorguları Apollo Server üzerinden yapılabilir.
Apollo Server, karmaşık sorguları kolaylaştırır ve API’lar için güçlü bir alternatif sunar. Bu nedenle, Apollo Server Schema oluşturma, GraphQL uygulamaları geliştirirken önemlidir.
Veritabanı Sorgulama
Mongoose, MongoDB işlemlerini basitleştirmek için kullanılan bir nesne modelleme kütüphanesidir. Veritabanına erişmek için kullanılabilen Mongoose ile sorgulama yapmak oldukça kolaydır. Örneğin, veritabanındaki tüm kayıtları getirmek isterseniz, Mongoose find() yöntemini kullanabilirsiniz. Ayrıca, belirli bir kaydı getirmek için find() yöntemine bir parametre de ekleyebilirsiniz.
Veritabanı sorgulama sürecinde Mongoose kullanan birkaç örnek de şunları içerebilir: kayıt etme (insert), güncelleme (update), silme (delete) ve daha fazlası. Bu işlemler için Mongoose, belirli yöntemler sağlar. Örneğin kayıt etmek için save(), güncellemek için updateOne() gibi yöntemler kullanabilirsiniz.
Veritabanı sorgulama işlemleri karmaşık olabilir, ancak Mongoose bunları basitleştirir ve kolay kullanımı ile birlikte gelir. Hem MongoDB hem de Node.js kullanarak veritabanı sorgulama işlemleri yaparken, Mongoose kullanmanızı öneririz.
GraphQL Query ve Mutation Kullanımı
GraphQL Query kullanarak veri erişimi, sorgulama ve GraphQL Mutation işlemleri ile veri güncelleme ve silme işlemleri gerçekleştirilebilir. Query'ler ile veri almak mümkün iken, Mutation'lar verileri güncelleme, silme ya da ekleme işlemleri yapılmasına olanak sağlar.
Örneğin, bir sepet uygulamasında kullanıcı, sipariş verme işlemini gerçekleştirebilir. İlgili alanlara gerekli bilgileri girdikten sonra, bu verileri Mutation kullanarak sisteme kaydedebilir. Aynı şekilde, kullanıcının daha önceden verdiği siparişleri sorgulamak için de sorgulama işlemleri yapılabilir. Örneğin, kullanıcının ad ve soyad bilgileri verilerek, o kullanıcının daha önceden verdiği siparişler sorgulanabilir.
GraphQL'in getirdiği en büyük avantajlardan biri, birden fazla veri isteğinin tek bir API çağrısı ile gerçekleştirilebilmesidir. Yani, istediğimiz dataları tek bir GraphQL Query'si aracılığıyla alabiliyoruz. Böylece, performans sorunları ortadan kalkıyor.
Ayrıca, GraphQL Query işlemleri sırasında dönüş değeri olarak alınan veriler tam olarak istenen şekilde alınmış olur. Diğer veritabanı sistemlerinde olduğu gibi, bir Query işlemi gerçekleştirildiğinde hem ilgili datalar hem de dataların alt dataları da dönüş olarak alınmaktadır.
Sonuç olarak, GraphQL Query ve Mutation kullanarak işlem yapmak web uygulamaları geliştirme açısından oldukça önemlidir. Query işlemleri ile verilere erişmek ve sorgulama işlemleri yapmak mümkünken, Mutation işlemleri ile verileri güncelleme ya da silme işlemi yapılabilir. Bu sayede daha performanslı ve kullanıcı dostu web uygulamaları geliştirmek mümkün olur.
Query Nedir?
Query, GraphQL kullanarak bir veritabanından belirli bir bilgiyi veya bilgileri almak amacıyla kullanılan bir işlemdir. Query, REST API'lerindeki GET işlemine benzerdir ancak GraphQL'de REST'ten farklı olarak birçok veri parçasını tek bir istekle alabilirsiniz.
GraphQL sorgusuna bağlı olarak, belirli bir modeldeki verileri veya birden fazla veri modeline ilişkin bilgileri de alabilirsiniz. Query ile veritabanından aldığınız veri, belirtilen veri şemalarına uygun olacaktır. Yani, Mongoose tarafından tanımlanan şablonlar ve kurallar doğrultusunda alınacaktır. Bu sayede, alınan veriler doğru ve işlenebilir olacaktır.
Query işlemlerinde parametreler kullanılarak, filtreleme, sıralama, sayfalama ve benzeri yöntemlerle veriye erişilebilir. Örneğin, belirli bir kategoriye ait ürünleri sıralamak, sadece belirli bir fiyat aralığındaki ürünleri getirmek, belirli bir sayıda ürün getirmek gibi işlemler Query kullanarak gerçekleştirilebilir.
Mutation Nedir?
GraphQL, arka plandaki veritabanında güncelleme yapmak veya veri silmek için "Mutation" yapısını kullanmaktadır. Mutasyon, bir sorgunun yanıt olarak verileri dönüştürmek yerine, verileri değiştirmek için kullanılır. Bu sayede, veritabanını güncellemek isteyen uygulamaların gereksinimlerine uygun işlevler oluşturulabilir.
Mutation, parametreler alabilen ve geri dönüş değeri olan bir yapıdır. Bu şekilde, bir kullanıcıya ait veritabanı kayıtlarında değişiklik yapmak için gereken tüm bilgiler, Mutation yapısı içinde belirtilir. Bu, kolay okunabilir, anlaşılabilir ve yönetilebilir kod oluşturma imkanı sağlar.
Bir Mutation işlevi, tek bir işlem türünü temsil eder. Örneğin, bir ürün stok miktarını arttıran bir Mutation işlevi, yalnızca stok miktarını arttıracak olan SQL sorgusunu içerir. Bu sayede, gereksiz kod kalabalığından kaçınılır ve uygulamanın performansı arttırılır.
Mutation yapısının kullanımı, GraphQL'in sunduğu özelliklerden biridir ve GraphQL'i geleneksel API'lardan ayıran en önemli özelliklerden biridir. Veritabanı işlemlerinde GraphQL'in avantajlarından bir diğeri de, verileri başka bir tabloda depolama ihtiyacı olmadan birden fazla veri kaynağına dağıtabilme özelliğidir.