API REST de WordPress : définition
La REST API de WordPress est une interface de programmation d’applications (API) qui permet à des applications externes de communiquer avec un site WordPress de manière standardisée en utilisant le protocole REST (Representational State Transfer).
Remarque : les API fonctionnent quel que soit le langage de programmation utilisé.
Elle a été intégrée à WordPress à partir de la version 4.7 et permet aux développeurs de récupérer, créer, mettre à jour et supprimer des données de manière programmable à partir d’un site WordPress, sans avoir besoin d’accéder directement à la base de données ou à l’interface d’administration.
Remarque : la REST API de WordPress est activée par défaut, toutes les données retournées publiquement, le sont uniquement en mode lecture.
La REST API de WordPress offre une structure bien définie pour accéder aux données du site sous forme de ressources.
Exemple d’usage : développer une application mobile iOS ou Android qui accède à la REST API de WordPress.
Exemples d’accès au sommaire de l’API qui documente toute l’API :
- https://{monsite.fr}/wp-json/wp/v2/ pour WordPress
- https://{monsite.fr}/wp-json/wc/v3/ pour WooCommerce
Chaque ressource est identifiée par un chemin d’URL (route ou endpoint en anglais) et offre une représentation JSON (le successeur du XML) des données associées.
Exemple de ressources : pages (/pages), articles (/posts), catégories (/categories), utilisateurs (/users) sans leur identifiant ou mot de passe, etc.
Pour déclarer un Custom Post Type (CPT) qui soit intégré dans la REST API de WordPress, vous devez ajouter le paramètre 'show_in_rest'
à la fonction register_post_type()
lors de l’enregistrement de votre CPT.
Ce paramètre doit être défini sur true
pour activer la prise en charge de la REST API pour ce type de contenu personnalisé.
Voici un exemple de code pour déclarer un CPT avec la prise en charge de la REST API :
function custom_post_type_example() {
$args = array(
'public' => true,
'label' => 'Exemples',
'show_in_rest' => true, // activer la prise en charge de la REST API
// ajoutez d'autres arguments de configuration selon vos besoins
);
register_post_type( 'example', $args );
}
add_action( 'init', 'custom_post_type_example' );
Par exemple, avec le CPT “example” déclaré ci-dessus, vous pourrez accéder à la liste des éléments en effectuant une requête GET à l’URL suivante : https://{monsite.fr}/wp-json/wp/v2/example
Remarque : les extensions peuvent ajouter leurs propres routes, comme c’est le cas pour WooCommerce.
Ici, la route https://{monsite.fr}/wp/v2/posts/(?P[d]+) permet d’accéder au détail d’un article dont l’identifiant est passé en paramètre.
Les développeurs peuvent interagir avec ces ressources à l’aide de méthodes HTTP standard, telles que GET, POST, PUT et DELETE, pour effectuer différentes actions sur les données.
Remarque : de nombreux filtres sont disponibles (ex. per_page et page, filter[category_name], etc) et détaillés dans la documentation officielle.
Exemple : https://{monsite.fr}/wp-json/wp/v2/posts?search={moncritere}
Remarque : pour écrire via la REST API de WordPress, il vous faudra être authentifié.
Outils de tests
Pour tester ces URL, vous pouvez utiliser votre navigateur web, éventuellement couplé à une extension de mise en forme du rendu obtenu ou bien des applications dédiées.
Conseil : l’extension JSON View pour le navigateur web Google Chrome améliorera la lisibilité du rendu.
Conseil : l’application Postman permet, elle aussi, de tester les API.