Skip to content

Instantly share code, notes, and snippets.

@malkafly
Forked from igoralves1/guz.php
Created March 6, 2018 16:43
Show Gist options
  • Save malkafly/7e6ce5c6ad3890da4a1b4a6508d687ca to your computer and use it in GitHub Desktop.
Save malkafly/7e6ce5c6ad3890da4a1b4a6508d687ca to your computer and use it in GitHub Desktop.
Consuming API endpoints with Laravel 5+ AND Guzzle\Http
/*
Installation -> http://docs.guzzlephp.org/en/latest/overview.html#installation
https://www.youtube.com/watch?v=GunXVUqvO-s
https://www.udemy.com/http-clients-with-laravel-use-and-consume-services-and-apis/
add Guzzle as a dependency using the composer.phar CLI:
php composer.phar require guzzlehttp/guzzle:~6.0
After installing, you need to require Composer's autoloader:
require 'vendor/autoload.php';
http://guzzle3.readthedocs.io/http-client/response.html#json-responses
http://docs.guzzlephp.org/en/latest/quickstart.html
*/
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use GuzzleHttp\Client;
class ProfessionalController extends Controller
{
public function home()
{
return "professional public home";
}
public function getstate()
{
$client = new Client(['base_uri' => 'http://drefapi.com/']);
$response = $client->request('GET', 'api/user/city');
$body = $response->getBody();
$content =$body->getContents();
$arr = json_decode($content,TRUE);
//echo"<pre>";
//print_r(get_class_methods($response));
//print_r(get_class_methods($body));
//print_r($arr);
//echo"</pre>";
//dd(json_decode($content,true));
return $arr;
}
}
<?php
Route::get('/', function () {
return view('index');
});
Route::get('/cityAPI','ProfessionalController@getstate');
//Public routes
Route::get('/{drName}', function ($drName) {
return "drName = ".$drName;
});
Route::get('/{drName}/articles', function ($drName) {
echo $drName." All Articles home page";
//return view('welcome');
});
Route::get('/{drName}/articles/{id}', function ($drName,$id) {
echo $drName." Articles id=".$id;
//return view('welcome');
});
//Route::get('/showStateAPI', function () {
// echo "testerota";
// dd();
//});
//Private routes.
//Must to be logged to get access to this portion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment