Selama bertahun-tahun, arsitektur pengembangan aplikasi standar selalu menempatkan database di lapisan paling bawah, terisolasi dan hanya dapat diakses melalui lapisan perantara yang tebal. Untuk membuat sebuah API (Application Programming Interface), seorang pengembang biasanya harus membangun lapisan backend di bahasa seperti Java, Python, atau Node.js, mengelola Object-Relational Mapping (ORM), mengatur connection pool, dan baru kemudian berkomunikasi dengan database. Arsitektur ini, meskipun umum, sering kali menciptakan latensi, kerumitan, dan titik kegagalan tambahan.
baca Juga:PPL dalam Promosi Adalah Singkatan Dari? Kenali Makna dan Peranannya dalam Dunia Marketing
Namun, bagaimana jika kita bisa memangkas semua lapisan perantara itu? Bagaimana jika Anda bisa membangun endpoint REST API yang aman, berkinerja tinggi, dan siap produksi langsung di atas Oracle Database Anda, hanya dengan menggunakan keahlian PL/SQL yang mungkin sudah Anda miliki? Inilah paradigma yang ditawarkan oleh kombinasi Oracle Database, PL/SQL, dan Oracle REST Data Services (ORDS). Pendekatan ini mengubah database dari sekadar tempat penyimpanan data pasif menjadi platform pengembangan aplikasi aktif. Artikel ini adalah panduan “From Zero to Hero” Anda untuk membangun API modern dengan cara yang lebih sederhana, lebih cepat, dan sering kali lebih aman.
Mengapa Membangun API Langsung di Database?
Sebelum masuk ke teknis, mari kita pahami mengapa pendekatan “langsung ke sumbernya” ini begitu menarik dan kuat, terutama dalam ekosistem Oracle.
- Latensi Mendekati Nol: Dengan menghilangkan lapisan aplikasi perantara, Anda menyingkirkan perjalanan bolak-balik data melalui jaringan (network round-trip) antara server aplikasi dan server database. Logika bisnis yang dieksekusi di dalam database melalui PL/SQL beroperasi langsung pada data, menghasilkan waktu respons API yang sangat cepat. ⚡
- Arsitektur yang Lebih Sederhana: Tumpukan teknologi (tech stack) Anda menjadi jauh lebih ramping. Anda tidak perlu lagi khawatir tentang pemeliharaan server aplikasi terpisah, konfigurasi ORM yang rumit, atau sinkronisasi pustaka. Semakin sedikit komponen bergerak, semakin sedikit yang bisa rusak.
- Keamanan Data Terpusat: Keamanan tidak lagi tersebar di berbagai lapisan. Dengan PL/SQL, Anda dapat menerapkan aturan akses data yang ketat tepat di tempat data itu berada. Logika keamanan menyatu dengan logika bisnis, memastikan bahwa tidak ada jalan pintas untuk mengakses data sensitif.
- Memanfaatkan Investasi yang Ada: Perusahaan Anda kemungkinan besar telah berinvestasi besar pada lisensi, infrastruktur, dan keahlian Oracle Database. Pendekatan ini memungkinkan Anda memanfaatkan investasi tersebut secara maksimal, memberdayakan tim DBA dan pengembang PL/SQL Anda untuk membangun layanan modern tanpa perlu mempelajari tumpukan teknologi yang sama sekali baru.
Arsitektur From Zero to Hero: Komponen Kunci
Perjalanan ini dimungkinkan oleh sinergi tiga komponen utama yang bekerja bersama secara harmonis:
- Oracle Database: Ini adalah fondasi Anda. Lebih dari sekadar penyimpanan, ia adalah mesin pemrosesan data dan logika yang kuat. Semua kode, data, dan keamanan Anda berpusat di sini.
- PL/SQL: Ini adalah “otak” dari API Anda. Anda akan menulis logika bisnis, validasi data, dan manipulasi data dalam bentuk stored procedure dan function PL/SQL. Bahasa ini dirancang khusus untuk berinteraksi dengan data secara efisien dan aman.
- Oracle REST Data Services (ORDS): Ini adalah jembatan magisnya. ORDS adalah aplikasi Java gratis yang berjalan di server aplikasi (seperti Tomcat, Jetty, atau WebLogic) yang berfungsi sebagai penerjemah. Ia menerima permintaan HTTP/S dari klien, memetakannya dengan aman ke procedure PL/SQL yang sesuai di database, mengeksekusinya, dan mengembalikan hasilnya sebagai JSON.
Langkah-langkah Membangun API Pertama Anda
Mari kita lihat betapa mudahnya mengubah procedure PL/SQL menjadi endpoint RESTful. Anggap kita ingin membuat API untuk mengambil detail karyawan berdasarkan ID.
Langkah 1: Tulis Logika Bisnis di PL/SQL
Pertama, kita buat sebuah procedure sederhana di dalam skema database kita (misalnya, HR). Procedure ini menerima p_emp_id sebagai input dan mengembalikan detail karyawan melalui parameter OUT yang berjenis SYS_REFCURSOR.
SQL
CREATE OR REPLACE PROCEDURE get_employee_details (
p_emp_id IN employees.employee_id%TYPE,
p_record OUT SYS_REFCURSOR
) AS
BEGIN
OPEN p_record FOR
SELECT employee_id, first_name, last_name, email, hire_date
FROM employees
WHERE employee_id = p_emp_id;
END;
/
Langkah 2: Aktifkan Skema untuk Layanan REST
Ini adalah langkah satu kali. Anda perlu memberitahu ORDS bahwa skema HR diizinkan untuk mengekspos layanan REST.
SQL
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'HR',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'hr_api', -- Ini akan menjadi bagian dari URL Anda
p_auto_rest_auth => FALSE
);
COMMIT;
END;
/
Langkah 3: Publikasikan Procedure sebagai Endpoint (AutoREST)
Inilah bagian yang paling mengesankan. Dengan satu perintah, Anda dapat memberitahu ORDS untuk secara otomatis membuat endpoint REST untuk procedure yang sudah ada.
SQL
BEGIN
ORDS.ENABLE_OBJECT(
p_enabled => TRUE,
p_schema => 'HR',
p_object => 'GET_EMPLOYEE_DETAILS', -- Nama procedure Anda
p_object_type => 'PROCEDURE',
p_object_alias => 'employees', -- Alias untuk URL yang lebih ramah
p_auto_rest_auth => FALSE
);
COMMIT;
END;
/
Selesai! Anda baru saja menjadi Pahlawan API.
Sekarang, Anda dapat memanggil API Anda menggunakan alat seperti curl atau Postman:
GET https://your_server/ords/hr_api/employees/101
ORDS secara otomatis akan memetakan parameter dari URL (101) ke parameter p_emp_id dalam procedure Anda dan mengubah SYS_REFCURSOR yang dihasilkan menjadi dokumen JSON yang rapi.
Mengamankan API Anda: Lebih dari Sekadar HTTPS
Membuat API itu mudah, tetapi mengamankannya adalah hal yang krusial. ORDS menyediakan kerangka kerja keamanan tingkat enterprise.
- Authentication & Authorization: ORDS terintegrasi penuh dengan OAuth2, standar industri untuk otentikasi API. Anda dapat mendefinisikan peran (roles) dan hak istimewa (privileges) di ORDS, dan kemudian mengamankan endpoint Anda sehingga hanya klien dengan token OAuth2 yang valid dan memiliki hak yang sesuai yang dapat mengaksesnya.
- Prinsip Hak Istimewa Terkecil (Least Privilege): User database yang digunakan oleh ORDS untuk terhubung sebaiknya hanya memiliki hak
EXECUTEpada procedure yang diekspos, bukan hakSELECT,UPDATE, atauDELETEpada tabel secara langsung. Ini memastikan bahwa satu-satunya cara untuk berinteraksi dengan data adalah melalui logika bisnis terkontrol yang telah Anda tulis. - Validasi Input: Selalu validasi dan bersihkan semua input di dalam kode PL/SQL Anda untuk mencegah serangan SQL Injection, meskipun ORDS sudah menyediakan perlindungan dasar.
penulis:dafa Aditya.f