O que eu quero é obter um objeto de uma API com uma solicitação HTTP (por exemplo, AJAX do jQuery) para uma API externa. Como eu começo? Eu pesquisei no Google, mas não consigo encontrar nada que ajude.
Estou começando a me perguntar se isso é possível? Neste post, o Laravel 4 faz uma solicitação de postagem do controlador para a URL externa com dados que parece que isso pode ser feito. Mas não há exemplo nem fonte de onde encontrar alguma documentação.
Por favor, me ajude?
Respostas:
Com base na resposta de uma pergunta semelhante aqui: https://stackoverflow.com/a/22695523/1412268
Dê uma olhada no Guzzle
fonte
Podemos usar o pacote Guzzle no Laravel, é um cliente HTTP PHP para enviar solicitações HTTP.
Você pode instalar o Guzzle através do compositor
Ou você pode especificar o Guzzle como uma dependência no compositor existente do seu projeto.
Exemplo de código no laravel 5 usando o Guzzle, como mostrado abaixo,
fonte
// "200"
deve ser// 200
porque o valor retornado é um número inteiro.Você só quer chamar um URL externo e usar os resultados? O PHP faz isso imediatamente, se estamos falando de uma solicitação GET simples para algo que serve JSON:
Se você deseja fazer uma solicitação de postagem, é um pouco mais difícil, mas há muitos exemplos de como fazer isso com curl.
Então eu acho que a pergunta é; o que exatamente você quer?
fonte
Actualizado 21 de março de 2019
Adicionar
GuzzleHttp
pacote usandocomposer require guzzlehttp/guzzle:~6.3.3
Ou você pode especificar o Guzzle como uma dependência nas configurações do seu projeto.
composer.json
Inclua a linha abaixo na parte superior da classe em que você está chamando a API
Adicione o código abaixo para fazer a solicitação
fonte
A partir do Laravel v7.X , a estrutura agora vem com uma API mínima envolvida no cliente HTTP Guzzle . Ele fornece uma maneira fácil de fazer solicitações de obtenção , postagem , colocação , correção e exclusão usando o Cliente HTTP :
Você pode gerenciar respostas usando o conjunto de métodos fornecidos pela
Illuminate\Http\Client\Response
instância retornada.Observe que você precisará, é claro, instalar o Guzzle da seguinte forma:
Existem recursos muito mais úteis integrados e você pode descobrir mais sobre esses conjuntos de recursos aqui: https://laravel.com/docs/7.x/http-client
Definitivamente, agora é a maneira mais fácil de fazer chamadas externas à API no Laravel.
fonte
Definitivamente, para qualquer projeto PHP, você pode usar o GuzzleHTTP para enviar solicitações. Guzzle tem uma documentação muito boa, você pode conferir aqui . Eu só quero dizer que você provavelmente deseja centralizar o uso da classe Client do Guzzle em qualquer componente do seu projeto Laravel (por exemplo, uma característica) em vez de criar instâncias do cliente em vários controladores e componentes do Laravel (como muitos artigos e as respostas sugerem).
Eu criei uma característica que você pode tentar usar, que permite enviar solicitações de qualquer componente do seu projeto Laravel, apenas usando-o e ligando para
makeRequest
.Observe que essa característica pode até lidar com o envio de arquivos.
Se você quiser obter mais detalhes sobre essa característica e outras coisas para integrar essa característica ao Laravel, consulte este artigo . Além disso, se você estiver interessado neste tópico ou precisar de ajuda importante, pode seguir meu curso, que o orienta em todo o processo.
Espero que ajude todos vocês.
Muitas felicidades :)
fonte
Você pode usar o Httpful:
Website: http://phphttpclient.com/
Github: https://github.com/nategood/httpful
fonte