Une introduction à l'API WordPress REST
Publié: 2022-10-19En décembre 2016, avec la sortie de WordPress 4.7, une étape longuement débattue a été franchie : l'API WordPress REST a été officiellement incluse dans WordPress Core.
Bien que l'API REST ait existé en tant que plug-in avant la fusion officielle avec le noyau, son inclusion ultérieure a suscité de nombreux débats, des arguments étant avancés à la fois pour son inclusion et pour la nécessité de tests supplémentaires.
En fin de compte, l'API REST a été fusionnée avec Core et alimente désormais l'éditeur de blocs ainsi que de nombreuses intégrations et interfaces tierces avec des sites WordPress sur le Web.
Cependant, pour de nombreux utilisateurs de WordPress, c'était la première fois qu'ils entendaient parler de l'API REST de quelque sorte que ce soit, sans parler d'une API si étroitement intégrée à WordPress.
Donc, dans cet article, nous allons voir ce qu'est une API REST, comment l'API REST WordPress est unique, et quelques exemples de son fonctionnement et certains des types de technologies qui sont activés maintenant qu'il est inclus dans WordPress. Cœur.
Qu'est-ce qu'une API REST ?
Le terme API REST est en fait deux acronymes en un et les deux sont importants pour comprendre comment fonctionne l'API REST WordPress et ce qu'elle fait.
Qu'est-ce que le REPOS ?
La première partie, REST, signifie REpresentational State Transfer. Pour le dire aussi simplement que possible, il s'agit d'une spécification qui définit comment deux ressources distinctes sur le Web doivent communiquer entre elles. Ces deux interfaces peuvent être deux sites Web différents, un serveur Web, une application mobile et bien plus encore.
Un service qui suit cette spécification est souvent appelé service RESTful et fonctionne pour garantir que le client qui demande des informations n'a rien à savoir sur l'état du serveur et sur la façon dont le client et le serveur peuvent être plus modulaires et séparés qu'avec d'autres méthodes de transport de données sur Internet.
Essentiellement, si un développeur sait qu'il interagit avec un service RESTful, il peut faire certaines hypothèses sur la façon dont ses requêtes seront formatées et sur le type de données qu'il recevra en retour, ce qui est très utile lors du développement de technologies interconnectées.
Si vous souhaitez approfondir exactement ce qui constitue un service RESTful et comment ces types de demandes sont effectués, je vous recommande vivement de consulter l'article de Codecademy intitulé Qu'est-ce que REST ?
Qu'est-ce qu'une API ?
API signifie Application Programming Interface et, comme son nom l'indique, fournit une interface permettant à d'autres clients et services sur le Web d'interagir avec une application particulière. Il spécifie les points de terminaison, généralement des URL, où les données peuvent être envoyées, si ces URL renvoient des données ou créent des ressources sur le serveur et si un type particulier d'authentification est requis pour accéder à ces points de terminaison.
Pour de nombreux services populaires sur le Web aujourd'hui, les API fournissent un moyen automatisé de faire ce qu'un utilisateur pourrait faire manuellement, en permettant à un script ou à un morceau de code d'effectuer la même action en présence d'un utilisateur. Par exemple, si vous utilisez Reddit et que vous écrivez le même type de commentaire sur de nombreux fils de discussion que vous parcourez, vous pouvez créer un script qui recherche Reddit pour ces types de commentaires et publie automatiquement votre réponse standard via l'API de Reddit.
En exposant leur infrastructure via une API, les utilisateurs n'ont pas à s'appuyer sur des méthodes de grattage Web fragiles pour automatiser ce type de tâches et Reddit peut suivre qui accède à leurs ressources via leur API, à quelle fréquence ils le font et contrôler pour une utilisation qui est en dehors de leurs conditions de service.
Pourquoi WordPress avait-il besoin d'une API REST ?
Si vous avez déjà fait des requêtes de type API à WordPress avant que l'API REST ne fasse partie de Core, vous connaissez peut-être le concept d'admin-ajax. C'était la façon originale de faire des requêtes comme celle-ci dans WordPress, où chaque requête était acheminée via le fichier admin-ajax.php, vérifiée pour toutes les actions spécifiques que les développeurs de plugins ou de thèmes actifs avaient enregistrées, puis utilisaient ces fonctions enregistrées pour répondre aux demandes.
Comme vous vous en doutez, cela signifiait que chaque développeur qui utilisait des requêtes de type API activait cette fonctionnalité dans le cadre de son plugin ou de son thème le faisait légèrement différemment et quiconque souhaitait interagir avec cette fonctionnalité devait se familiariser avec la façon dont chaque plugin ou thème était construit. L'API WordPress REST a été introduite afin de normaliser la façon dont ces demandes ont été faites et de fournir un ensemble beaucoup plus large de points de terminaison qui pourraient être utilisés pour interagir avec WordPress Core lui-même.
Un exemple de requête à l'API WordPress REST
Le manuel de l'API REST WordPress tient à jour une liste complète des points de terminaison pris en charge dans l'API REST WordPress prête à l'emploi. Et bien qu'il soit bon d'avoir une liste complète, cela peut être un peu écrasant. Examinons ce qui pourrait être considéré comme la fonctionnalité la plus basique de toute interaction API : la récupération de la ressource de base de l'API. Dans le cas de WordPress, cette ressource est publiée.

