Cara Membuat API Di Laravel

Cara Membuat API Di Laravel  - Bagi kamu yang ingin membutuhkan API untuk keperluan code mendapatkan informasi atau mengirimkan data ke aplikasi lain. Kamu harus menggunakan helper dilaravel, Jadi bagi kamu yang belum tahu cara membuat helper laravel langsung pelajari dulu di berbagai informasi di internet atau klik disini.

Setelah kamu mempelajari helper tinggal copy saja code yang ada di dibawah ini. Tetapi buat dulu filenya ya. Kasih nama file tersebut dengan "Api.php" Lalu copy langsung Code dibawah ini dan tempelkan didalam file Api.php

<?php

/**~~~~~~~~~~~~~~~~~~~
 * To The Core System
 ~~~~~~~~~~~~~~~~~~~~~*/


namespace App\Helpers;
class Api {

    private static $cookie_path = '';
    private static $curl = [];

    public static function init($key)
    {
        self::$curl = curl_init();
        $timestamp = (int) microtime(true);
        self::$cookie_path = __DIR__ . "/cookies_{".$key."}.txt";
    }

    public static function send($url, $params = NULL, $type = 'GET', $headers = NULL, $timeout = 40, $ssl = false)
    {
        try 
        {
            if( empty(self::$curl) ){
                self::init('default');
            }
                     
            $cr = self::$curl;

            if($type == 'POST') {
                if(!empty($params)) $build_param = http_build_query($params);
                else $build_param = '';
                curl_setopt($cr, CURLOPT_POST, true);
                curl_setopt($cr, CURLOPT_POSTFIELDS, $build_param);
            } elseif($type == 'POST-RAW') {
                curl_setopt($cr, CURLOPT_POST, true);
                curl_setopt($cr, CURLOPT_POSTFIELDS, $params);
            } elseif($type == 'POST-JSON') {            
                curl_setopt($cr, CURLOPT_CUSTOMREQUEST, "POST");
                curl_setopt($cr, CURLOPT_POSTFIELDS, json_encode($params));
               // print(json_encode($params));
            } elseif($type == 'GET') {
                if(!empty($params)) $url .= '?' . http_build_query($params);
            } else {            
                return '';
            }

            if ($headers && !empty($headers))
                curl_setopt($cr, CURLOPT_HTTPHEADER, $headers);

            curl_setopt($cr, CURLOPT_URL, $url);
            curl_setopt($cr, CURLOPT_TIMEOUT, $timeout);
            curl_setopt($cr, CURLOPT_CONNECTTIMEOUT, $timeout);
            curl_setopt($cr, CURLOPT_USERAGENT, "Mozilla/7.0 (compatible; MSIE 9.0; Windows NT 5.1)");
            curl_setopt($cr, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($cr, CURLOPT_SSL_VERIFYPEER, $ssl);
            curl_setopt($cr, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($cr, CURLOPT_COOKIESESSION, true);
            curl_setopt($cr, CURLOPT_COOKIEJAR, self::$cookie_path);
            curl_setopt($cr, CURLOPT_FAILONERROR, true);

            $response = curl_exec($cr);
            if($errno = curl_errno($cr) || curl_error($cr)) {
                $error_message = curl_strerror($errno);
                $response = json_encode([
                    'codestatus' => 'E',
                    'resultdata' => [
                        'curl_errno'        => $errno,
                        'curl_message'      => $error_message,
                        'curl_error_raw'    => curl_error($cr),
                        'http_code'         => curl_getinfo($cr, CURLINFO_HTTP_CODE),
                    ],
                    'message'   => 'Error CURL #1'
                ]);
            }

            return $response;
        } 
        catch (Exception $e) 
        {
            return json_encode([
                'codestatus'    => 'E',
                'message'       => $e->getMessage(),
            ]);
        }
    }
}

?>

Mudah bukan, Lalu bagaimana cara penggunaanya. Nah untuk penggunaanya cukup mudah. Pertama tama pastikan sudah berada di file controller laravelnya. Lalu paste kode dibawah ini. Ingat kode dibawah ini hanya contoh pemanggilanya saja. untuk URLnya silahkan cari saja sesuai dengan keinginan.

use Api ;

class HomeController extends Controller
{

   $url = "http//www.cuaca.com/indonesia";
   $param = array( "provinsi" => "23", "kab" => 3);
   $header = array("token" => "GB566GHT67878KLKL675656");

   $dataCuaca = Api::send($url,$param,"post");
    return $dataCuaca;

}

Untuk menggunakan   use Api ;  kamu harus sudah mendaftarkan Helper Api di config laravelnya. Baik mungkin itu yang bisa saya bantu. tak perlu pusing lagi memikirkan kode untuk membuat apinya. Tinggal pakai saja ok
Muhammad Miftahul Ulum

MuhammadMiftahulUlum.com is an information blog founded in 2014. This blog shares information from experiences, tips, and tricks, as well as comments from the author's side. I am someone who is always eager to learn new things and share my knowledge of various topics. 

Diberdayakan oleh Blogger.