forked from mougnibas/archinsa
171 lines
No EOL
3.8 KiB
Markdown
171 lines
No EOL
3.8 KiB
Markdown
# 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:**
|
|
```json
|
|
{
|
|
"status": 1,
|
|
"msg": "Authentification réussie."
|
|
}
|
|
```
|
|
En cas d'erreur :
|
|
```json
|
|
{
|
|
"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:**
|
|
```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é :
|
|
```json
|
|
{
|
|
"status": 1,
|
|
"msg": "Utilisateur bien authentifié."
|
|
}
|
|
```
|
|
- Si l'utilisateur n'est pas authentifié :
|
|
```json
|
|
{
|
|
"status": 4,
|
|
"msg": "Utilisateur non 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 :
|
|
|
|
```javascript
|
|
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
|
|
```javascript
|
|
|
|
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
|
|
|
|
``` javascript
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
|
|
```
|
|
|
|
[source](https://developer.mozilla.org/fr/docs/Web/API/Fetch_API/Using_Fetch)
|
|
|
|
|
|
## récupérer des données
|
|
``` javascript
|
|
|
|
|
|
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"];
|
|
}
|
|
}
|
|
|
|
``` |