Pada artikel sebelumnya kita sudah membahas tentang rest api pada routeros v7. Untuk itu kita akan coba bagaimana cara menggunakannya atau implementasi di kode pemrograman.
Artikel sebelumnya bisa Anda lihat pada tautan berikut: https://citraweb.com/artikel_lihat.php?id=475
Prasyarat
Install php terlebih dahulu, sesuaikan dengan sistem operasi yang digunakan. Anda bisa install php saja atau sekaligus dengan webserver nya jika ingin di akses melalui browser. Disini kami menggunakan xampp pada windows.
Untuk memasang guzzlehttp kita bisa dengan mudah menggunakan bantuan dari composer. Maka dari itu kita install terlebih dahulu composer nya.
Untuk memasang composer, dokumentasi bisa kita lihat pada tautan berikut: https://getcomposer.org/download/
Sesuaikan dengan sistem operasi yang digunakan, disini kami menjalankan composer-setup.exe karena menggunakan windows atau bisa menggunakan command line jika hanya ingin menginstall di direktori tertentu.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" |
Untuk memasang guzzlehttp kita bisa menggunakan composer. Dokumentasi lengkap tentang guzzlehttp bisa kita lihat pada tautan berikut: https://docs.guzzlephp.org/en/stable/overview.html
composer require guzzlehttp/guzzle:^7.0 |
masukkan / include file autoload.php yang terdapat pada folder vendor, kemudian gunakan guzzlehttp client untuk membuat client.
Sampai disini kita sudah mendapatkan response yang bisa kita olah untuk ditampilkan di browser.
Kita lakukan perulangan dan hasilnya akan seperti berikut:
Setelah mendapatkan data nya, teman teman bisa menghias tampilan menggunakan css dan juga bisa menambah fitur seperti autentikasi login dan sebagainya.
Kita akan coba membuat sistem untuk mengelola user vpn, yaitu untuk melihat, menambah, mengubah, dan menghapus user vpn yang ada pada router.
require "./vendor/autoload.php"; use GuzzleHttpClient; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'https://iphostrouter/rest/', // You can set any number of default request options. 'timeout' => 2.0, ]); $response = $client->put( 'ppp/secret', [ 'auth' => [ 'user', 'passwd' ], 'headers' => ['Content-type: application/json'], 'body' => json_encode( array( 'name' => $_GET['name'], 'password' => $_GET['password'], 'profile' => $_GET['profile'] ) ), ], ); ?> |
|
require './vendor/autoload.php'; use GuzzleHttpClient; use function GuzzleHttpjson_encode; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'https://iphostrouter/rest/', ]); $response = $client->patch( 'ppp/secret/' . $_GET['id'], [ 'auth' => [ 'user', 'passwd' ], 'headers' => ['Content-type: application/json'], //'body' => "{"name":"rahmaw"}" , 'body' => json_encode( array( 'name' => $_GET['name'], 'password' => $_GET['password'], 'profile' => $_GET['profile'] ) ), //var_dump(json_encode(array('name' => 'rahmaw'))) ], ); //var_dump($response->getBody()); ?> |
Document
require './vendor/autoload.php';
use GuzzleHttpClient;
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://iphostrouter/rest/',
]);
$response = $client->get('ppp/secret/' . $_GET['id'], ['auth' => ['user', 'passwd']]);
$body = $response->getBody();
// Implicitly cast the body to a string and echo it
$output = json_decode($body, true);
//var_dump($output);
?>
|
require './vendor/autoload.php'; use GuzzleHttpClient; $client = new Client([ // Base URI is used with relative requests 'base_uri' => 'https://iphostrouter/rest/', ]); $response = $client->delete('ppp/secret/' . $_GET['id'], ['auth' => ['user', 'passwd']]); ?> |
Diperlukan beberapa library untuk membuat script dengan REST-API diantaranya: requests, HTTPBasicAuth, json, dan urllib3.
Kemudian membuat variabel yang dibutuhkan seperti IP Address, Username, Password, dan URL. Variabel-variabel ini diperlukan untuk membuat koneksi ke router yang akan di manajemen.
Berikut contoh script dari python dengan method GET, PUT, DELETE, dan PATCH dari REST-API untuk manajemen IP Address di MikroTik.
Hasil
Hasil
Hasil
Hasil
Artikel ini dibuat pada 31 Januari 2022
Kembali ke :
Halaman Artikel | Kategori Fitur & Penggunaan