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
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici
module.exports = {
apiUrl: process.env.MONCRENEAU_API_URL,
apiKey: process.env.MONCRENEAU_API_KEY,
};
React / Vite
VITE_MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
VITE_MONCRENEAU_API_KEY=votre_cle_api_ici
export const config = {
apiUrl: import.meta.env.VITE_MONCRENEAU_API_URL,
apiKey: import.meta.env.VITE_MONCRENEAU_API_KEY,
};
Spring Boot
moncreneau.api.url=https://mc-prd.duckdns.org/api/v1
moncreneau.api.key=${MONCRENEAU_API_KEY}
@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, 30);
}
}
Voir SDK Java — code source disponible, pas encore sur Maven Central.
Laravel
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici
<?php
return [
'api_url' => env('MONCRENEAU_API_URL'),
'api_key' => env('MONCRENEAU_API_KEY'),
];
Django
# moncreneau API Configuration
MONCRENEAU_API_URL = os.getenv('MONCRENEAU_API_URL')
MONCRENEAU_API_KEY = os.getenv('MONCRENEAU_API_KEY')
MONCRENEAU_API_URL=https://mc-prd.duckdns.org/api/v1
MONCRENEAU_API_KEY=votre_cle_api_ici
Configuration des SDKs
JavaScript / TypeScript
import Moncreneau from '@moncreneau/api';
const client = new Moncreneau(
process.env.MONCRENEAU_API_KEY,
{
baseUrl: process.env.MONCRENEAU_API_URL,
timeout: 30000, // 30 secondes
maxRetries: 3,
}
);
Java
import com.moncreneau.Moncreneau;
Moncreneau client = new Moncreneau(
System.getenv("MONCRENEAU_API_KEY"),
System.getenv("MONCRENEAU_API_URL"),
30 // timeout en secondes
);
PHP
use Moncreneau\Moncreneau;
$client = new Moncreneau(
$_ENV['MONCRENEAU_API_KEY'],
[
'baseUrl' => $_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
Le SDK Node.js accepte 3 options de configuration réelles : baseUrl, timeout (millisecondes), et maxRetries (nombre de tentatives automatiques sur erreur réseau) :
const client = new Moncreneau(apiKey, {
baseUrl: '{{API_BASE_URL}}',
timeout: 30000, // 30s
maxRetries: 3,
});
Il n'existe pas aujourd'hui d'option pour des timeouts différenciés par type de requête, une politique de retry personnalisée par code HTTP, ni l'ajout de headers personnalisés — si vous en avez besoin, appelez l'API directement en HTTP plutôt que via le SDK.
Bonnes pratiques
✅ À faire
- Utiliser des variables d'environnement pour toutes les configs sensibles
- Valider les variables au démarrage de l'application
- Logger les erreurs de configuration sans exposer les secrets
- Documenter les variables requises dans votre README
❌ À éviter
- Ne jamais hardcoder les clés API dans le code
- Ne jamais commiter les fichiers
.envavec des vraies clés - Ne pas exposer les clés API côté client (navigateur)
Exemples de validation
Node.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
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}