web-dev-qa-db-fra.com

POST à un REST API sous forme wordpress

Je ne veux pas utiliser une API REST pour publier sur wordpress.

Je souhaite créer un formulaire sur une page wordpress qui enverra un POST à une API REST externe. Les utilisateurs vont mettre leurs informations, et peut-être télécharger un fichier. Lorsque la presse "soumet", je souhaite que ces informations soient envoyées à une API REST sur un serveur différent (pas WordPress).

Existe-t-il des plugins qui permettent cela? Est-ce que quelqu'un a fait ça? Bien sûr, je pourrais avoir des problèmes avec ceci: http://en.wikipedia.org/wiki/Same_Origin_policy

Il semble que je veuille faire l'inverse de ceci: http://wordpress.org/extend/plugins/json-api/ Au lieu de créer une API REST pour Wordpress, je souhaite faire que wordpress communique envoie un POST à une API REST externe _ lorsqu'un utilisateur appuie sur un bouton d'un formulaire.

2
TimO

Je ne connais pas de plug-in qui le fasse de manière générale; pour la plupart, vous devrez créer quelque chose de personnalisé pour chaque API avec laquelle vous souhaitez communiquer.

Pour vos besoins, la fonction clé sera wp_remote_post(), qui encapsule la méthode POST de la classe HTTP de WP. (Utilisez ceci au lieu de faire des requêtes cURL manuelles, car WP_Http a toutes sortes de solutions de rechange pour différents modes de transport HTTP.) Voici une belle introduction: http://yoast.com/wp-best-practice/wordpress-http- Les règles api/ Same Origin s'appliquent généralement uniquement aux navigateurs. wp_remote_post() et ses semblables sont déclenchés sur le serveur.

Envoi de données est assez facile - il suffit de mettre un tableau dans le "corps" de votre appel wp_remote_post(). La partie la plus délicate est toujours l’authentification - le serveur d’API attend-il une clé préenregistrée, ou une sorte de transfert oAuth, ou quoi. Si c'est aussi simple qu'une clé partagée, vous pouvez simplement la transmettre dans la charge 'body'.

3
Boone Gorges