Tous les points de terminaison de l'API REST WordPress sont précédés du chemin d'URL wp-json
entre le domaine racine et ce que le manuel de l'API REST appelle la Base Route
. Cela signifie que si nous accédons au point de terminaison pour répertorier les publications du site et que l'URL de notre site était example.com
, nous aurions besoin de faire une demande à l'URL https://example.com/wp-json/wp/v2/posts
.
Faire une requête GET, soit en chargeant simplement cette URL dans votre navigateur Web préféré, soit en utilisant un navigateur API tel que Postman, devrait vous renvoyer une liste de publications de l'API, bien qu'elles puissent ne pas être dans un format que vous êtes utilisé pour. Si tout ce que vous voyez est une longue chaîne de texte, vous regardez un format de données connu sous le nom de JSON. Si vous accédez au point de terminaison de l'API via votre navigateur et que vous souhaitez consulter ces informations dans un format plus lisible, je vous recommande d'installer l'extension JSON Viewer. Cela détectera toute sortie dans votre navigateur qui est JSON et la formatera afin que vous puissiez la lire plus facilement. Une fois installé, vous devriez voir la sortie des données de publication de l'API REST WordPress et vous avez effectué avec succès votre première demande d'API REST !

Que peut faire d'autre l'API WordPress REST ?
En dehors de la récupération d'une liste des derniers articles sur un site WordPress, en consultant la référence Endpoint, vous verrez qu'il existe une tonne d'autres façons d'interagir avec l'API WordPress REST. Si vous êtes authentifié en tant qu'utilisateur WordPress, vous pouvez publier des articles via l'API, obtenir une liste des thèmes disponibles sur le site, afficher et modifier les paramètres ainsi que la plupart des autres fonctionnalités disponibles pour interagir manuellement via wp-admin .
Quelques exemples de l'API WordPress REST en action

L'exposition de la possibilité d'interagir avec WordPress via l'API REST a ouvert un large éventail de possibilités de sites qui pourraient désormais utiliser WordPress comme backend pour la gestion de contenu.
TechCrunch : Peu de temps après l'annonce de l'API WordPress REST, TechCrunch a annoncé qu'il avait reconstruit son site en utilisant une architecture sans tête, ce qui signifiait qu'ils utilisaient WordPress sur le backend comme système de gestion de contenu, tout en pouvant toujours utiliser une "page unique style React app » sur le frontend.
Éditeur de blocs (Gutenberg) : Peut-être que l'utilisation de l'API REST dont la plupart des gens ont bénéficié est l'éditeur de blocs WordPress. Désormais l'éditeur principal de WordPress, une grande partie de la fonctionnalité de l'éditeur de blocs est activée par le fait qu'il peut interagir avec les points de terminaison de l'API REST de WordPress sans
Toutes sortes de projets communautaires : à l'époque où l'API REST était envisagée pour la première fois pour fusionner dans un noyau, un appel public a été lancé pour demander aux gens de parler davantage de la façon dont ils utilisaient l'API REST. Les réponses étaient très variées, ce que vous pouvez attendre d'une communauté aussi grande que WordPress, mais incluaient tout, des plugins avec des interfaces plus interactives qu'il n'était auparavant possible aux personnes créant des applications mobiles pour leurs clients qui pourraient consommer du contenu WordPress.
Emballer
Même si vous n'avez aucune expérience de l'utilisation des API, vous avez probablement utilisé quelque chose à un moment donné de votre carrière qui s'appuie sur l'API WordPress REST pour fonctionner. Au fur et à mesure que les interfaces deviennent plus dynamiques et que les sites Web commencent à avoir plus d'actions qui ne nécessitent pas de chargement de page.
Maintenant que vous savez ce qu'est l'API WordPress REST, vous pensez peut-être à certaines choses que vous pouvez créer avec ! L'API REST peut certainement être un outil puissant dans votre boîte à outils pour créer des thèmes et des plugins WordPress encore meilleurs.
Si vous avez besoin d'un peu plus de précisions ou d'exemples de ce qui est possible, jetez un œil à la documentation et lancez-vous !