2.7.2 Studi Kasus: Simulasi REST API untuk pengambilan data transaksi pada platform e-commerce
REST API (Representational State Transfer - Application Programming Interface) telah menjadi salah satu pendekatan paling populer dalam membangun integrasi antar sistem modern, khususnya pada aplikasi berbasis web dan mobile seperti platform e-commerce. Dengan pendekatan ini, setiap fungsi atau data dalam sistem backend dapat diakses melalui endpoint tertentu menggunakan metode HTTP standar seperti GET, POST, PUT, dan DELETE.
Salah satu kebutuhan utama dalam platform e-commerce adalah pengambilan data transaksi pelanggan. Fitur ini memungkinkan pelanggan untuk melihat riwayat pesanan mereka, mulai dari daftar produk yang dibeli, kuantitas, tanggal transaksi, hingga total pembayaran. Dari sisi teknis, fitur ini tidak mungkin diwujudkan tanpa komunikasi antara frontend (aplikasi pengguna) dan backend (server basis data). Inilah peran penting REST API sebagai jembatan penghubung.
Ilustrasi Skenario
Bayangkan seorang pengguna bernama Dita membuka aplikasi e-commerce favoritnya. Di halaman profil, ia mengklik menu "Riwayat Pembelian." Dalam hitungan detik, layar menampilkan daftar pesanan lengkap dengan:
● Nama produk
● Jumlah yang dibeli
● Harga per item
● Total biaya
● Tanggal transaksi
- Frontend mengirim permintaan (HTTP GET) ke endpoint REST API backend, misalnya /api/orders?userId=5.
- Backend melakukan query ke database, mencari semua transaksi milik userId = 5.
- Backend mengirim response ke frontend dalam format JSON, berisi daftar transaksi dan daftar produk yang termasuk di dalamnya.
- Frontend mem-parsing JSON dan menampilkan data tersebut secara rapi ke antarmuka pengguna.
Mengapa REST API Ideal untuk E-Commerce?
REST API dipilih karena berbagai keunggulan yang sangat sesuai untuk skenario seperti ini:
Keunggulan REST API |
Penjelasan |
Ringan |
Menggunakan HTTP dan format JSON, hemat bandwidth dan cepat. |
Stateless |
Setiap permintaan tidak bergantung pada status sebelumnya. |
Fleksibel |
Bisa diakses dari aplikasi mobile, web browser, bahkan alat otomasi. |
Mudah Dites |
Tools seperti Postman, Swagger, dan curl mendukung pengujian end-to-end. |
● Validasi Schema dengan QA Tools
QA dapat menggunakan tools seperti Postman + JSON schema validator atau Newman CLI untuk:
○ Memastikan struktur response konsisten
○ Menguji field wajib (seperti userId, productId, date, dll)
● Integrasi CI/CD
Pengujian API dapat diotomatisasi dan dijalankan pada pipeline CI/CD menggunakan:
○ Newman (Postman CLI)
○ REST Assured (Java)
Untuk pengujian awal, REST API bisa disimulasikan menggunakan mock server (seperti Postman Mock Server). Hal ini memungkinkan QA menguji frontend meski backend belum selesai dibangun.
○ Gunakan naming convention yang konsisten (/orders, bukan /getOrders)
○ Gunakan metode HTTP sesuai konteks: GET (baca), POST (buat), PUT/PATCH (ubah), DELETE (hapus)
○ Tambahkan dokumentasi Swagger/OpenAPI untuk memudahkan QA dan developer lain
⬛ Studi Kasus
Bayangkan kamu adalah seorang QA Engineer di tim pengembangan aplikasi e-commerce. Salah satu fitur penting yang harus diuji adalah fitur pengambilan data transaksi pengguna, yang ditampilkan dalam halaman "Riwayat Pembelian" (Order History). Fitur ini berfungsi untuk menampilkan seluruh pesanan yang pernah dilakukan oleh pengguna, lengkap dengan detail produk dan total harganya.
Agar aplikasi ini berfungsi dengan benar, sistem harus bisa:
● Mengambil data transaksi berdasarkan user ID tertentu.
● Menampilkan setiap produk dalam transaksi, termasuk nama, jumlah, dan harga.
● Menghitung total biaya transaksi berdasarkan data produk dan kuantitas.
Dalam konteks ini, REST API digunakan sebagai jembatan komunikasi antara frontend (aplikasi pengguna) dan backend (server penyedia data).
Untuk mensimulasikan proses ini, kita akan menggunakan web demo Fake Store API https://fakestoreapi.com/ yang merupakan layanan publik yang menyerupai backend toko online, dengan endpoint untuk produk, user, dan transaksi.
Alur Sistem (Simulasi E2E)
- Client (frontend) mengirim permintaan ke endpoint /carts untuk mengambil data transaksi pengguna.
- Dari response tersebut, aplikasi tahu:
○ ID pengguna
○ Daftar produk yang dibeli (dengan productId dan quantity)
○ Tanggal transaksi
- Untuk menampilkan detail produk, frontend memanggil /products/{id} untuk setiap productId.
- Aplikasi menampilkan transaksi lengkap ke pengguna.
Langkah-langkah Pengambilan Data Transaksi di Fake Store API
1. Ambil semua data produk di keranjang
Endpoint:
GET https://fakestoreapi.com/carts
Response:
[ |
Setiap cart berisi:
● ID transaksi
● ID user yang melakukan transaksi
● Detail produk (ID produk, nama produk, harga per item, deskripsi produk, kategori produk, dan gambar produk)
2. Ambil detail user tertentu untuk memverifikasi pemilik transaksi
Endpoint:
GET https://fakestoreapi.com/users/1
Response:
{ |
Setiap data user (users) berisi:
● ID user yang melakukan transaksi
● Username
● Password
3. Ambil detail produk berdasarkan ID dari transaksi
Misalnya dari transaksi di atas ada productId: 1
Endpoint:
GET https://fakestoreapi.com/products/1
Response:
{ |
Setiap data produk (products) berisi:
● ID produk
● Nama produk
● Harga per item
● Deskripsi
● Kategori produk
● Gambar produk
Sebagai QA, beberapa skenario pengujian yang bisa dilakukan:
● Apakah endpoint /carts mengembalikan transaksi yang sesuai dengan userId yang di-request?
● Apakah setiap productId valid dan bisa diambil detailnya dari /products/{id}?
● Apakah total harga sesuai (jumlah * harga satuan)?
● Bagaimana sistem merespons jika productId tidak ditemukan?
Apakah struktur respons API sesuai skema yang disepakati?