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, 30);
}
}
SDK Java pas encore publié

Voir SDK Java — code source disponible, pas encore sur Maven Central.

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​

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​

Pas encore publié — voir SDK Java
import com.moncreneau.Moncreneau;

Moncreneau client = new Moncreneau(
System.getenv("MONCRENEAU_API_KEY"),
System.getenv("MONCRENEAU_API_URL"),
30 // timeout en secondes
);

PHP​

Pas encore publié — voir SDK 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​

  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​