forked from mougnibas/archinsa
3.8 KiB
3.8 KiB
API PHP
Ce document décrit le comportement de l'api utilisée par le site
Endpoints
Authentification
- Endpoint:
auth.php?auth
- Description: Authentifie l'utilisateur et initialise une session.
- Méthode HTTP: GET
- Réponse JSON:
En cas d'erreur :{ "status": 1, "msg": "Authentification réussie." }
{ "status": 0, "msg": "Erreur pendant le traitement de la requête." }
Déconnexion
- Endpoint:
auth.php?unauth
- Description: Déconnecte l'utilisateur en mettant fin à la session.
- Méthode HTTP: GET
- Réponse JSON:
{ "status": 1, "msg": "Déconnexion réussie." }
Test d'authentification
- Endpoint:
auth.php?test_auth
- Description: Vérifie si l'utilisateur est authentifié.
- Méthode HTTP: GET
- Réponse JSON:
- Si l'utilisateur est authentifié :
{ "status": 1, "msg": "Utilisateur bien authentifié." }
- Si l'utilisateur n'est pas authentifié :
{ "status": 4, "msg": "Utilisateur non authentifié." }
- Si l'utilisateur est authentifié :
Statuts de réponse
- Status 1 : Requête valide.
- Status 0 : Erreur pendant le traitement de la requête.
- Status 2 : Requête invalide.
- Status 3 : Session expirée.
- Status 4 : Utilisateur non authentifié, requête interdite.
Gestion des sessions
Le fichier session_verif.php
est inclus pour la gestion des sessions. Assurez-vous qu'il est présent et correctement configuré.
Remarque : Ce document est une documentation basique. Assurez-vous d'ajuster et d'améliorer la sécurité en fonction des besoins spécifiques de votre application.
upload de plusieurs fichiers :
async function uploadMultiple(donneesFormulaires) {
try {
const reponse = await fetch("https://example.com/api", {
method: "POST",
body: donneesFormulaires,
});
const resultat = await reponse.json();
console.log("Réussite :", resultat);
} catch (erreur) {
console.error("Erreur :", erreur);
}
}
const docs = document.querySelector('input[type="file"][multiple]');
const donneesFormulaires = new FormData();
donneesFormulaires.append("title", "documents");
for (const [i, doc] of Array.from(docs.files).entries()) {
donneesFormulaires.append(`doc_${i}`, doc);
}
uploadMultiple(donneesFormulaires);
upload de données json
async function postJSON(donnees) {
try {
const reponse = await fetch("https://example.com/profile", {
method: "POST", // ou 'PUT'
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(donnees),
});
const resultat = await reponse.json();
console.log("Réussite :", resultat);
} catch (erreur) {
console.error("Erreur :", erreur);
}
}
const donnees = { login: "Jean Biche" };
postJSON(donnees);
récupérer des documents
async function fetchImage() {
try {
const response = await fetch("flowers.jpg");
if (!response.ok) {
throw new Error("La réponse n'est pas OK");
}
const myBlob = await response.blob();
monImage.src = URL.createObjectURL(myBlob);
} catch (error) {
console.error("Un problème est survenu lors de la récupération :", error);
}
}
récupérer des données
async function test_auth(){
resp = await fetch("/annales/api.php?test_auth");
data = await resp.json();
document.getElementById("user_status").innerText = data["msg"];
}
async function unauthenticate_user(){
resp = await fetch("/annales/api.php?unauth");
data = await resp.json();
if(data.status == 1){
document.getElementById("user_status").innerText = data["msg"];
}
}