Notre client m'avait donné une API REST à laquelle je dois appeler PHP. Mais en fait, la documentation fournie avec l'API est très limitée, donc je ne sais pas vraiment comment appeler le service.
J'ai essayé de Google, mais la seule chose qui est apparue était un Yahoo! déjà expiré tutoriel sur la façon d'appeler le service. Sans mentionner les en-têtes ou quoi que ce soit dans les informations détaillées.
Existe-t-il des informations décentes sur la façon d'appeler une API REST ou une documentation à ce sujet? Parce que même sur W3schools, ils ne décrivent que la méthode SOAP. Quelles sont les différentes options pour créer une API de repos en PHP?
la source
$data
est un tableau associatif (data [fieldname] = value) qui contient les données envoyées à la méthode api.curl_close
fonction n'est pas appelée, ce qui pourrait entraîner une consommation de mémoire supplémentaire si la fonction CallAPI est appelée à plusieurs reprises.Si vous avez une URL et que votre php la prend en charge, vous pouvez simplement appeler file_get_contents:
si $ response est JSON, utilisez json_decode pour le transformer en tableau php:
si $ response est XML, utilisez la classe simple_xml:
http://sg2.php.net/manual/en/simplexml.examples-basic.php
la source
file_get_contents
fonction échoue avec un avertissement et renvoie null. Si le corps contient un message d'erreur, vous ne pouvez pas le récupérer.Utilisez Guzzle . Il s'agit d'un "client PHP PHP qui facilite le travail avec HTTP / 1.1 et évite la consommation de services Web". Travailler avec Guzzle est beaucoup plus facile que de travailler avec cURL.
Voici un exemple tiré du site Web:
la source
CURL est la façon la plus simple de procéder. Voici un simple appel
la source
Utilisez HTTPFUL
Httpful est une bibliothèque PHP simple, chaînable et lisible destinée à rendre le langage HTTP sain d'esprit. Il permet au développeur de se concentrer sur l'interaction avec les API au lieu de parcourir les pages curl set_opt et est un client PHP REST idéal.
Httpful comprend ...
Ex.
Envoyez une demande GET. Obtenez une réponse JSON automatiquement analysée.
La bibliothèque remarque le type de contenu JSON dans la réponse et analyse automatiquement la réponse dans un objet PHP natif.
la source
$condition = $response->weather[0]->main;
moins que je fasse juste du mauvais côté PHPVous aurez besoin de savoir si l'API REST que vous appelez des supports
GET
ouPOST
, ou les deux méthodes. Le code ci-dessous est quelque chose qui fonctionne pour moi, j'appelle ma propre API de service Web, donc je sais déjà ce que l'API prend et ce qu'elle renverra. Il prend en charge les méthodesGET
etPOST
, de sorte que les informations moins sensibles entrent dans leURL (GET)
, et les informations telles que le nom d'utilisateur et le mot de passe sont soumises en tant quePOST
variables. De plus, tout passe par laHTTPS
connexion.Dans le code API, j'encode un tableau que je veux retourner au format json, puis j'utilise simplement la commande PHP
echo $my_json_variable
pour rendre cette chaîne json disponible pour le client.Donc, comme vous pouvez le voir, mon API renvoie des données json, mais vous devez savoir (ou regarder les données renvoyées pour savoir) dans quel format est la réponse de l'API.
Voici comment je me connecte à l'API du côté client:
BTW, j'ai également essayé d'utiliser la
file_get_contents()
méthode comme certains des utilisateurs ici l'ont suggéré, mais cela ne fonctionne pas bien pour moi. J'ai découvert que lacurl
méthode était plus rapide et plus fiable.la source
Il y a en fait beaucoup de clients. L'un d'eux est Pest - vérifiez cela. Et gardez à l'esprit que ces appels REST sont de simples requêtes http avec différentes méthodes: GET, POST, PUT et DELETE.
la source
Vous pouvez utiliser
file_get_contents
pour émettre n'importe quellePOST/PUT/DELETE/OPTIONS/HEAD
méthode http , en plus de laGET
méthode comme le suggère le nom de la fonction.Comment publier des données en PHP en utilisant file_get_contents?
la source
Si vous utilisez Symfony, il existe un excellent ensemble de clients de repos qui comprend même toutes les ~ 100 exceptions et les jette au lieu de renvoyer un code d'erreur + un message sans signification.
Vous devriez vraiment le vérifier: https://github.com/CircleOfNice/CiRestClientBundle
J'adore l'interface:
Fonctionne pour toutes les méthodes http.
la source
comme @Christoph Winkler l'a mentionné, il s'agit d'une classe de base pour y parvenir:
curl_helper.php
Ensuite, vous pouvez toujours inclure le fichier et l'utiliser, par exemple: any.php
la source
Si vous êtes ouvert à l'utilisation d'outils tiers, vous devriez jeter un œil à celui-ci: https://github.com/CircleOfNice/DoctrineRestDriver
Il s'agit d'une toute nouvelle façon de travailler avec les API.
Tout d'abord, vous définissez une entité qui définit la structure des données entrantes et sortantes et vous les annotez avec des sources de données:
Il est maintenant assez facile de communiquer avec l'API REST:
la source
Vous pouvez opter pour POSTMAN, une application qui facilite les API. Remplissez les champs de demande, puis il générera pour vous du code dans différentes langues. Cliquez simplement sur le code sur le côté droit et sélectionnez votre langue préférée.
la source