Documentation EnigmaBase
Tout ce dont vous avez besoin pour intégrer EnigmaBase dans votre application.
Documentation
L'API EnigmaBase est une API REST JSON. Toutes les requêtes utilisent HTTPS. L'authentification se fait via une clé API (X-Api-Key) ou un token JWT selon le contexte.
URL de base
https://enigmabase-app.enigma-dev.tech
Authentification
Deux mécanismes selon l'appelant :
- Tableau de bord / console : JWT Bearer token (
Authorization: Bearer <token>) - SDK / app : Clé API projet (
X-Api-Key: <votre-clé>)
Routes principales
/sdk/auth/signup
Inscription d'un utilisateur final
/sdk/auth/login
Connexion d'un utilisateur final
/sdk/collections/:id/documents
Lister les documents d'une collection
/sdk/collections/:id/documents
Créer un document
/sdk/documents/:id
Mettre à jour un document
/sdk/documents/:id
Supprimer un document
Réponses
Toutes les réponses sont en JSON. Les erreurs retournent un objet { "error": "..." } avec le code HTTP approprié (400, 401, 403, 422, 429, 500).
Guide de démarrage
Intégrez EnigmaBase dans votre application en moins de 5 minutes.
Étape 1 — Créer un compte
Rendez-vous sur le tableau de bord et créez votre compte développeur.
Étape 2 — Créer un projet
Dans le dashboard, créez un nouveau projet. Notez votre clé API — elle sera nécessaire pour toutes vos requêtes SDK.
Étape 3 — Créer une collection
Une collection est l'équivalent d'une table. Créez votre première collection (ex : articles) depuis le dashboard.
Étape 4 — Votre première requête
Insérez un document dans votre collection :
curl -X POST https://enigmabase-app.enigma-dev.tech/sdk/collections/COLLECTION_ID/documents \
-H "X-Api-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"titre": "Mon premier article", "contenu": "Bonjour EnigmaBase !"}'
Étape 5 — Authentification utilisateurs (optionnel)
Pour gérer l'authentification des utilisateurs de votre app :
# Inscription
curl -X POST https://enigmabase-app.enigma-dev.tech/sdk/auth/signup \
-H "X-Api-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "motdepasse"}'
# Connexion
curl -X POST https://enigmabase-app.enigma-dev.tech/sdk/auth/login \
-H "X-Api-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "motdepasse"}'
Exemples de code
JavaScript / fetch
const API_KEY = 'votre-cle-api';
const BASE = 'https://enigmabase-app.enigma-dev.tech';
// Lire les documents d'une collection
async function getDocuments(collectionId) {
const res = await fetch(`${BASE}/sdk/collections/${collectionId}/documents`, {
headers: { 'X-Api-Key': API_KEY }
});
return res.json();
}
// Créer un document
async function createDocument(collectionId, data) {
const res = await fetch(`${BASE}/sdk/collections/${collectionId}/documents`, {
method: 'POST',
headers: { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
return res.json();
}
// Mettre à jour un document
async function updateDocument(documentId, data) {
const res = await fetch(`${BASE}/sdk/documents/${documentId}`, {
method: 'PATCH',
headers: { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
return res.json();
}
// Supprimer un document
async function deleteDocument(documentId) {
await fetch(`${BASE}/sdk/documents/${documentId}`, {
method: 'DELETE',
headers: { 'X-Api-Key': API_KEY }
});
}
Python / requests
import requests
API_KEY = 'votre-cle-api'
BASE = 'https://enigmabase-app.enigma-dev.tech'
HEADERS = {'X-Api-Key': API_KEY, 'Content-Type': 'application/json'}
# Lire les documents
def get_documents(collection_id):
r = requests.get(f'{BASE}/sdk/collections/{collection_id}/documents', headers=HEADERS)
return r.json()
# Créer un document
def create_document(collection_id, data):
r = requests.post(f'{BASE}/sdk/collections/{collection_id}/documents',
json=data, headers=HEADERS)
return r.json()
# Mettre à jour
def update_document(document_id, data):
r = requests.patch(f'{BASE}/sdk/documents/{document_id}',
json=data, headers=HEADERS)
return r.json()
# Supprimer
def delete_document(document_id):
requests.delete(f'{BASE}/sdk/documents/{document_id}', headers=HEADERS)
Authentification utilisateur (JS)
const API_KEY = 'votre-cle-api';
const BASE = 'https://enigmabase-app.enigma-dev.tech';
async function signup(email, password) {
const res = await fetch(`${BASE}/sdk/auth/signup`, {
method: 'POST',
headers: { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password })
});
return res.json(); // { token: '...' }
}
async function login(email, password) {
const res = await fetch(`${BASE}/sdk/auth/login`, {
method: 'POST',
headers: { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password })
});
return res.json(); // { token: '...' }
}