
Utiliser votre clé API #
Maintenant que vous avez une clé API, découvrez comment l’utiliser de façon sécurisée dans vos applications.
Utilisation de base #
Incluez votre clé API dans l’en-tête Authorization de chaque requête :
Authorization: Bearer agl_sk_your_key_here
Implémentation par langage #
JavaScript (Node.js) #
const axios = require('axios');
const API_KEY = process.env.VOXPRIA_API_KEY;
const BASE_URL = 'https://app.voxpria.com/api/v1';
async function makeRequest() {
const response = await axios.get(`${BASE_URL}/credits`, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
});
return response.data;
}
Python #
import os
import requests
API_KEY = os.getenv('VOXPRIA_API_KEY')
BASE_URL = 'https://app.voxpria.com/api/v1'
def make_request():
response = requests.get(
f'{BASE_URL}/credits',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
)
return response.json()
PHP #
$apiKey = getenv('VOXPRIA_API_KEY');
$baseUrl = 'https://app.voxpria.com/api/v1';
$ch = curl_init("$baseUrl/credits");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiKey",
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
C# #
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("VOXPRIA_API_KEY");
var baseUrl = "https://app.voxpria.com/api/v1";
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", apiKey);
var response = await client.GetAsync($"{baseUrl}/credits");
var content = await response.Content.ReadAsStringAsync();
Liste de vérification pour la production #
- ✅ Clé API stockée dans des variables d’environnement
- ✅ Jamais codée en dur dans la source
- ✅ Clés distinctes pour chaque environnement
- ✅ Gestion adéquate des erreurs mise en place
- ✅ Limitation du débit gérée
- ✅ La journalisation n’expose pas les clés
- ✅ HTTPS appliqué
- ✅ Plan de rotation des clés en place
Gestion des erreurs #
Gérez toujours les erreurs API avec grâce :
try {
const response = await makeApiCall();
// Handle success
} catch (error) {
if (error.response) {
switch (error.response.status) {
case 401:
// Unauthorized - check API key
break;
case 403:
// Forbidden - check scopes
break;
case 429:
// Rate limited - implement backoff
break;
case 500:
// Server error - retry with backoff
break;
}
}
}
Gestion de la limitation du débit #
Mettez en place un délai exponentiel lorsque le débit est limité :
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (error.response?.status === 429) {
const delay = Math.pow(2, i) * 1000;
await new Promise(resolve => setTimeout(resolve, delay));
} else {
throw error;
}
}
}
}
Surveillance de l’utilisation #
Suivez l’utilisation de votre clé API :
- Surveillez le nombre de requêtes
- Guettez les tendances inhabituelles
- Configurez des alertes pour une utilisation élevée
- Passez en revue les journaux d’accès régulièrement
- Vérifiez la consommation de crédits
Rotation des clés #
Faites tourner les clés tous les 90 jours :
- Créez une nouvelle clé avec les mêmes portées
- Déployez la nouvelle clé en environnement de préproduction
- Testez à fond
- Déployez en production
- Surveillez pendant 24 à 48 heures
- Révoquez l’ancienne clé
- Utilisez des clés distinctes par service ou application
- Stockez les clés dans des systèmes de gestion de secrets (AWS Secrets Manager, HashiCorp Vault)
- Ne journalisez jamais les clés API complètes
- Mettez en place la signature des requêtes pour une sécurité accrue
- Surveillez les fuites de clés sur GitHub
