Projet API REST Projets
Présentation
Cette API REST est conçue pour gérer des projets, leur gestion inclut la création, la lecture, la mise à jour et la suppression (CRUD) de projets. Elle utilise la technologie JWT pour l'authentification et la validation des requêtes. Les ressources sont divisées en plusieurs sections : gestion des utilisateurs, gestion des projets, gestion des tâches et des sous-tâches.
Table des matières
- Prérequis
- Installation
- Configuration
- API Endpoints
- Schema DB
- Usage
- Screenshots
- Rate Limiting
- License
- Auteur
Prérequis
- PHP 8.5
- PostgreSQL 14
- composer
- cli
Installation
- Téléchargez le code avec Git :
git clone https://github.com/WEVCODE/projets-api.git - Allez dans le dossier du projet :
cd projets-api - Installez les dépendances avec Composer :
composer install - Configurez votre fichier
.envpour l'utilisation avec PostgreSQL - Créez la base de données :
php artisan migrate
Configuration
- Configurez votre fichier
.envpour l'utilisation avec PostgreSQL - Configurez la clé d'API secrète de JWT dans l'application
API Endpoints
Utilisateurs
POST /users/: Crée un nouvel utilisateurGET /users/: Récupère tous les utilisateursGET /users/{id}/: Récupère un utilisateur par son IDPUT /users/{id}/: Met à jour un utilisateurDELETE /users/{id}/: Supprime un utilisateur
Projets
POST /projects/: Crée un nouveau projetGET /projects/: Récupère tous les projetsGET /projects/{id}/: Récupère un projet par son IDPUT /projects/{id}/: Met à jour un projetDELETE /projects/{id}/: Supprime un projet
Tâches
POST /tasks/: Crée une nouvelle tâcheGET /tasks/: Récupère toutes les tâchesGET /tasks/{id}/: Récupère une tâche par son IDPUT /tasks/{id}/: Met à jour une tâcheDELETE /tasks/{id}/: Supprime une tâche
Sous-tâches
POST /subtasks/: Crée une nouvelle sous-tâcheGET /subtasks/: Récupère toutes les sous-tâchesGET /subtasks/{id}/: Récupère une sous-tâche par son IDPUT /subtasks/{id}/: Met à jour une sous-tâcheDELETE /subtasks/{id}/: Supprime une sous-tâche
Schema DB
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
CREATE TABLE projects (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
user_id INTEGER NOT NULL REFERENCES users(id)
);
CREATE TABLE tasks (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
project_id INTEGER NOT NULL REFERENCES projects(id)
);
CREATE TABLE subtasks (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
task_id INTEGER NOT NULL REFERENCES tasks(id)
);
Usage
- Regardez la documentation pour comprendre comment utiliser chaque endpoint
- Utilisez POSTMAN ou cURL pour envoyer des requêtes
Screenshots
(Placez vos screenshots ici)
Rate Limiting
Cette API utilse la bibliothèque limonade pour appliquer un rate limiting.
Veuillez consulter la documentation pour configurer les options.
License
Cette API est sous licence MIT.
Auteur
- WEVCODE
Contributions
Les contributions sont acceptées. Alors partagez le code !