Skip to content

nightborn-be/graphql-server-bugs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serveur GraphQL pour Gestion d'Utilisateurs et de Posts

Ce projet est un serveur GraphQL simple qui gère une base de données en mémoire d'utilisateurs et de posts. Il permet de créer, lire, mettre à jour et supprimer des utilisateurs et des posts, ainsi que d'aimer des posts.

Installation et démarrage

  1. Clonez ce dépôt
  2. Installez les dépendances avec npm install
  3. Démarrez le serveur avec npm start
  4. Accédez à l'interface GraphQL à l'adresse http://localhost:4000/graphql

Fonctionnalités

  • Gestion complète des utilisateurs (CRUD)
  • Gestion complète des posts (CRUD)
  • Relation entre utilisateurs et posts
  • Possibilité d'aimer des posts

Structure du projet

  • src/index.js : Point d'entrée du serveur
  • src/schema.js : Définition du schéma GraphQL
  • src/resolvers.js : Implémentation des resolvers GraphQL
  • src/data.js : Base de données en mémoire et fonctions d'accès aux données

Exemples de requêtes

Récupérer tous les utilisateurs

query GetAllUsers {
  users {
    id
    username
    email
    createdAt
    posts {
      id
      title
    }
  }
}

Récupérer un utilisateur spécifique

query GetUser {
  user(id: "1") {
    id
    username
    email
    posts {
      id
      title
      content
      publishedAt
      likes
    }
  }
}

Récupérer tous les posts

query GetAllPosts {
  posts {
    id
    title
    content
    publishedAt
    likes
    author {
      id
      username
    }
  }
}

Récupérer un post spécifique

query GetPost {
  post(id: "1") {
    id
    title
    content
    publishedAt
    likes
    author {
      id
      username
      email
    }
  }
}

Exemples de mutations

Créer un utilisateur

mutation CreateUser {
  createUser(input: {
    username: "charlie",
    email: "charlie@example.com"
  }) {
    id
    username
    email
    createdAt
  }
}

Mettre à jour un utilisateur

mutation UpdateUser {
  updateUser(
    id: "1",
    input: {
      username: "alice_updated",
      email: "alice_new@example.com"
    }
  ) {
    id
    username
    email
  }
}

Supprimer un utilisateur

mutation DeleteUser {
  deleteUser(id: "3")
}

Créer un post

mutation CreatePost {
  createPost(input: {
    title: "Nouveau post",
    content: "Contenu du nouveau post",
    authorId: "1"
  }) {
    id
    title
    content
    publishedAt
    likes
    author {
      username
    }
  }
}

Mettre à jour un post

mutation UpdatePost {
  updatePost(
    id: "1",
    input: {
      title: "Titre mis à jour",
      content: "Contenu mis à jour",
      authorId: "1"
    }
  ) {
    id
    title
    content
  }
}

Supprimer un post

mutation DeletePost {
  deletePost(id: "3")
}

Aimer un post

mutation LikePost {
  likePost(id: "1") {
    id
    title
    likes
  }
}

Modèle de données

User

  • id: Identifiant unique
  • username: Nom d'utilisateur
  • email: Adresse email
  • posts: Liste des posts de l'utilisateur
  • createdAt: Date de création du compte

Post

  • id: Identifiant unique
  • title: Titre du post
  • content: Contenu du post
  • author: Utilisateur qui a créé le post
  • publishedAt: Date de publication
  • likes: Nombre de likes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors