L’API REST, c’est quoi ?

Depuis 2016, WordPress intègre une fonctionnalité méconnue mais révolutionnaire : l’API REST. Cette technologie permet de connecter WordPress à d’autres outils, de rendre les données accessibles et d’étendre les possibilités d’utilisation de votre site. Dans cet article, je vais vous expliquer ce qu’est l’API REST, pourquoi elle peut être utile, comment elle est utilisée par des entreprises connues, et ce que vous pouvez en tirer, même sans compétences techniques.

Décryptage des termes techniques

Avant d’entrer dans les usages, il est important de comprendre quelques notions clés liées à l’API REST. Voici les bases :

  • Routes et points de terminaison (endpoints) : Une route est un chemin qui permet d’accéder à une ressource spécifique de votre site WordPress via l’API. Par exemple, /wp/v2/posts est un point de terminaison qui liste vos articles.
  • Requêtes : Une requête est une demande envoyée au serveur. Par exemple, lorsque vous visitez une page ou récupérez vos articles via l’API, vous envoyez une requête HTTP.
  • Réponses : Une réponse est ce que le serveur renvoie à votre requête. Dans le cas de l’API, les réponses sont généralement au format JSON, qui est facile à lire et à utiliser par des applications externes.
  • Méthodes HTTP : Ces méthodes définissent l’action à effectuer. Les plus courantes sont :
    • GET : pour récupérer des données (ex. : la liste des articles).
    • POST : pour créer de nouvelles données (ex. : ajouter un article).
    • PUT : pour modifier une donnée existante.
    • DELETE : pour supprimer une donnée.

En résumé, l’API REST agit comme une sorte de « traducteur universel » entre votre site WordPress et d’autres outils ou applications.

Pourquoi sécuriser l’API REST au lieu de la désactiver ?

L’API REST est une fonctionnalité essentielle de WordPress qui ouvre des possibilités incroyables, mais elle peut parfois soulever des inquiétudes en matière de sécurité. Cependant, désactiver complètement l’API REST n’est pas recommandé dans la plupart des cas. Voici pourquoi il est préférable de la sécuriser plutôt que de la rendre totalement inaccessible.

Les risques d’une API REST mal sécurisée

Bien que l’API REST soit un atout majeur pour WordPress, elle peut poser des problèmes de sécurité si elle est mal configurée. Voici les principaux risques :

Exposition de données sensibles :

Par défaut, l’API REST peut exposer des informations comme :

  • La liste des utilisateurs (y compris leurs identifiants, comme admin).
  • Les métadonnées des articles ou des pages, si elles contiennent des informations confidentielles.

Ces données peuvent être utilisées par des hackers pour cibler votre site avec des attaques par force brute ou des tentatives d’exploitation.

Exploitation par des bots malveillants

Des bots peuvent abuser de l’API en envoyant un grand nombre de requêtes pour ralentir votre site. Cela peut aussi entraîner une surcharge de votre serveur, impactant les performances globales.

Comment sécuriser l’API REST ?

Plutôt que de désactiver l’API, il est préférable de la sécuriser pour éviter les abus tout en conservant ses fonctionnalités indispensables. Voici quelques mesures que vous pouvez mettre en place :

Limiter l’accès aux utilisateurs non connectés

Vous pouvez restreindre l’accès à l’API REST pour les utilisateurs qui ne sont pas authentifiés sur votre site. Cela permet de protéger les données sensibles tout en laissant les fonctionnalités nécessaires aux utilisateurs connectés.

Ajoutez ce code dans le fichier functions.php de votre thème actif :

// https://developer.wordpress.org/rest-api/frequently-asked-questions/#require-authentication-for-all-requests
add_filter( 'rest_authentication_errors', function( $result ) {
    // If a previous authentication check was applied,
    // pass that result along without modification.
    if ( true === $result || is_wp_error( $result ) ) {
        return $result;
    }

    // No authentication has been performed yet.
    // Return an error if user is not logged in.
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'rest_not_logged_in',
            __( 'You are not currently logged in.' ),
            array( 'status' => 401 )
        );
    }

    // Our custom authentication check should have no effect
    // on logged-in requests
    return $result;
});

Que fait ce code ?

  • Bloque les requêtes API pour les visiteurs non connectés.
  • Retourne un message d’erreur clair pour les tentatives non autorisées.
  • Permet aux utilisateurs connectés (administrateurs, éditeurs, etc.) de continuer à utiliser l’API sans restrictions.

Masquer des points de terminaison sensibles

Si vous ne voulez pas restreindre totalement l’API pour les utilisateurs non connectés, vous pouvez masquer certains points de terminaison spécifiques, comme la liste des utilisateurs.

