NetAuto • Kursus PraktisiPanduan Praktik Hands-On
Modul Bab 2: MikroTik REST API di RouterOS v7
Arsitektur REST API native RouterOS v7, autentikasi SSL/TLS, RBAC user policy, dan endpoint mapping.
Format: Markdown (.MD)•File:
bab_2_mikrotik_rest_api_routeros_v7.md•Sasaran: Praktisi & DevOpsFilter Versi CLI:
RouterOS v7 memperkenalkan native REST API berbasis HTTPS dan JSON yang menggantikan protokol proprietary RouterOS API port 8728. Dengan REST API, engineer dapat menggunakan standar HTTP method (GET, POST, PATCH, PUT, DELETE) langsung dari bahasa pemrograman apapun (Python, Node.js, Go) atau HTTP client seperti Postman dan cURL tanpa library biner khusus.
sequenceDiagram
autonumber
actor Dev as Network DevOps / Script
participant API as MikroTik REST API (:443)
participant Core as RouterOS v7 Kernel / System
Dev->>API: POST /rest/ip/address (JSON Payload)
Note over API: Basic Auth (SSL/TLS Encrypted)
API->>Core: Commit IP Configuration
Core-->>API: Status OK / Created (.id: *3)
API-->>Dev: 201 Created HTTP Response (JSON)
2.1 Arsitektur & Keunggulan REST API v7 #
- Stateless HTTP/HTTPS Protocol: Tidak memerlukan persistent raw socket connection seperti API port 8728.
- Standard JSON Data Interchange: Seluruh request body dan response diformat dalam RFC 8259 JSON murni.
- Role-Based Access Control (RBAC): REST API menggunakan user group yang sama dengan RouterOS policy (read, write, test, api).
- Endpoint Path Mapping: Format URL REST API merefleksikan hierarki CLI RouterOS:
- CLI:
/ip address print$\rightarrow$ REST:GET https://router-ip/rest/ip/address - CLI:
/ip firewall filter print$\rightarrow$ REST:GET https://router-ip/rest/ip/firewall/filter - CLI:
/interface bridge add name=br-lan$\rightarrow$ REST:PUT /rest/interface/bridge
- CLI:
2.2 Mengaktifkan Service REST API & Sertifikat SSL #
Secara default, service www-ssl harus aktif untuk mengizinkan HTTPS REST API yang aman.
ROUTEROS
# Verifikasi status service www dan www-ssl
/ip service print
# Mengaktifkan service www-ssl pada port standar 443
/ip service enable www-ssl
/ip service set www-ssl address=192.168.10.0/24 certificate=none
# Membuat User Khusus API dengan Policy Terbatas
/user group add name=api-admin policy=api,read,write,test,!policy,!password
/user add name=netdev-user group=api-admin password="P@ssw0rdDevOps2026!"
2.3 Pemetaan Operasi CRUD ke HTTP Methods #
| Operasi RouterOS | HTTP Method | Endpoint URI Contoh | Format Request Body |
|---|---|---|---|
| Read (Print) | GET |
/rest/ip/address |
None / Query Params |
| Create (Add) | PUT |
/rest/ip/address |
{"address": "10.0.0.1/24", "interface": "ether2"} |
| Update (Set) | PATCH |
/rest/ip/address/*1 |
{"comment": "Updated via REST"} |
| Delete (Remove) | DELETE |
/rest/ip/address/*1 |
None |
| Run Command | POST |
/rest/system/reboot |
{} |
[!TIP]
Pada RouterOS REST API, gunakan methodPUTsaat membuat entri item baru, dan methodPATCHsaat memperbarui property dari entri yang sudah ada berdasarkan ID internal (misal*1).