Aller au contenu principal

Configuration

Guide complet pour configurer l'API moncreneau dans votre application.

Variables d'environnement

URL de l'API

L'API est accessible à : https://mc-prd.duckdns.org/api/v1

Pour le développement local du backend : http://localhost:8080/api/v1

Configuration recommandée

Utilisez toujours des variables d'environnement pour stocker l'URL de l'API :

Node.js / Express

.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici
config.js
module.exports = {
apiUrl: process.env.MONCRENEAU_API_URL,
apiKey: process.env.MONCRENEAU_API_KEY,
};

React / Vite

.env
VITE_MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
VITE_MONCRENEAU_API_KEY=votre_cle_api_ici
src/config.ts
export const config = {
apiUrl: import.meta.env.VITE_MONCRENEAU_API_URL,
apiKey: import.meta.env.VITE_MONCRENEAU_API_KEY,
};

Spring Boot

src/main/resources/application.properties
moncreneau.api.url=https://mc-prd.duckdns.org/api/v1
moncreneau.api.key=${MONCRENEAU_API_KEY}
MoncreneauConfig.java
@Configuration
public class MoncreneauConfig {
@Value("${moncreneau.api.url}")
private String apiUrl;

@Value("${moncreneau.api.key}")
private String apiKey;

@Bean
public Moncreneau moncreneauClient() {
return new Moncreneau(apiKey, apiUrl);
}
}

Laravel

.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici
config/moncreneau.php
<?php

return [
'api_url' => env('MONCRENEAU_API_URL'),
'api_key' => env('MONCRENEAU_API_KEY'),
];

Django

settings.py
# moncreneau API Configuration
MONCRENEAU_API_URL = os.getenv('MONCRENEAU_API_URL')
MONCRENEAU_API_KEY = os.getenv('MONCRENEAU_API_KEY')
.env
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici

Configuration des SDKs

JavaScript / TypeScript

const Moncreneau = require('@moncreneau/api');

const client = new Moncreneau(
process.env.MONCRENEAU_API_KEY,
{
baseURL: process.env.MONCRENEAU_API_URL,
timeout: 30000, // 30 secondes
}
);

Java

import com.moncreneau.Moncreneau;
import com.moncreneau.MoncreneauConfig;

MoncreneauConfig config = MoncreneauConfig.builder()
.apiKey(System.getenv("MONCRENEAU_API_KEY"))
.baseUrl(System.getenv("MONCRENEAU_API_URL"))
.timeout(30000)
.build();

Moncreneau client = new Moncreneau(config);

PHP

use Moncreneau\Moncreneau;

$client = new Moncreneau(
$_ENV['MONCRENEAU_API_KEY'],
[
'base_url' => $_ENV['MONCRENEAU_API_URL'],
'timeout' => 30,
]
);

Python

from moncreneau import Moncreneau
import os

client = Moncreneau(
api_key=os.getenv('MONCRENEAU_API_KEY'),
base_url=os.getenv('MONCRENEAU_API_URL'),
timeout=30
)

Configuration avancée

Timeouts

Configurez des timeouts appropriés pour éviter les requêtes bloquantes :

const client = new Moncreneau(apiKey, {
timeout: 30000, // 30s pour les opérations normales

// Timeouts spécifiques par type de requête (exemple avancé)
timeouts: {
connect: 5000, // 5s pour établir la connexion
read: 30000, // 30s pour lire la réponse
}
});

Retry Logic

Implémentez une logique de retry pour les erreurs temporaires :

const client = new Moncreneau(apiKey, {
retry: {
maxRetries: 3,
retryDelay: 1000, // 1 seconde
retryOn: [429, 500, 502, 503, 504], // Codes HTTP à retry
}
});

Headers personnalisés

Ajoutez des headers pour le tracking ou l'authentification supplémentaire :

const client = new Moncreneau(apiKey, {
headers: {
'X-App-Version': '1.0.0',
'X-User-ID': userId, // Pour le tracking côté serveur
}
});

Bonnes pratiques

✅ À faire

  1. Utiliser des variables d'environnement pour toutes les configs sensibles
  2. Valider les variables au démarrage de l'application
  3. Logger les erreurs de configuration sans exposer les secrets
  4. Documenter les variables requises dans votre README

❌ À éviter

  1. Ne jamais hardcoder les clés API dans le code
  2. Ne jamais commiter les fichiers .env avec des vraies clés
  3. Ne pas exposer les clés API côté client (navigateur)

Exemples de validation

Node.js

validateConfig.js
function validateConfig() {
const required = ['MONCRENEAU_API_URL', 'MONCRENEAU_API_KEY'];

const missing = required.filter(key => !process.env[key]);

if (missing.length > 0) {
throw new Error(
`Variables d'environnement manquantes: ${missing.join(', ')}\n` +
`Consultez .env.example pour la configuration`
);
}

// Vérifier que l'URL est valide
try {
new URL(process.env.MONCRENEAU_API_URL);
} catch (error) {
throw new Error(`MONCRENEAU_API_URL invalide: ${error.message}`);
}

// Vérifier le format de la clé API
const apiKey = process.env.MONCRENEAU_API_KEY;
if (!apiKey.startsWith('mk_')) {
throw new Error('MONCRENEAU_API_KEY doit commencer par mk_');
}

console.log('✓ Configuration moncreneau validée');
}

// Appeler au démarrage de l'app
validateConfig();

Spring Boot

@Component
public class MoncreneauConfigValidator implements InitializingBean {

@Value("${moncreneau.api.url}")
private String apiUrl;

@Value("${moncreneau.api.key}")
private String apiKey;

@Override
public void afterPropertiesSet() throws Exception {
Assert.hasText(apiUrl, "moncreneau.api.url est requis");
Assert.hasText(apiKey, "moncreneau.api.key est requis");

Assert.isTrue(
apiKey.startsWith("mk_"),
"moncreneau.api.key doit commencer par mk_"
);

logger.info("Configuration moncreneau validée");
}
}

Déploiement

Vercel

# Via CLI
vercel env add MONCRENEAU_API_URL
vercel env add MONCRENEAU_API_KEY

# Ou dans le dashboard Vercel: Settings → Environment Variables

Heroku

heroku config:set MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
heroku config:set MONCRENEAU_API_KEY=votre_cle_api_ici

Docker

Dockerfile
ENV MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
# docker-compose.yml
services:
app:
environment:
- MONCRENEAU_API_URL=${MONCRENEAU_API_URL}
- MONCRENEAU_API_KEY=${MONCRENEAU_API_KEY}

Prochaines étapes