EnigmaBase
Retour
Développeurs

Documentation EnigmaBase

Tout ce dont vous avez besoin pour intégrer EnigmaBase dans votre application.

API Reference

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

POST /sdk/auth/signup Inscription d'un utilisateur final
POST /sdk/auth/login Connexion d'un utilisateur final
GET /sdk/collections/:id/documents Lister les documents d'une collection
POST /sdk/collections/:id/documents Créer un document
PATCH /sdk/documents/:id Mettre à jour un document
DELETE /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).

Démarrage

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"}'
Code

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: '...' }
}