Voici un exemple :

// Supprime le point de terminaison des utilisateurs pour les visiteurs non connectés
add_filter('rest_endpoints', function ($endpoints) {
if (!is_user_logged_in()) {
unset($endpoints['/wp/v2/users']);
}
return $endpoints;
});

Que fait ce code ?

  • Empêche les visiteurs non authentifiés de consulter la liste des utilisateurs via l’API REST.
  • Protège vos administrateurs et éditeurs contre les tentatives d’exploitation par des hackers.

Pourquoi ne pas désactiver complètement l’API REST ?

Désactiver totalement l’API REST peut provoquer des problèmes imprévus et limiter des fonctionnalités essentielles :

  • Gutenberg et éditeurs modernes : L’éditeur de blocs Gutenberg repose sur l’API REST pour fonctionner correctement. En la désactivant, vous risquez de rendre son utilisation impossible.
  • Extensions dépendantes de l’API : De nombreuses extensions populaires, comme celles pour le SEO ou la gestion des formulaires, utilisent l’API pour stocker ou traiter des données.
  • Services externes : Si vous utilisez l’application mobile WordPress, Zapier, ou d’autres intégrations, désactiver l’API REST rompra ces connexions.
  • Headless WordPress : Si vous souhaitez un jour adopter une architecture headless pour votre site (avec une interface externe utilisant l’API pour afficher le contenu), l’API REST sera indispensable.

En conclusion, l’API REST est bien plus qu’un simple outil : c’est une passerelle qui connecte WordPress à un écosystème de services et d’applications. La désactiver revient à se priver de possibilités importantes, que ce soit pour automatiser vos tâches, exploiter des outils tiers, ou préparer votre site à des évolutions futures comme le headless WordPress.

Explorer les données publiques de votre site via l’API REST

L’API REST offre une fenêtre sur les données publiques de votre site. Vous pouvez tester ces fonctionnalités en utilisant un simple navigateur web. Voici quelques exemples :

Afficher tous les articles de votre site

Rendez-vous sur l’URL suivante :

https://charrasse.dev/wp-json/wp/v2/posts

Vous obtiendrez une liste d’articles au format JSON, avec des informations comme le titre, la date de publication et l’URL.

Filtrer les articles par catégorie ou date

Ajoutez des paramètres pour affiner les résultats. Par exemple :

Articles d’une catégorie spécifique :

https://charrasse.dev/wp-json/wp/v2/posts?category=1

Articles modifiés après une date précise :

https://charrasse.dev/wp-json/wp/v2/posts?modify_after=2023-01-01

Consulter les catégories

Accédez à toutes vos catégories via cette URL :

https://charrasse.dev/wp-json/wp/v2/categories

Afficher les pages ou les utilisateurs

Vous pouvez explorer d’autres types de contenu, comme les pages :

https://charrasse.dev/wp-json/wp/v2/pages

Ou les utilisateurs (si disponible) :

https://charrasse.dev/wp-json/wp/v2/users

L’API REST dans la vie réelle : Cas d’usage et exemples connus

L’API REST n’est pas qu’un outil technique abstrait : elle est activement utilisée par des entreprises et projets de toutes tailles pour connecter WordPress à des applications ou services. Voici quelques exemples pour illustrer ses usages concrets :

Gutenberg, l’éditeur moderne de WordPress

Si vous utilisez Gutenberg, vous exploitez déjà l’API REST sans le savoir ! Chaque action, comme ajouter un bloc ou sauvegarder un article, passe par l’API. Cela permet de modifier vos contenus en temps réel, même si plusieurs utilisateurs travaillent simultanément.

L’application mobile WordPress

Vous avez peut-être utilisé l’application WordPress pour publier un article ou approuver des commentaires ? L’application s’appuie entièrement sur l’API REST pour synchroniser vos données. Sans elle, il serait impossible de gérer son site via mobile.

WordPress.com : Une utilisation massive

La version hébergée de WordPress exploite également l’API REST pour gérer des milliers de sites avec une infrastructure partagée. Cela permet de synchroniser en temps réel les statistiques, les articles et les commentaires.

Sites de journaux ou portails d’actualités

Plusieurs grandes marques et médias, comme BBC America ou le New York Times, utilisent WordPress en mode headless. L’API REST leur permet de séparer le back-end (la gestion des contenus) du front-end (l’affichage pour les visiteurs), offrant une flexibilité incroyable pour leurs projets.

Services automatisés

