Intégration d'API dans les systèmes existants : le cas de RaspiSMS V3

Colas Mérand

08/08/2025

PHP

API

RaspiSMS

5 minutes

Intégration d'API dans les systèmes existants : le cas de RaspiSMS V3

Dans le monde du développement web, l'évolution des technologies est constante. Un cas fréquent auquel nous sommes confrontés chez Platane concerne la migration de systèmes existants vers des architectures plus modernes basées sur des API. Aujourd'hui, nous allons nous pencher sur un exemple concret : l'adaptation d'un site PHP pour communiquer avec la nouvelle version de RaspiSMS (V3), qui a introduit une API là où la version précédente n'en utilisait pas.

Le défi de la migration vers RaspiSMS V3

RaspiSMS est une solution open-source populaire pour l'envoi et la réception de SMS via un Raspberry Pi. La transition de la version antérieure vers la V3 représente un changement architectural significatif, puisque cette dernière implémente désormais une API RESTful pour toutes les interactions.

Pour les sites web qui communiquaient directement avec l'ancienne version, cette évolution nécessite une refonte de la logique d'intégration. Ce type de migration technique est un cas classique que nous rencontrons régulièrement chez Platane, et qui demande une expertise spécifique pour être mené à bien.

Les étapes clés pour adapter votre site PHP à la nouvelle API

1. Comprendre la nouvelle architecture

La première étape consiste à bien comprendre comment fonctionne la nouvelle API de RaspiSMS V3. Cela implique :

  • L'étude de la documentation de l'API
  • L'identification des endpoints disponibles
  • La compréhension des méthodes d'authentification
  • L'analyse des formats de données attendus

2. Mettre en place les requêtes API en PHP

Pour communiquer avec l'API de RaspiSMS V3 depuis votre application PHP, plusieurs options s'offrent à vous :

