Exemple : un backend Node.js / Express pour sécuriser sa clé Mistral
Structure du projet
mon-backend/
├── .env
├── .gitignore
├── server.js
└── package.json
Installation
bash
npm init -y
npm install express dotenv node-fetch
```
**Le fichier `.env`**
La clé API est stockée ici, jamais dans le code :
```
MISTRAL_API_KEY=votre_clé_ici
```
**Le fichier `.gitignore`**
Ce fichier garantit que la clé ne sera jamais déposée sur GitHub :
```
.env
node_modules
Le fichier server.js
javascript
import 'dotenv/config';
import express from 'express';
const app = express();
app.use(express.json());
app.post('/api/chat', async (req, res) => {
const { message } = req.body;
const response = await fetch('https://api.mistral.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.MISTRAL_API_KEY}`
},
body: JSON.stringify({
model: 'mistral-tiny',
messages: [{ role: 'user', content: message }]
})
});
const data = await response.json();
res.json(data);
});
app.listen(3000, () => console.log('Serveur démarré sur le port 3000'));
Appel depuis le navigateur
Le frontend n’a plus connaissance de la clé. Il communique uniquement avec le backend :
javascript
const response = await fetch('http://localhost:3000/api/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: 'Bonjour Mistral !' })
});
const data = await response.json();
console.log(data);
