Un aperçu de l'API HTTP WordPress un bref aperçu de wp_remote_get

Lorsqu'il s'agit de faire des demandes à distance dans le contexte de sites Web, d'applications Web et même de projets WordPress, le modèle que nous suivons est généralement le même:

  • Lancer une requête côté serveur
  • Traitez la réponse lorsqu'elle est récupérée, soit en la lisant, soit en interceptant l'erreur.
  • Renvoyer la réponse à l'appelant

Ce format particulier est le même que celui utilisé dans les fonctionnalités synchrones et asynchrones (ou basées sur Ajax). Le fait est que si vous construisez une application Web standard en utilisant PHP, Rails, Java, .NET ou toute autre plate-forme, ils ont chacun leur manière de le faire..

La même chose est vraie pour WordPress. Cependant, si vous travaillez avec WordPress, vous travaillez également avec PHP, ce qui signifie que vous pouvez utiliser des fonctions PHP plutôt que des API spécifiques de WordPress..

Dans cette série en quatre parties, nous allons examiner ce que signifie créer une télécommande OBTENIR demande, et dans la deuxième partie, nous allons examiner une approche pratique pour le faire.

Ensuite, dans les deux derniers articles, nous allons examiner les arguments wp_remote_get accepte ainsi que ce que vous pouvez accepter d'une réponse du serveur à la fin d'une demande. En fin de compte, nous devrions bien comprendre l’API de cette méthode et savoir comment écrire du code de qualité et de défense lors de son implémentation dans nos projets..

Mais d'abord, examinons ce que signifie même faire une demande.


Qu'est-ce qu'une demande à distance?

Simplement définie, une demande à distance est lorsqu'un serveur fait une demande à un autre serveur. Cela peut prendre plusieurs formes - parfois, il envoie des données, parfois, il suffit d'interroger pour savoir si le serveur est disponible, et parfois, il demande des données..

Dans cette série d'articles, nous allons examiner ce que signifie demande données d'un autre serveur. Mais d'abord, voici comment vous pouvez modéliser de manière conceptuelle un serveur parlant à un autre, faisant une demande, puis gérant les données:

Assez facile à comprendre, à droite?

Pour les développeurs avancés qui lisent ceci, vous savez qu'il peut y avoir quelques sujets avancés à couvrir ici - une authentification doit peut-être être nécessaire (telle que l'utilisation de clés et / ou de jetons), et vous savez que la réponse ne sera pas toujours soyez aussi précis que ce qui est défini - mais la vérité est que si vous regardez le processus d'un point de vue abstrait, c'est ce que vous finissez par voir..


Comment sont les demandes faites en PHP?

Cela varie d'une application à l'autre, mais comme mentionné précédemment dans cet article, nous nous concentrons principalement sur PHP et WordPress. Par conséquent, la manière dont les requêtes sont généralement effectuées dans PHP utilise l'une des deux fonctions suivantes:

  • fichier_get_contents
  • boucle

Les deux peuvent être utilisés pour des requêtes à distance, mais l’une est un peu plus flexible que l’autre.

fichier_get_contents

Essentiellement, fichier_get_contents accepte une chaîne - essentiellement une URL - et renverra les données demandées (ou false en cas d'échec).

C'est sans doute le moyen le plus courant utilisé par les développeurs novices pour effectuer des requêtes à distance. À vrai dire, je le faisais souvent - et je le fais toujours, en fonction des besoins de l'application Web - mais c'est un sujet pour une autre série.

Les détails sur fichier_get_contents peut être lu dans le manuel PHP. Bien que nous allons examiner la façon dont WordPress permet de faire des requêtes à distance, je vous recommande de vérifier cette API particulière juste pour être au courant de ce qu'elle offre..

boucle

cURL - souvent écrit curl - est l'abréviation de "bibliothèque d'URL client". Tout comme le nom l'indique, il s'agit d'une bibliothèque entière - par opposition à une fonction - qui fournit aux développeurs un ensemble complet de fonctionnalités permettant d'effectuer des requêtes à distance..

En plus de simplement demander des données à une URL tierce, vous pouvez définir des paramètres tels que:

  • Comment gérer les numéros d'erreur
  • Obtenir des informations sur un transfert spécifique
  • Lancer, exécuter ou fermer une session
  • Attendre une activité sur une connexion spécifique
  • … et plus

Évidemment, il y a beaucoup apprendre et beaucoup passe avec cette bibliothèque particulière.

Personnellement, si vous êtes un développeur avancé, je suis fan de l'utilisation de boucle dans le contexte des applications Web basées sur PHP pour le niveau de contrôle robuste qu'il offre.

Si vous n'êtes pas familier avec cette bibliothèque, je vous recommande fortement de la lire dans le manuel PHP.


Comment sont les demandes faites dans WordPress?

Bien sûr, comme mentionné tout au long de l'article, fichier_get_contents et boucle sont importants à connaître en PHP et sont souvent utilisés dans le cadre de projets WordPress; cependant, il est une fonction à utiliser dans WordPress.

N'oubliez pas que, tout comme nous avons examiné les normes de codage WordPress pour comprendre comment rédiger au mieux le code WordPress, nous devons également examiner les API disponibles pour nous assurer que nous procédons de la manière recommandée par WordPress..

Alors quand il s'agit de faire OBTENIR demandes pour WordPress, la fonction dont nous disposons est wp_remote_get.

La fonction accepte deux arguments:

  • L'URL à laquelle la demande est faite
  • Le tableau d'arguments à envoyer avec la requête

La gamme d'arguments dépasse un peu le cadre de cet article particulier; cependant, l'article du Codex associé fournit une lecture rapide pour savoir exactement ce que nous pouvons envoyer avec notre demande.

Quelques exemples incluent:

  • Combien de temps avant de sortir
  • La version du protocole HTTP à utiliser
  • En-têtes
  • Biscuits
  • … et plus

Enfin, la fonction demandera tout un tableau de données une fois la réponse envoyée. Par exemple:

  • Les en-têtes du serveur sur lequel la demande a été faite
  • Le type de contenu de la réponse
  • La réponse réelle
  • … et plus.

Nous parlerons plus de la réponse dans le troisième article de cette série.

Évidemment, la fonction est assez facile à comprendre, mais elle est vraiment puissante. Pour ceux qui sont curieux, une partie de l'API HTTP WordPress (à laquelle cette fonction appartient) utilise la bibliothèque cURL en interne..


Faisons une demande

Cela dit, lancer une demande avec wp_remote_get c'est vraiment facile. En fait, nous allons le faire dans le prochain article de la série.

Plus précisément, nous allons voir à quel point il est facile de communiquer avec Twitter, de recevoir des données, puis de les afficher dans le navigateur. La bonne chose est que nous n'aurons même pas besoin d'utiliser une authentification OAuth ou d'autres bibliothèques.

Nous allons utiliser wp_remote_get, traiter la réponse de manière appropriée, puis afficher les informations à l'écran.