{"id":3480,"date":"2024-11-10T05:00:20","date_gmt":"2024-11-10T02:00:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/"},"modified":"2024-11-10T05:00:20","modified_gmt":"2024-11-10T02:00:20","slug":"node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/","title":{"rendered":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma"},"content":{"rendered":"<p>Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma<\/p>\n<p>Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.<\/p>\n<h2>Giri\u015f<\/h2>\n<p>Node.js, JavaScript tabanl\u0131 bir sunucu taraf\u0131 \u00e7al\u0131\u015fma zaman\u0131d\u0131r. GraphQL, API&#8217;ler i\u00e7in bir sorgu dilidir. Redis, bir bellek i\u00e7i veri deposudur. JWT, kullan\u0131c\u0131 kimlik do\u011frulamas\u0131 i\u00e7in kullan\u0131lan bir standartt\u0131r. Sequelize, Node.js uygulamalar\u0131 i\u00e7in bir ORM&#8217;dir.<\/p>\n<h2>Proje Yap\u0131s\u0131<\/h2>\n<p>Projemiz, her biri belirli bir g\u00f6revi yerine getiren birka\u00e7 farkl\u0131 katmandan olu\u015facakt\u0131r:<\/p>\n<ul>\n<li><strong>Sunucu<\/strong>: Node.js uygulamas\u0131n\u0131n temelini olu\u015fturur ve di\u011fer katmanlar\u0131 bir araya getirir.<\/li>\n<li><strong>GraphQL<\/strong>: API u\u00e7 noktalar\u0131m\u0131z\u0131 tan\u0131mlar ve sorgu \u00e7\u00f6z\u00fcmlemesini y\u00f6netir.<\/li>\n<li><strong>Veritaban\u0131<\/strong>: Verilerimizi depolamak i\u00e7in Sequelize ile PostgreSQL kullanaca\u011f\u0131z.<\/li>\n<li><strong>Redis<\/strong>: Oturum y\u00f6netimi ve \u00f6nbelle\u011fe alma i\u00e7in kullanaca\u011f\u0131z.<\/li>\n<li><strong>JWT<\/strong>: Kullan\u0131c\u0131 kimlik do\u011frulamas\u0131n\u0131 y\u00f6netmek i\u00e7in kullanaca\u011f\u0131z.<\/li>\n<\/ul>\n<h2>Kurulum<\/h2>\n<p>\u00d6ncelikle projemiz i\u00e7in gerekli olan paketleri y\u00fcklememiz gerekiyor. Bunu, terminalde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak yapabilirsiniz:<\/p>\n<p>&#8220;`bash<br \/>\nnpm install express graphql sequelize pg redis jwt-simple<br \/>\n&#8220;`<\/p>\n<p>Ard\u0131ndan, projeyi olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki dosya yap\u0131s\u0131n\u0131 kullanabilirsiniz:<\/p>\n<p>&#8220;`<br \/>\n\u2514\u2500\u2500 index.js<br \/>\n    \u2514\u2500\u2500 src<br \/>\n        \u251c\u2500\u2500 db<br \/>\n        \u2502   \u2514\u2500\u2500 models<br \/>\n        \u2502       \u2514\u2500\u2500 User.js<br \/>\n        \u251c\u2500\u2500 auth<br \/>\n        \u2502   \u2514\u2500\u2500 auth.js<br \/>\n        \u251c\u2500\u2500 resolvers<br \/>\n        \u2502   \u2514\u2500\u2500 index.js<br \/>\n        \u2514\u2500\u2500 schema<br \/>\n            \u2514\u2500\u2500 schema.js<\/p>\n<p>&#8220;`<\/p>\n<h2>Veritaban\u0131<\/h2>\n<p>Sequelize kullanarak PostgreSQL veritaban\u0131m\u0131z\u0131 olu\u015fturaca\u011f\u0131z. \u00d6ncelikle veritaban\u0131 ba\u011flant\u0131 bilgilerinizi `.env` dosyas\u0131na ekleyin:<\/p>\n<p>&#8220;`<br \/>\nDB_HOST=localhost<br \/>\nDB_NAME=your_database_name<br \/>\nDB_USER=your_database_user<br \/>\nDB_PASSWORD=your_database_password<br \/>\n&#8220;`<\/p>\n<p>Daha sonra, `src\/db\/models\/User.js` dosyas\u0131nda kullan\u0131c\u0131 modelini tan\u0131mlay\u0131n:<\/p>\n<p>&#8220;`javascript<br \/>\nconst { DataTypes } = require(&#8216;sequelize&#8217;);<br \/>\nconst sequelize = require(&#8216;..\/config\/database&#8217;);<\/p>\n<p>const User = sequelize.define(&#8216;User&#8217;, {<br \/>\n  id: {<br \/>\n    type: DataTypes.INTEGER,<br \/>\n    autoIncrement: true,<br \/>\n    primaryKey: true,<br \/>\n  },<br \/>\n  name: {<br \/>\n    type: DataTypes.STRING,<br \/>\n    allowNull: false,<br \/>\n  },<br \/>\n  email: {<br \/>\n    type: DataTypes.STRING,<br \/>\n    allowNull: false,<br \/>\n    unique: true,<br \/>\n  },<br \/>\n  password: {<br \/>\n    type: DataTypes.STRING,<br \/>\n    allowNull: false,<br \/>\n  },<br \/>\n});<\/p>\n<p>module.exports = User;<br \/>\n&#8220;`<\/p>\n<h2>GraphQL \u015eemas\u0131<\/h2>\n<p>GraphQL \u015femas\u0131, API&#8217;mizi tan\u0131mlar ve sorgu yap\u0131labilecek t\u00fcrleri ve \u00e7\u00f6z\u00fcmleri tan\u0131mlar. `src\/schema\/schema.js` dosyas\u0131nda \u015femalar\u0131m\u0131z\u0131 tan\u0131mlayal\u0131m:<\/p>\n<p>&#8220;`javascript<br \/>\nconst { GraphQLObjectType, GraphQLString, GraphQLSchema, GraphQLID, GraphQLList } = require(&#8216;graphql&#8217;);<br \/>\nconst User = require(&#8216;..\/db\/models\/User&#8217;);<\/p>\n<p>const UserType = new GraphQLObjectType({<br \/>\n  name: &#8216;User&#8217;,<br \/>\n  fields: () => ({<br \/>\n    id: { type: GraphQLID },<br \/>\n    name: { type: GraphQLString },<br \/>\n    email: { type: GraphQLString },<br \/>\n  }),<br \/>\n});<\/p>\n<p>const RootQuery = new GraphQLObjectType({<br \/>\n  name: &#8216;RootQueryType&#8217;,<br \/>\n  fields: {<br \/>\n    users: {<br \/>\n      type: new GraphQLList(UserType),<br \/>\n      resolve(parent, args) {<br \/>\n        return User.findAll();<br \/>\n      },<br \/>\n    },<br \/>\n    user: {<br \/>\n      type: UserType,<br \/>\n      args: { id: { type: GraphQLID } },<br \/>\n      resolve(parent, args) {<br \/>\n        return User.findByPk(args.id);<br \/>\n      },<br \/>\n    },<br \/>\n  },<br \/>\n});<\/p>\n<p>module.exports = new GraphQLSchema({<br \/>\n  query: RootQuery,<br \/>\n});<br \/>\n&#8220;`<\/p>\n<h2>GraphQL \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>GraphQL \u00e7\u00f6z\u00fcmleri, istekleri i\u015fler ve verileri geri d\u00f6nd\u00fcr\u00fcr. `src\/resolvers\/index.js` dosyas\u0131nda \u00e7\u00f6z\u00fcmlerimizi tan\u0131mlayal\u0131m:<\/p>\n<p>&#8220;`javascript<br \/>\nconst User = require(&#8216;..\/db\/models\/User&#8217;);<br \/>\nconst { AuthenticationError } = require(&#8216;apollo-server-express&#8217;);<br \/>\nconst jwt = require(&#8216;jsonwebtoken&#8217;);<\/p>\n<p>const resolvers = {<br \/>\n  Query: {<br \/>\n    users: async (parent, args) => {<br \/>\n      return User.findAll();<br \/>\n    },<br \/>\n    user: async (parent, args) => {<br \/>\n      return User.findByPk(args.id);<br \/>\n    },<br \/>\n  },<br \/>\n  Mutation: {<br \/>\n    createUser: async (parent, args) => {<br \/>\n      const { name, email, password } = args;<br \/>\n      try {<br \/>\n        const user = await User.create({ name, email, password });<br \/>\n        return user;<br \/>\n      } catch (error) {<br \/>\n        throw new Error(&#8216;Kullan\u0131c\u0131 olu\u015fturulamad\u0131.&#8217;);<br \/>\n      }<br \/>\n    },<br \/>\n    loginUser: async (parent, args) => {<br \/>\n      const { email, password } = args;<br \/>\n      const user = await User.findOne({ where: { email } });<br \/>\n      if (!user || !(await user.validatePassword(password))) {<br \/>\n        throw new AuthenticationError(&#8216;Ge\u00e7ersiz e-posta veya \u015fifre.&#8217;);<br \/>\n      }<br \/>\n      const token = jwt.sign({ id: user.id }, process.env.JWT_SECRET, { expiresIn: &#8216;1h&#8217; });<br \/>\n      return { token };<br \/>\n    },<br \/>\n  },<br \/>\n};<\/p>\n<p>module.exports = resolvers;<br \/>\n&#8220;`<\/p>\n<h2>Kimlik Do\u011frulama<\/h2>\n<p>JWT kullanarak kullan\u0131c\u0131 kimlik do\u011frulamas\u0131 ger\u00e7ekle\u015ftirece\u011fiz. `src\/auth\/auth.js` dosyas\u0131nda bir kimlik do\u011frulama arac\u0131 tan\u0131mlayal\u0131m:<\/p>\n<p>&#8220;`javascript<br \/>\nconst jwt = require(&#8216;jsonwebtoken&#8217;);<\/p>\n<p>const authMiddleware = (req, res, next) => {<br \/>\n  const authHeader = req.headers.authorization;<br \/>\n  if (authHeader) {<br \/>\n    const token = authHeader.split(&#8216; &#8216;)[1];<br \/>\n    jwt.verify(token, process.env.JWT_SECRET, (err, user) => {<br \/>\n      if (err) {<br \/>\n        return res.sendStatus(403);<br \/>\n      }<br \/>\n      req.user = user;<br \/>\n      next();<br \/>\n    });<br \/>\n  } else {<br \/>\n    next();<br \/>\n  }<br \/>\n};<\/p>\n<p>module.exports = authMiddleware;<br \/>\n&#8220;`<\/p>\n<h2>Redis<\/h2>\n<p>Redis&#8217;i oturumu y\u00f6netmek ve \u00f6nbelle\u011fe alma i\u00e7in kullanaca\u011f\u0131z. `index.js` dosyas\u0131nda Redis ba\u011flant\u0131s\u0131n\u0131 kurabiliriz:<\/p>\n<p>&#8220;`javascript<br \/>\nconst redis = require(&#8216;redis&#8217;);<br \/>\nconst client = redis.createClient({<br \/>\n  host: process.env.REDIS_HOST,<br \/>\n  port: process.env.REDIS_PORT,<br \/>\n});<\/p>\n<p>client.on(&#8216;error&#8217;, (err) => console.log(&#8216;Redis ba\u011flant\u0131 hatas\u0131:&#8217;, err));<br \/>\n&#8220;`<\/p>\n<h2>Sunucu<\/h2>\n<p>Son olarak, Node.js sunucumuzu `index.js` dosyas\u0131nda olu\u015ftural\u0131m:<\/p>\n<p>&#8220;`javascript<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst { ApolloServer } = require(&#8216;apollo-server-express&#8217;);<br \/>\nconst { graphqlHTTP } = require(&#8216;express-graphql&#8217;);<br \/>\nconst schema = require(&#8216;.\/src\/schema\/schema&#8217;);<br \/>\nconst resolvers = require(&#8216;.\/src\/resolvers&#8217;);<br \/>\nconst authMiddleware = require(&#8216;.\/src\/auth\/auth&#8217;);<br \/>\nconst redis = require(&#8216;redis&#8217;);<br \/>\nconst client = redis.createClient();<\/p>\n<p>const app = express();<br \/>\nconst port = process.env.PORT || 4000;<\/p>\n<p>app.use(authMiddleware);<\/p>\n<p>const server = new ApolloServer({<br \/>\n  typeDefs: schema,<br \/>\n  resolvers,<br \/>\n  context: ({ req }) => ({ req }),<br \/>\n});<\/p>\n<p>server.applyMiddleware({ app });<\/p>\n<p>app.listen(port, () =><br \/>\n  console.log(`Sunucu ${port} portunda dinleniyor. GraphQL&#8217;ye \u015fu adresten eri\u015febilirsiniz: http:\/\/localhost:${port}${server.graphqlPath}`)<br \/>\n);<br \/>\n&#8220;`<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak nas\u0131l bir ba\u015flang\u0131\u00e7 projesi olu\u015fturabilece\u011finizi g\u00f6sterdik. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini g\u00f6rd\u00fcn\u00fcz.<\/p>\n<h2>Kaynaklar<\/h2>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/\">Node.js<\/a><\/li>\n<li><a href=\"https:\/\/graphql.org\/\">GraphQL<\/a><\/li>\n<li><a href=\"https:\/\/redis.io\/\">Redis<\/a><\/li>\n<li><a href=\"https:\/\/jwt.io\/\">JWT<\/a><\/li>\n<li><a href=\"https:\/\/sequelize.org\/\">Sequelize<\/a><\/li>\n<\/ul>\n<h2>Sonu\u00e7<\/h2>\n<p>Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak olu\u015fturdu\u011funuz ba\u015flang\u0131\u00e7 projesi, size g\u00fc\u00e7l\u00fc bir temel sa\u011flayacakt\u0131r.  Bu teknolojileri kullanarak daha karma\u015f\u0131k ve \u00f6zel uygulamalar geli\u015ftirebilirsiniz. Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> web sitesini ziyaret edebilirsiniz.<\/p>\n<p>#Etiketler<br \/>\nNode.js, GraphQL, Redis, JWT, Sequelize, Ba\u015flang\u0131\u00e7 Projesi, API, Veritaban\u0131, Kimlik Do\u011frulama, \u00d6nbelle\u011fe Alma<\/p>\n","protected":false},"excerpt":{"rendered":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis,&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-3480","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-10T02:00:20+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma\",\"datePublished\":\"2024-11-10T02:00:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\"},\"wordCount\":944,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\",\"name\":\"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-10T02:00:20+00:00\",\"description\":\"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma","description":"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma","og_description":"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-10T02:00:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma","datePublished":"2024-11-10T02:00:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/"},"wordCount":944,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/","name":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-10T02:00:20+00:00","description":"Merhaba, bug\u00fcn size Node.js ile GraphQL, Redis, JWT ve Sequelize kullanarak bir ba\u015flang\u0131\u00e7 projesi nas\u0131l olu\u015fturabilece\u011finizi g\u00f6sterece\u011fim. Bu teknolojilerin bir kombinasyonunun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve verimli uygulamalar olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011freneceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/node-js-ile-graphql-redis-jwt-ve-sequelize-kullanarak-baslangic-projesi-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Node.js ile GraphQL, Redis, JWT ve Sequelize Kullanarak Ba\u015flang\u0131\u00e7 Projesi Olu\u015fturma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=3480"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3480\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=3480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=3480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=3480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}