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

Tapi, apa sebenarnya yang terjadi di balik layar?

Proses Teknis yang Terjadi:

  1. Frontend mengirim permintaan (HTTP GET) ke endpoint REST API backend, misalnya /api/orders?userId=5.
  2. Backend melakukan query ke database, mencari semua transaksi milik userId = 5.
  3. Backend mengirim response ke frontend dalam format JSON, berisi daftar transaksi dan daftar produk yang termasuk di dalamnya.
  4. 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.

  Penjelasan Tambahan

      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)

      Peran Mock Server

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.

      Best Practices

      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)

  1. Client (frontend) mengirim permintaan ke endpoint /carts untuk mengambil data transaksi pengguna.
  2. Dari response tersebut, aplikasi tahu:

      ID pengguna

      Daftar produk yang dibeli (dengan productId dan quantity)

      Tanggal transaksi

  1. Untuk menampilkan detail produk, frontend memanggil /products/{id} untuk setiap productId.
  2. 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:

[
  {
    "id": 0,
    "userId": 0,
    "products": [
      {
        "id": 0,
        "title": "string",
        "price": 0.1,
        "description": "string",
        "category": "string",
        "image": "http://example.com"
      }
    ]
  }
]

Penjelasan:

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:

{
  "id": 0,
  "username": "string",
  "email": "string",
  "password": "string"
}

Penjelasan:

Setiap data user (users) berisi:

      ID user yang melakukan transaksi

      Username

      Email

      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:

{
  "id": 0,
  "title": "string",
  "price": 0.1,
  "description": "string",
  "category": "string",
  "image": "http://example.com"
}

Penjelasan:

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?

Last modified: Thursday, 4 September 2025, 9:33 AM