{"id":3521,"date":"2024-11-10T16:15:15","date_gmt":"2024-11-10T13:15:15","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/"},"modified":"2024-11-10T16:15:15","modified_gmt":"2024-11-10T13:15:15","slug":"next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/","title":{"rendered":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma"},"content":{"rendered":"<p>Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma<\/p>\n<p>Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir.  Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.<\/p>\n<h2>Giri\u015f<\/h2>\n<p>Bir kullan\u0131c\u0131 y\u00f6netim sistemi, kullan\u0131c\u0131 kayd\u0131, oturum a\u00e7ma, parola s\u0131f\u0131rlama, kullan\u0131c\u0131 profilleri ve yetki y\u00f6netimi gibi temel i\u015flevleri i\u00e7erir. Bu sistemler, web uygulamalar\u0131nda kullan\u0131c\u0131 kimlik do\u011frulama ve yetkilendirme i\u00e7in olmazsa olmazd\u0131r.  Tam y\u0131\u011f\u0131n geli\u015ftirme, hem \u00f6n u\u00e7 hem de arka u\u00e7 geli\u015ftirmeyi kapsar.  Bu makalede, her iki taraf\u0131 da ele alarak tam bir kullan\u0131c\u0131 y\u00f6netim sistemi nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<h2>Proje Kurulumu<\/h2>\n<p>\u0130lk ad\u0131m, gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemek ve proje dizinini olu\u015fturmakt\u0131r. Bu \u00f6rnekte, &#8220;user-management&#8221; adl\u0131 bir proje dizini kullanaca\u011f\u0131z. Proje dizinini olu\u015fturduktan sonra, a\u015fa\u011f\u0131daki komutlar\u0131 kullanarak ba\u011f\u0131ml\u0131l\u0131klar\u0131 kurabiliriz:<\/p>\n<p>&#8220;`bash<br \/>\nnpm init -y<br \/>\nnpm install next prisma graphql @prisma\/client pg<br \/>\n&#8220;`<\/p>\n<p>Bu komutlar, Next.js, Prisma, GraphQL ve PostgreSQL ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 gibi temel ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleyecektir.  `prisma` paketinin kurulmas\u0131n\u0131n ard\u0131ndan, proje dizininde bir `prisma` klas\u00f6r\u00fc olu\u015fturulur.  Bu klas\u00f6r, Prisma \u015fema tan\u0131m\u0131n\u0131z\u0131 ve Prisma veri taban\u0131na ba\u011flanmak i\u00e7in gerekli yap\u0131land\u0131rmay\u0131 i\u00e7erir.<\/p>\n<h2>Prisma \u015eemas\u0131<\/h2>\n<p>Prisma, veritaban\u0131 \u015femas\u0131 tan\u0131mlama ve veriyle etkile\u015fim kurma i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Prisma \u015fema tan\u0131m\u0131n\u0131z\u0131  `prisma\/schema.prisma`  dosyas\u0131nda tan\u0131mlars\u0131n\u0131z. Bu dosyay\u0131, kullan\u0131c\u0131 verilerini saklamak i\u00e7in gerekli tablolar\u0131 olu\u015fturmak \u00fczere yap\u0131land\u0131rabilirsiniz. \u00d6rne\u011fin, bir &#8220;User&#8221; tablosu olu\u015fturabiliriz:<\/p>\n<p>&#8220;`prisma<br \/>\ngenerator client {<br \/>\n  provider = &#8220;prisma-client-js&#8221;<br \/>\n}<\/p>\n<p>datasource db {<br \/>\n  provider = &#8220;postgresql&#8221;<br \/>\n  url      = env(&#8220;DATABASE_URL&#8221;)<br \/>\n}<\/p>\n<p>model User {<br \/>\n  id        Int     @id @default(auto()) @map(&#8220;_id&#8221;)<br \/>\n  email     String   @unique<br \/>\n  password  String<br \/>\n  name      String?<br \/>\n  createdAt DateTime @default(now())<br \/>\n  updatedAt DateTime @updatedAt<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Bu \u015fema tan\u0131m\u0131nda,  `User`  modelini tan\u0131ml\u0131yoruz.  `id`  s\u00fctunu, her kullan\u0131c\u0131n\u0131n benzersiz olarak tan\u0131mlanmas\u0131 i\u00e7in otomatik olarak artan bir tamsay\u0131d\u0131r.  `email`  s\u00fctunu benzersiz olarak tan\u0131mlanm\u0131\u015ft\u0131r ve kullan\u0131c\u0131 hesaplar\u0131n\u0131 tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r.  `password`  s\u00fctunu kullan\u0131c\u0131 \u015fifresini saklar.  `name`  s\u00fctunu iste\u011fe ba\u011fl\u0131d\u0131r ve kullan\u0131c\u0131 ad\u0131 saklar.  `createdAt`  ve  `updatedAt`  s\u00fctunlar\u0131, kay\u0131tlar\u0131n olu\u015fturulma ve g\u00fcncellenme tarihlerini izlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h2>PostgreSQL Veritaban\u0131 Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Prisma, veritabanlar\u0131yla etkile\u015fim kurmak i\u00e7in farkl\u0131 sa\u011flay\u0131c\u0131lar sunar.  Bu \u00f6rnekte, PostgreSQL kullanaca\u011f\u0131z.  `DATABASE_URL`  \u00e7evre de\u011fi\u015fkenini yap\u0131land\u0131rarak PostgreSQL veritaban\u0131na ba\u011flanabilirsiniz.  Bu de\u011fi\u015fkeni,  `.env`  dosyas\u0131nda veya uygulama sunucunuzu yap\u0131land\u0131r\u0131rken ayarlayabilirsiniz.  Veritaban\u0131na ba\u011fland\u0131ktan sonra,  `prisma`  komutunu kullanarak  `User`  tablosunu olu\u015fturun:<\/p>\n<p>&#8220;`bash<br \/>\nnpx prisma generate<br \/>\n&#8220;`<\/p>\n<h2>GraphQL \u015eemas\u0131<\/h2>\n<p>GraphQL, verilerle etkile\u015fim kurmak i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir API katman\u0131 sa\u011flar.  GraphQL \u015feman\u0131z\u0131  `pages\/api\/graphql.ts`  dosyas\u0131nda tan\u0131mlayabilirsiniz.  Bu dosya, GraphQL sunucunuzu \u00e7al\u0131\u015ft\u0131rmak ve \u015fema tan\u0131m\u0131n\u0131z\u0131 tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r.  \u00d6rne\u011fin,  `User`  modelini temel alan bir  `User`  sorgu t\u00fcr\u00fc olu\u015fturabiliriz:<\/p>\n<p>&#8220;`typescript<br \/>\nimport { gql } from &#8220;graphql-request&#8221;;<\/p>\n<p>export const schema = gql`<br \/>\n  type User {<br \/>\n    id: Int!<br \/>\n    email: String!<br \/>\n    name: String<br \/>\n    createdAt: DateTime!<br \/>\n    updatedAt: DateTime!<br \/>\n  }<\/p>\n<p>  type Query {<br \/>\n    users: [User!]!<br \/>\n    user(id: Int!): User<br \/>\n  }<\/p>\n<p>  type Mutation {<br \/>\n    createUser(email: String!, password: String!, name: String): User!<br \/>\n  }<br \/>\n`;<br \/>\n&#8220;`<\/p>\n<p>Bu \u015fema tan\u0131m\u0131,  `User`  tipinin,  `id`,  `email`,  `name`,  `createdAt`  ve  `updatedAt`  s\u00fctunlar\u0131n\u0131 i\u00e7erdi\u011fini belirtir.  `Query`  t\u00fcr\u00fcndeki  `users`  ve  `user`  \u00e7\u00f6z\u00fcmleyicileri, kullan\u0131c\u0131lar\u0131n listesini veya belirli bir kullan\u0131c\u0131y\u0131 d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r.  `Mutation`  t\u00fcr\u00fcndeki  `createUser`  \u00e7\u00f6z\u00fcmleyicisi, yeni bir kullan\u0131c\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h2>GraphQL \u00c7\u00f6z\u00fcmleyicileri<\/h2>\n<p>GraphQL \u00e7\u00f6z\u00fcmleyicileri, GraphQL sorgular\u0131na yan\u0131t vermeyi sa\u011flar.  `prisma`  ve  `graphql-request`  k\u00fct\u00fcphanelerini kullanarak, veritaban\u0131yla etkile\u015fim kurmak ve GraphQL sorgular\u0131na yan\u0131t olarak verileri d\u00f6nd\u00fcrmek i\u00e7in \u00e7\u00f6z\u00fcmleyicileri yap\u0131land\u0131rabilirsiniz.  \u00d6rne\u011fin,  `users`  \u00e7\u00f6z\u00fcmleyicisi  `prisma`  k\u00fct\u00fcphanesini kullanarak t\u00fcm kullan\u0131c\u0131lar\u0131 veritaban\u0131ndan sorgular:<\/p>\n<p>&#8220;`typescript<br \/>\nimport { PrismaClient } from &#8220;@prisma\/client&#8221;;<br \/>\nimport { schema } from &#8220;.\/schema&#8221;;<\/p>\n<p>const prisma = new PrismaClient();<\/p>\n<p>const resolvers = {<br \/>\n  Query: {<br \/>\n    users: async () => {<br \/>\n      return await prisma.user.findMany();<br \/>\n    },<br \/>\n    user: async (_, args) => {<br \/>\n      return await prisma.user.findUnique({ where: { id: args.id } });<br \/>\n    },<br \/>\n  },<br \/>\n  Mutation: {<br \/>\n    createUser: async (_, args) => {<br \/>\n      return await prisma.user.create({ data: args });<br \/>\n    },<br \/>\n  },<br \/>\n};<\/p>\n<p>export default {<br \/>\n  schema,<br \/>\n  resolvers,<br \/>\n};<br \/>\n&#8220;`<\/p>\n<h2>Next.js \u00d6n U\u00e7<\/h2>\n<p>Next.js,  `getServerSideProps`  ve  `getStaticProps`  fonksiyonlar\u0131 gibi sunucu taraf\u0131 olu\u015fturma \u00f6zelliklerini sa\u011flayarak, dinamik ve performansl\u0131 web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir.  Kullan\u0131c\u0131 kayd\u0131, oturum a\u00e7ma ve kullan\u0131c\u0131 profili gibi \u00f6zellikleri sa\u011flamak i\u00e7in Next.js bile\u015fenlerini kullanabilirsiniz.  \u00d6rne\u011fin, kullan\u0131c\u0131 kayd\u0131 bile\u015feni,  `useState`  ve  `useEffect`  kancalar\u0131n\u0131 kullanarak kullan\u0131c\u0131 girdisini al\u0131p veritaban\u0131na yeni bir kullan\u0131c\u0131 kayd\u0131 g\u00f6nderebilir.<\/p>\n<h2>G\u00fcvenlik<\/h2>\n<p>Kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015ftururken, g\u00fcvenli\u011fin en \u00f6nemli \u00f6ncelik oldu\u011funu unutmamak \u00f6nemlidir.  Parolalar\u0131n g\u00fcvenli bir \u015fekilde saklanmas\u0131 i\u00e7in g\u00fc\u00e7l\u00fc bir karma algoritmas\u0131 (\u00f6rne\u011fin bcrypt) kullan\u0131n.  Kullan\u0131c\u0131 kimlik bilgilerini do\u011frulamak i\u00e7in g\u00fcvenli bir kimlik do\u011frulama mekanizmas\u0131 (\u00f6rne\u011fin JWT) uygulay\u0131n ve XSS ve SQL enjeksiyonu gibi yayg\u0131n g\u00fcvenlik a\u00e7\u0131klar\u0131na kar\u015f\u0131 koruma sa\u011flay\u0131n.  <\/p>\n<p>G\u00fcvenli\u011fi art\u0131rmak i\u00e7in  **Fatih Soysal**&#8217;\u0131n  web sitesini ziyaret edebilir, g\u00fcvenlikle ilgili makalelerini inceleyebilirsiniz: [https:\/\/fatihsoysal.com\/](https:\/\/fatihsoysal.com\/)<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecinin temellerini ele ald\u0131k.  Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in g\u00fc\u00e7l\u00fc bir se\u00e7imdir.  Bu makalede a\u00e7\u0131klanan ad\u0131mlar\u0131 izleyerek, kendi kullan\u0131c\u0131 y\u00f6netim sisteminizi geli\u015ftirmeye ba\u015flayabilirsiniz.  <\/p>\n<p>Kullan\u0131c\u0131 y\u00f6netim sisteminizde daha fazla \u00f6zellik eklemek i\u00e7in, kullan\u0131c\u0131 profilleri, yetki y\u00f6netimi,  **email**  do\u011frulama gibi ek i\u015flevsellikleri  entegre edebilirsiniz.  Ayr\u0131ca,  **API**  dok\u00fcmantasyonunu olu\u015fturarak,  **API**  kullan\u0131m\u0131n\u0131 daha anla\u015f\u0131l\u0131r ve kullan\u0131c\u0131 dostu hale getirebilirsiniz.<\/p>\n<h2>#Etiketler<\/h2>\n<p>#Next.js #GraphQL #Prisma #PostgreSQL #Kullan\u0131c\u0131Y\u00f6netimSistemi #TamY\u0131\u011f\u0131nGeli\u015ftirme #WebUygulamalar\u0131 #G\u00fcvenlik #API #JWT #bcrypt #XSS #SQLEnjeksiyonu<\/p>\n","protected":false},"excerpt":{"rendered":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma Bu makalede, Next.js 14, GraphQL,&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-3521","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>Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma<\/title>\n<meta name=\"description\" content=\"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.\" \/>\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\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-10T13:15:15+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=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma\",\"datePublished\":\"2024-11-10T13:15:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\"},\"wordCount\":1154,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\",\"name\":\"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-10T13:15:15+00:00\",\"description\":\"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi 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":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma","description":"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.","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\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma","og_description":"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.","og_url":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-10T13:15:15+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma","datePublished":"2024-11-10T13:15:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/"},"wordCount":1154,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/","name":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi Olu\u015fturma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-10T13:15:15+00:00","description":"Bu makalede, Next.js 14, GraphQL, Prisma ve PostgreSQL kullanarak tam y\u0131\u011f\u0131n bir kullan\u0131c\u0131 y\u00f6netim sistemi olu\u015fturma s\u00fcrecini ele alaca\u011f\u0131z. Bu teknoloji y\u0131\u011f\u0131n\u0131, modern ve \u00f6l\u00e7eklenebilir web uygulamalar\u0131 olu\u015fturmak i\u00e7in harika bir se\u00e7imdir. Bu makale, ba\u015ftan sona ad\u0131m ad\u0131m bir k\u0131lavuz sunarak, bu teknolojileri nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve t\u00fcm bile\u015fenleri bir araya getirmeyi g\u00f6sterecektir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-14-graphql-prisma-ve-postgresql-ile-tam-yigin-kullanici-yonetim-sistemi-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Next.js 14, GraphQL, Prisma ve PostgreSQL ile Tam Y\u0131\u011f\u0131n Kullan\u0131c\u0131 Y\u00f6netim Sistemi 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\/3521","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=3521"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3521\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=3521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=3521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=3521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}