by: CITRAWEB SOLUSI TEKNOLOGI, PT
Aturan | Tentang Kami | Kontak Kami

Artikel

Implementasi Rest API Pengelolaan User VPN MikroTik

Selasa, 1 Februari 2022, 14:46:18 WIB
Kategori: Fitur & Penggunaan

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

  1. mengaktifkan www-ssl pada router
  2. menggunakan ssl certificate pada router
  3. mengerti dasar bahasa pemrograman, pada artikel ini kita akan menggunakan php dan python

PHP

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.

 

Ada beberapa metode untuk melakukan http request pada php, pada artikel ini kami akan menggunakan guzzlehttp. Untuk metode lain kalian bisa mencoba nya sendiri ?

 

 

Install composer

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');"

Install guzzlehttp

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

 

 

Buat file php

masukkan / include file autoload.php yang terdapat pada folder vendor, kemudian gunakan guzzlehttp client untuk membuat client.

 

Melakukan request untuk mendapatkan response. percobaan pertama kita yaitu melakukan get, kita coba dulu melalui terminal untuk menjalankan program nya.

 

 

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.
 

Contoh contoh lain


Kita akan coba membuat sistem untuk mengelola user vpn, yaitu untuk melihat, menambah, mengubah, dan menghapus user vpn yang ada pada router.

 

 

PUT

 

 

 

 

 

 

 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']
            )
        ),
    ],
);

?>
 

 

Formulir tambah vpn

 

 

 

 

 

 

PATCH

 

 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());
?>

 

Form edit

 

 

 

 


   
   
   
   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);

    ?>
   

 

 

 


        user name:

       

        password:

       


                                                                            echo 'checked';
                                                                }  ?>>
        rw

                                                                                echo 'checked';
                                                                    }  ?>>
        site


       


       
   


    daftar user

 

 

 

 

 

 

Delete

 

 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']]);
?>
 

Contoh penggunaan pada PYTHONv3 untuk network automation

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.

 

GET

Hasil

PUT

Hasil

Delete

Hasil

PATCH

Hasil

 

 

 

Artikel ini dibuat pada 31 Januari 2022




Kembali ke :
Halaman Artikel | Kategori Fitur & Penggunaan