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
- 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
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}