GraphQL API’sini Dakikalar İçinde Oluşturun
GraphQL, API’lerinizi geliştirmek için kullanabileceğiniz modern bir API sorgulama dilidir. Bu makalede, GraphQL’i nasıl kullanacağınızı ve temel bir GraphQL API’sini dakikalar içinde nasıl oluşturacağınızı göstereceğim.
GraphQL Nedir?
GraphQL, API’lerinizin nasıl yapılandırıldığını ve veriye nasıl erişileceğini tanımlayan bir sorgulama dilidir. Geleneksel REST API’lerine göre bir dizi avantaj sunar.
GraphQL’in Avantajları
GraphQL’in REST API’lerine göre aşağıdaki gibi bir dizi avantajı vardır:
- Veri Sorgulama Esnekliği: GraphQL, sadece ihtiyacınız olan verileri sorgulamanıza olanak tanır. Bu, gereksiz verilerin indirilmesini önleyerek API yanıtlarının hızını ve verimliliğini artırır.
- Tek Bir Son Nokta: GraphQL, tüm API verileri için tek bir son nokta kullanır. Bu, REST API’lerindeki birden fazla son noktayı yönetme ihtiyacını ortadan kaldırır.
- Tip Güvenliği: GraphQL, şema tanımlama yoluyla tip güvenliğini sağlar. Bu, hata olasılığını azaltır ve API’lerinizi daha sağlam hale getirir.
- Geliştirici Dostu: GraphQL, öğrenmesi ve kullanması kolay bir dildir.
GraphQL API’si Oluşturma
GraphQL API’si oluşturmak için çeşitli araçlar mevcuttur. Bu makalede, Node.js’de GraphQL API’si oluşturmak için popüler bir çerçeve olan Apollo Server’ı kullanacağız.
Gerekli Kurulumlar
Başlamadan önce, Node.js ve npm veya yarn paket yöneticisinin sisteminize kurulu olduğundan emin olun. Daha sonra aşağıdaki komutları kullanarak Apollo Server’ı ve gerekli bağımlılıkları kurabilirsiniz:
“`bash
npm init -y
npm install apollo-server graphql
“`
Schema Tanımlama
GraphQL API’sini tanımlamak için bir şema kullanırız. Şema, API’nizde mevcut olan türleri ve bunların nasıl birbirleriyle ilişkilendirildiğini tanımlar. Aşağıda basit bir örnek gösterilmiştir:
“`javascript
const { gql } = require(‘apollo-server’);
const typeDefs = gql`
type Query {
hello: String
}
`;
“`
Bu şema, Query türünü tanımlar ve hello adında bir alan içerir. hello alanı, String türünde bir değer döndürür.
Çözücü Fonksiyonları
Şema, API’nizde nasıl veri sorgulamaları yapılacağını tanımlar ancak verilerin nasıl alınacağını belirtmez. Bu, çözücü fonksiyonlar tarafından gerçekleştirilir. Çözücü fonksiyonlar, her şema alanının verilerini nasıl döndüreceğini belirtir.
“`javascript
const resolvers = {
Query: {
hello: () => ‘Merhaba Dünya!’
}
};
“`
Bu çözücü fonksiyon, hello alanının 'Merhaba Dünya!' metnini döndüreceğini tanımlar.
Apollo Server’ı Başlatma
Şema ve çözücü fonksiyonları tanımladıktan sonra Apollo Server’ı başlatabiliriz.
“`javascript
const { ApolloServer } = require(‘apollo-server’);
const server = new ApolloServer({ typeDefs, resolvers });
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
“`
Bu kod, Apollo Server’ı oluşturur, şema ve çözücü fonksiyonları yapılandırır ve sunucuyu başlatır. Sunucu başlatıldığında, API’ye erişmek için konsolda gösterilen URL’yi kullanabilirsiniz.
GraphQL API’sini Kullanma
GraphQL API’sini kullanmak için GraphQL istemcisi kullanmanız gerekir. Bir GraphQL istemcisi, GraphQL sorguları göndermek ve yanıtları almak için kullanabileceğiniz bir araçtır. Popüler GraphQL istemcileri arasında Apollo Client, GraphQL Playground ve GraphiQL bulunur.
Bir GraphQL istemcisi kullanarak, şemanızı sorgulayabilir ve API’nizden veri alabilirsiniz. Örneğin, hello alanını sorgulamak için aşağıdaki GraphQL sorgusunu kullanabilirsiniz:
“`graphql
query {
hello
}
“`
Bu sorgu, hello alanını içeren bir yanıt döndürecektir. Yanıt aşağıdaki gibi olacaktır:
“`json
{
“data”: {
“hello”: “Merhaba Dünya!”
}
}
“`
Sonuç
Bu makalede, GraphQL’in temel bilgilerini ve Node.js’de Apollo Server kullanarak bir GraphQL API’si oluşturmayı öğrendik. GraphQL, veri sorgulama için güçlü ve esnek bir yaklaşımdır ve API’lerinizi modernleştirmek için harika bir seçenektir.
GraphQL’in daha fazla özelliği ve kullanımı hakkında bilgi edinmek için [GraphQL belgelerini](https://graphql.org/learn/) ve [Apollo Server belgelerini](https://www.apollographql.com/docs/apollo-server/) inceleyebilirsiniz.
#Etiketler
#GraphQL #API #ApolloServer #Node.js #WebGeliştirme #YazılımGeliştirme #Teknoloji #FatihSoysal #fatihsoysal.com