Lo que quiero es obtener un objeto de una API con una solicitud HTTP (por ejemplo, jQuery's AJAX) a una API externa. ¿Como empiezo? Investigué sobre el Sr. Google pero no encuentro nada que me ayude.
Estoy empezando a preguntarme si esto es posible. En esta publicación, Laravel 4 realiza una solicitud de publicación desde el controlador a la url externa con datos que parece que se puede hacer. Pero no hay ningún ejemplo ni ninguna fuente donde encontrar alguna documentación.
¿Por favor, ayúdame?
Respuestas:
Basado en una respuesta de una pregunta similar aquí: https://stackoverflow.com/a/22695523/1412268
Echa un vistazo a Guzzle
fuente
Podemos usar el paquete Guzzle en Laravel, es un cliente HTTP PHP para enviar solicitudes HTTP.
Puedes instalar Guzzle a través del compositor
O puede especificar Guzzle como una dependencia en el composer.json existente de su proyecto
Código de ejemplo en laravel 5 usando Guzzle como se muestra a continuación,
fuente
// "200"
debe ser// 200
porque el valor devuelto es un entero.¿Solo desea llamar a una URL externa y usar los resultados? PHP hace esto de forma inmediata, si estamos hablando de una simple solicitud GET a algo que sirve a JSON:
Si desea hacer una solicitud posterior, es un poco más difícil, pero hay muchos ejemplos de cómo hacerlo con curl.
Entonces supongo que la pregunta es; exactamente, que es lo que quieres?
fuente
A partir de Laravel v7.X , el marco ahora viene con una API mínima envuelta alrededor del cliente Guzzle HTTP . Proporciona una manera fácil de realizar solicitudes de obtención , publicación , colocación , parche y eliminación utilizando el Cliente HTTP :
Puede administrar las respuestas utilizando el conjunto de métodos proporcionados por la
Illuminate\Http\Client\Response
instancia devuelta.Tenga en cuenta que, por supuesto, necesitará instalar Guzzle así:
Hay muchas más funciones útiles integradas y puede encontrar más información sobre este conjunto de funciones aquí: https://laravel.com/docs/7.x/http-client
Esta es definitivamente la forma más fácil de hacer llamadas API externas dentro de Laravel.
fuente
Actualizado el 21 de marzo de 2019
Agregar
GuzzleHttp
paquete usandocomposer require guzzlehttp/guzzle:~6.3.3
O puede especificar Guzzle como una dependencia en el proyecto
composer.json
Incluya la siguiente línea en la parte superior de la clase donde está llamando a la API
Agregue el siguiente código para hacer la solicitud
fuente
Definitivamente, para cualquier proyecto PHP, es posible que desee utilizar GuzzleHTTP para enviar solicitudes. Guzzle tiene muy buena documentación que puedes consultar aquí . Solo quiero decir que, probablemente desee centralizar el uso de la clase de cliente de Guzzle en cualquier componente de su proyecto Laravel (por ejemplo, un rasgo) en lugar de crear instancias de cliente en varios controladores y componentes de Laravel (como muchos artículos y las respuestas sugieren).
Creé un rasgo que puede intentar usar, que le permite enviar solicitudes desde cualquier componente de su proyecto Laravel, simplemente usándolo y llamando
makeRequest
.Tenga en cuenta que este rasgo incluso puede manejar el envío de archivos.
Si desea más detalles sobre este rasgo y algunas otras cosas para integrar este rasgo a Laravel, consulte este artículo . Además, si está interesado en este tema o necesita ayuda importante, puede tomar mi curso que lo guiará en todo el proceso.
Espero que les sirva de ayuda.
Los mejores deseos :)
fuente
Puedes usar Httpful:
Sitio web: http://phphttpclient.com/
Github: https://github.com/nategood/httpful
fuente