Des outils comme Zapier ou Integromat utilisent l’API REST pour connecter WordPress à d’autres services. Par exemple :

  • Publier automatiquement un post sur Twitter lorsqu’un nouvel article est mis en ligne.
  • Ajouter des contacts à une liste Mailchimp après avoir soumis un formulaire sur votre site.

Ces cas montrent que l’API REST n’est pas seulement un outil pour les développeurs : elle alimente des fonctionnalités que vous utilisez peut-être déjà sans le savoir.

« Headless » : une nouvelle vision pour WordPress

L’utilisation de l’API REST ouvre la porte à une utilisation « headless » de WordPress. Mais qu’est-ce que cela signifie exactement pour vous, en tant qu’utilisateur ou gestionnaire de site ? Et comment cela peut-il transformer l’avenir de WordPress ? Décryptons ensemble.

Qu’est-ce que le mode « headless » ?

Un site WordPress classique combine le back-end (où vous gérez vos contenus via l’interface WordPress) et le front-end (ce que vos visiteurs voient lorsqu’ils naviguent sur votre site). En mode « headless », ces deux parties sont dissociées :

  • WordPress devient uniquement le back-end où vous gérez vos articles, pages, produits, etc.
  • Le front-end est alimenté par une technologie différente (comme React, Vue.js ou Angular). Cela signifie que l’affichage de votre site n’est plus géré par WordPress, mais par un framework ou une application externe qui tire les données depuis l’API REST.

Les avantages d’un site WordPress headless pour les utilisateurs

Opter pour une approche « headless » peut sembler complexe, mais elle offre des avantages concrets qui pourraient intéresser certains utilisateurs ou entreprises :

  • Performance ultra-rapide : En séparant le front-end de WordPress, vous pouvez utiliser des frameworks modernes qui chargent les pages plus rapidement. Cela améliore considérablement l’expérience utilisateur, surtout sur des sites e-commerce ou des plateformes ayant beaucoup de trafic.

  • Design totalement personnalisé : Le mode headless permet une liberté totale en matière de design. Vous n’êtes plus limité par les thèmes WordPress et pouvez construire une expérience utilisateur unique, parfaitement adaptée à vos besoins.

  • Omnicanalité : Avec un back-end WordPress headless, les mêmes contenus peuvent être diffusés sur plusieurs plateformes :

    • Un site web.
    • Une application mobile.
    • Des écrans interactifs ou bornes digitales.
    • Des assistants vocaux comme Alexa ou Google Assistant.

    Par exemple, un restaurant pourrait gérer son menu via WordPress et le diffuser simultanément sur son site, son application mobile et une borne dans le restaurant.

  • Flexibilité et évolutivité : WordPress headless permet de découpler les évolutions techniques : vous pouvez mettre à jour ou améliorer votre front-end sans toucher au back-end, et vice-versa. Cela offre une solution évolutive idéale pour les projets ambitieux.

  • Sécurité renforcée : En mode headless, le front-end n’a pas directement accès au back-end WordPress. Cela réduit la surface d’attaque et peut rendre votre site moins vulnérable aux failles de sécurité.

Utiliser WordPress headless : est-ce pour vous ?

Bien que le mode headless offre des avantages impressionnants, il n’est pas adapté à tout le monde. Si vous gérez un simple blog ou un site vitrine, un WordPress classique avec un thème bien conçu suffit largement.

En revanche, si vous envisagez :

  • Une application mobile connectée à votre site.
  • Une boutique en ligne ultra-rapide.
  • Une diffusion omnicanale de vos contenus.

Alors, le mode headless pourrait être une solution à explorer.

Conclusion

L’API REST de WordPress est une technologie puissante qui ouvre des perspectives immenses, qu’il s’agisse de connecter des services externes, d’automatiser des tâches ou d’exploiter WordPress en mode headless. Bien qu’elle soulève des questions légitimes en matière de sécurité, des mesures simples permettent de la sécuriser efficacement.

Que vous soyez un blogueur curieux ou un gestionnaire de site, explorer l’API REST peut vous permettre de tirer le meilleur de WordPress.

Besoin d’aide ou de conseils pour exploiter l’API REST de WordPress ?
Vous avez des questions, un projet spécifique ou besoin d’un accompagnement pour sécuriser ou intégrer l’API REST sur votre site WordPress ?
Je suis à votre disposition pour vous accompagner dans toutes les étapes de votre projet. Ensemble, nous pourrons exploiter pleinement le potentiel de cette fonctionnalité et adapter votre site à vos besoins.

Me contacter

Article précédent

Récupérer un accès administrateur WordPress

Perdre l’accès à un site WordPress peut être stressant, surtout si vous êtes administrateur. Découvrez des solutions fiables pour retrouver vos droits d’accès rapidement.
Lire l'article