// Exemple avec cURL
function sendSmsViaRaspiSmsApi($message, $recipient, $apiKey) {
    $url = 'https://votre-instance-raspisms.com/api/v3/sms';
    $data = [
        'message' => $message,
        'recipient' => $recipient
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

Alternativement, vous pouvez utiliser des bibliothèques comme Guzzle qui simplifient considérablement les requêtes HTTP :

// Exemple avec Guzzle
use GuzzleHttp\Client;

$client = new Client();
$response = $client->post('https://votre-instance-raspisms.com/api/v3/sms', [
    'headers' => [
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $apiKey
    ],
    'json' => [
        'message' => $message,
        'recipient' => $recipient
    ]
]);

3. Gérer les réponses et les erreurs

Une bonne intégration d'API nécessite une gestion robuste des réponses et des erreurs :

try {
    $response = $client->post('https://votre-instance-raspisms.com/api/v3/sms', [
        // Configuration de la requête
    ]);
    
    $statusCode = $response->getStatusCode();
    $data = json_decode($response->getBody(), true);
    
    if ($statusCode >= 200 && $statusCode < 300) {
        // Traitement en cas de succès
    } else {
        // Gestion des erreurs avec code de statut
    }
} catch (\Exception $e) {
    // Gestion des exceptions (timeout, problème de connexion, etc.)
    error_log('Erreur lors de la communication avec RaspiSMS: ' . $e->getMessage());
}

4. Mettre en place une couche d'abstraction

Pour faciliter la maintenance future, nous recommandons toujours de créer une couche d'abstraction qui encapsule toutes les interactions avec l'API :

class RaspiSmsService {
    private $client;
    private $apiKey;
    private $baseUrl;
    
    public function __construct($baseUrl, $apiKey) {
        $this->baseUrl = $baseUrl;
        $this->apiKey = $apiKey;
        $this->client = new Client();
    }
    
    public function sendSms($message, $recipient) {
        // Implémentation
    }
    
    public function getSmsStatus($smsId) {
        // Implémentation
    }
    
    // Autres méthodes selon les besoins
}

Cette approche permet d'isoler la logique d'API et de faciliter les évolutions futures.

Bonnes pratiques pour une migration réussie

Lors de nos différents projets d'intégration d'API, notamment pour des clients comme Dealt où nous avons développé une marketplace entièrement basée sur des API, nous avons identifié plusieurs bonnes pratiques :

  1. Planifier une migration progressive : Ne pas tout migrer d'un coup, mais procéder par étapes pour minimiser les risques.

  2. Mettre en place des tests automatisés : Créer des tests qui valident le bon fonctionnement de l'intégration avec l'API.

  3. Prévoir une période de fonctionnement en parallèle : Si possible, maintenir l'ancien système en parallèle pendant la transition.

  4. Documenter l'intégration : Créer une documentation claire de la nouvelle architecture pour faciliter la maintenance future.

  5. Monitorer les performances : Mettre en place des outils de surveillance pour s'assurer que l'intégration avec l'API fonctionne correctement en production.

Cas d'étude : notre expérience avec des projets similaires

Chez Platane, nous avons accompagné plusieurs clients dans des migrations techniques similaires. Par exemple, pour Dealt, nous avons développé une marketplace de jobbing entièrement basée sur des API, utilisant React, TypeScript, Node.js et PostgreSQL. Cette expérience nous a permis de maîtriser les subtilités des architectures orientées API et d'optimiser les performances des communications entre systèmes.

De même, pour notre plateforme interne de gestion de contenu, nous avons mis en place une architecture moderne qui s'appuie sur des API pour automatiser de nombreux processus grâce à l'intelligence artificielle. Cette approche nous permet d'offrir des solutions évolutives et facilement maintenables.

Conclusion

La migration d'un système existant vers une architecture basée sur des API, comme dans le cas de RaspiSMS V3, représente un défi technique mais aussi une opportunité de modernisation. En suivant une méthodologie éprouvée et en appliquant les bonnes pratiques, cette transition peut se faire en douceur tout en ouvrant la voie à de nouvelles fonctionnalités et à une meilleure évolutivité.

Chez Platane, nous accompagnons régulièrement nos clients dans ce type de projets, en apportant notre expertise technique et notre expérience pour garantir des migrations réussies et des systèmes performants.

Vous avez un projet similaire ou vous souhaitez moderniser votre infrastructure technique ? N'hésitez pas à nous contacter via notre formulaire de contact pour échanger sur vos besoins spécifiques. Notre équipe d'experts sera ravie de vous accompagner dans la transformation de vos systèmes, en alliant technologies de pointe et solutions sur mesure pour atteindre vos objectifs business.

Le BlogDes infos, des actus, du fun !

L'avenir de l'internet : IA, Machine Learning et développement web

L'intelligence artificielle et le Machine Learning redéfinissent l'expérience sur Internet, offrant des possibilités inédites en matière de développement web. Examinons comment ces technologies émergentes façonnent l'avenir de l'internet et transforment la création de sites web.

read the article

Extraction automatique de données PDF vers Excel : les défis de l'IA hors ligne et de la fiabilité

Comment concevoir une solution d'intelligence artificielle capable d'extraire des données de PDF complexes vers Excel, en mode hors ligne, tout en garantissant fiabilité et traçabilité des informations incertaines.
read the article
Image de couverture de l'article de blog

Agents vocaux IA pour la qualification de prospects : enjeux, architecture et bonnes pratiques

Découvrez comment concevoir et déployer un agent vocal IA performant pour automatiser la qualification de prospects via des appels sortants, avec une intégration CRM sécurisée et conforme RGPD.
read the article

Contact usHello?

Send us a message

optional

Book a meeting

Prefer to talk it over? So do we — and it's obviously no strings attached!

Call us

A question or need more information? Don't hesitate to contact us.

Logo Activateur France Num

France Num Activator

Platane has joined the France Num initiative to support small and medium-sized enterprises in their digital transformation: diagnostics, training and financial aid.

Why call on a digital expert referenced by France Num?
logo de Platane.io
2 b rue Poullain Duparc - 35000, Rennes
69 rue des Tourterelles - 86000, Saint-Benoit
+33 7 70 48 29 48
Find us on
AWS Certified
Scaleway CertifiedCertifié(e) Access42Certifié(e) Opquast

Certified web quality expertise for high-performing and accessible websites

Agréé Crédit Impôt Innovation

Innovation Tax Credit approved

FREN