Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PublicHolidayAPI

PublicHolidayAPI est une API RESTful développée avec ASP.NET Core, conçue pour fournir une gestion centralisée des jours fériés. Elle permet d'éviter les erreurs liées à la planification sur des dates non ouvrables.

📌 Pourquoi cette API ?

Dans de nombreux systèmes (gestion des congés, planning RH, logiciels de réservation ou de facturation), il est essentiel d’éviter de programmer des événements les week-ends ou les jours fériés.
PublicHolidayAPI permet de :

  • D'accéder à une liste des jours fériés.
  • Ajouter, modifier ou supprimer des jours fériés.
  • Filtrer les jours fériés par année.
  • Intégrer facilement l’API dans une interface utilisateur.
  • Calculer les jours ouvrés entre deux dates, en excluant les samedis, dimanches et jours fériés.

⚙️ Fonctionnalités

  • CRUD des jours fériés (Holiday)
  • Base de données InMemory (prête à être remplacée)
  • Documentation Swagger
  • Authentification JWT
  • CORS configuré pour le frontend
  • Interface frontend de sélection de plages de dates :
    • Calendrier dynamique
    • Plages de dates excluant week-ends et jours fériés
  • Calcul de jours ouvrés via un endpoint dédié

🔐 Authentification

L’API propose un endpoint de login permettant d'obtenir un token JWT (valide 15 min).

Exemple d’utilisateur :

{
  "userName": "jason_admin",
  "password": "MyPass_w0rd"
}

🔑 Une fois connecté, ajoutez votre token JWT dans Swagger pour effectuer les actions sur les end-points protégées.

Endpoints

Méthode Endpoint Description Auth requise
GET /api/Holidays Récupère tous les jours fériés
GET /api/Holidays/year/{year} Jours fériés d'une année spécifique
POST /api/Holidays Ajout d’un ou plusieurs jours fériés
PUT /api/Holidays/{id} Modification d’un jour férié
PATCH /api/Holidays/{id} Modification partielle d’un jour férié
DELETE /api/Holidays/{id} Suppression d’un jour férié
POST /api/Holidays/workdays Calcule le nombre de jours ouvrés entre deux dates
POST /api/Login Connexion (renvoie un token JWT)

📊 Exemple — Calcul de jours ouvrés

Requête :

POST /api/Holidays/workdays
Content-Type: application/json

{
  "startDate": "2025-07-29",
  "endDate": "2025-08-02"
}

Réponse :

3

Si les 29, 30, 31 juillet sont des jours ouvrés et que le 1er août est un week-end ou un jour férié, alors seuls les jours ouvrés sont comptés dans le résultat.

🖥️ Frontend

Le projet inclut une interface frontend légère directement prête à l’emploi et qui permet de :

  • Tester la récupération des dates des jours fériés
  • Visualiser les jours fériés et week-ends désactivés.
  • Sélectionner une plage de dates.

📁 Voir : index.html, script.js, style.css

image

🌐 Comment utiliser l’API dans un frontend

Vous pouvez interroger l’API depuis n’importe quelle application web (HTML, JavaScript, React, Vue, etc.) en utilisant fetch ou axios.

🔓 Appels non protégés (ex. : récupération des jours fériés)

fetch("https://localhost:7057/api/Holidays")
  .then(res => res.json())
  .then(data => console.log(data));

🔐 Appels protégés (ex. : ajout de jour férié)

  1. Obtenez un token JWT via l’endpoint /api/Login :
const loginRes = await fetch("https://localhost:7057/api/Login", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    userName: "jason_admin",
    password: "MyPass_w0rd"
  })
});
const token = await loginRes.text(); // JWT string
  1. Utilisez ce token dans vos requêtes protégées :
fetch("https://localhost:7057/api/Holidays", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${token}`
  },
  body: JSON.stringify([
    { name: "Jour de repos", date: "2025-08-16" }
  ])
})
.then(res => {
  if (res.ok) console.log("Ajouté !");
  else console.warn("Échec");
});

🚀 Démarrage

  1. Cloner le repo
  2. Lancer via Visual Studio ou en ligne de commande :
dotnet run
  1. Accéder à Swagger : https://localhost:7057/swagger/index.html

  • Projet réalisé dans le cadre d'une évaluation ASP.NET Core WebAPI
  • Par : Mika MANTTARI
  • Date : Juillet 2025

About

PublicHolidayAPI est une API RESTful développée avec ASP.NET Core, conçue pour fournir une gestion centralisée des jours fériés. Elle permet d'éviter les erreurs liées à la planification sur des dates non ouvrables.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages