Chcę uzyskać obiekt z interfejsu API z żądaniem HTTP (np. AJAX jQuery) do zewnętrznego interfejsu API. Jak mam zacząć? Poszukałem informacji o Mr Google, ale nie mogę znaleźć nic, co mogłoby mi pomóc.
Zaczynam się zastanawiać, czy to jest w ogóle możliwe? W tym poście Laravel 4 wysyła żądanie z kontrolera do zewnętrznego adresu URL z danymi , wygląda na to, że można to zrobić. Ale nie ma przykładu ani źródła, gdzie można znaleźć jakąś dokumentację.
Proszę pomóż mi?
Odpowiedzi:
Na podstawie odpowiedzi na podobne pytanie tutaj: https://stackoverflow.com/a/22695523/1412268
Spójrz na Guzzle
źródło
Możemy użyć pakietu Guzzle w Laravel, jest to klient HTTP HTTP do wysyłania żądań HTTP.
Możesz zainstalować Guzzle za pomocą narzędzia Composer
Możesz też określić Guzzle jako zależność w istniejącym pliku composer.json projektu
Przykładowy kod w laravel 5 przy użyciu Guzzle, jak pokazano poniżej,
źródło
// "200"
powinien być taki,// 200
że zwracana wartość jest liczbą całkowitą.Chcesz po prostu zadzwonić pod zewnętrzny adres URL i wykorzystać wyniki? PHP robi to po wyjęciu z pudełka, jeśli mówimy o prostym żądaniu GET do czegoś obsługującego JSON:
Jeśli chcesz wysłać prośbę o wpis, jest to trochę trudniejsze, ale jest mnóstwo przykładów, jak to zrobić za pomocą curl.
Więc myślę, że pytanie brzmi; czego dokładnie chcesz?
źródło
Zaktualizowano 21 marca 2019 r
Dodaj
GuzzleHttp
pakiet za pomocącomposer require guzzlehttp/guzzle:~6.3.3
Lub możesz określić Guzzle jako zależność w swoim projekcie
composer.json
Uwzględnij poniższy wiersz na górze klasy, w której wywołujesz interfejs API
Dodaj poniższy kod do złożenia wniosku
źródło
Począwszy od Laravel v7.X , framework jest teraz wyposażony w minimalny interfejs API zawinięty wokół klienta HTTP Guzzle . Zapewnia łatwy sposób pobierania , wysyłania , umieszczania , poprawiania i usuwania żądań za pomocą klienta HTTP :
Możesz zarządzać odpowiedziami za pomocą zestawu metod dostarczonych przez
Illuminate\Http\Client\Response
zwróconą instancję.Pamiętaj, że będziesz oczywiście musiał zainstalować Guzzle w następujący sposób:
Jest o wiele więcej wbudowanych przydatnych funkcji i możesz dowiedzieć się więcej o tym zestawie funkcji tutaj: https://laravel.com/docs/7.x/http-client
Jest to obecnie zdecydowanie najłatwiejszy sposób wykonywania zewnętrznych wywołań API w Laravel.
źródło
Ostatecznie dla każdego projektu PHP możesz chcieć użyć GuzzleHTTP do wysyłania żądań. Guzzle ma bardzo dobrą dokumentację, którą możesz sprawdzić tutaj . Chcę tylko powiedzieć, że prawdopodobnie chcesz scentralizować użycie klasy Client Guzzle w dowolnym komponencie projektu Laravel (na przykład cechę) zamiast tworzyć instancje klienta na kilku kontrolerach i komponentach Laravel (tyle artykułów i odpowiedzi sugerują).
Stworzyłem cechę, której możesz spróbować użyć, która umożliwia wysyłanie żądań z dowolnego komponentu twojego projektu Laravel, po prostu używając go i dzwoniąc do
makeRequest
.Zauważ, że ta cecha może nawet obsługiwać wysyłanie plików.
Jeśli chcesz uzyskać więcej informacji na temat tej cechy i innych rzeczy, aby zintegrować tę cechę z Laravel, przeczytaj ten artykuł . Dodatkowo, jeśli jesteś zainteresowany tym tematem lub potrzebujesz dużej pomocy, możesz wziąć udział w moim kursie, który poprowadzi Cię przez cały proces.
Mam nadzieję, że to wam wszystkim pomoże.
Wszystkiego najlepszego :)
źródło
Możesz użyć Httpful:
Strona internetowa: http://phphttpclient.com/
Github: https://github.com/nategood/httpful
źródło