feat: add cache to optimize API calls

This commit is contained in:
2025-07-18 09:31:30 +04:00
parent 53460c0132
commit ef1c1ebd5e
3 changed files with 157 additions and 3 deletions
+23 -2
View File
@@ -3,6 +3,9 @@
// Charger les fonctions de sécurité
require_once __DIR__ . '/security.php';
// Charger le système de cache simple
require_once __DIR__ . '/simple-cache.php';
// Charger d'abord la configuration locale si elle existe
$config_local_file = __DIR__ . '/config.local.php';
if (file_exists($config_local_file)) {
@@ -77,13 +80,14 @@ function initCategories() {
}
/**
* Fonction utilitaire pour appeler l'API PeerTube
* Version originale pour appeler l'API PeerTube (sans cache)
* Cette fonction est maintenant utilisée en interne par callPeerTubeApi
*
* @param string $endpoint Point de terminaison de l'API
* @param array $params Paramètres optionnels pour la requête
* @return array Données retournées par l'API
*/
function callPeerTubeApi($endpoint, $params = []) {
function callPeerTubeApiOriginal($endpoint, $params = []) {
// Validation de l'URL de base PeerTube pour prévenir SSRF
if (!isValidPeerTubeUrl(PEERTUBE_URL)) {
error_log('SECURITY: Invalid PeerTube URL detected: ' . PEERTUBE_URL);
@@ -146,6 +150,23 @@ function callPeerTubeApi($endpoint, $params = []) {
return $data ?: [];
}
/**
* Fonction utilitaire pour appeler l'API PeerTube avec cache
*
* @param string $endpoint Point de terminaison de l'API
* @param array $params Paramètres optionnels pour la requête
* @return array Données retournées par l'API
*/
function callPeerTubeApi($endpoint, $params = []) {
// Utiliser la fonction cachée si disponible
if (function_exists('callPeerTubeApiCached')) {
return callPeerTubeApiCached($endpoint, $params);
}
// Fallback vers la version originale
return callPeerTubeApiOriginal($endpoint, $params);
}
/**
* Valide l'URL PeerTube pour prévenir les attaques SSRF
*