Implementasi API untuk MySQL & MongoDB

Astrella Syadira Ramadhante

Sosial Media


1 orang menyukai ini
Suka

Summary

Dalam proyek UAS ini, saya Astrella Syadira Ramadhante (2410511094) bertanggung jawab atas pengembangan API backend yang mengambil data dari database MySQL dan MongoDB. Proyek ini merupakan hasil kerja sama dengan Alysha Ananda Shafa (2410511087) yang menangani MongoDB, serta Isma'il Faruqy (2410511092) yang mengelola struktur dan keamanan MySQL. API yang saya buat menggunakan Flask, dengan Pymongo untuk koneksi MongoDB dan MySQL Connector untuk MySQL. Saya mengembangkan dua file utama, yaitu mongo_api.py dan mysql_api.py, yang memastikan kedua sistem dapat diintegrasikan dengan baik. Pengujian dilakukan menggunakan Postman untuk memastikan bahwa API berjalan sesuai dengan fungsinya.

Description

Dalam proyek UAS ini, saya bertanggung jawab atas pengembangan API backend yang memungkinkan integrasi antara MySQL dan MongoDB. API ini dikembangkan menggunakan Flask sebagai framework utama, dengan Pymongo untuk koneksi MongoDB dan MySQL Connector untuk MySQL. Tujuan utama dari proyek ini adalah memastikan bahwa data dari kedua database dapat diakses dalam format JSON yang seragam, sehingga lebih fleksibel dan mudah digunakan dalam pengembangan aplikasi.

Proses pembuatan API ini dimulai dengan menyiapkan lingkungan kerja, memastikan bahwa semua dependensi sudah terinstal dengan baik, dan melakukan konfigurasi database agar siap digunakan. 

1. Pengembangan API untuk MongoDB (mongo_api.py)

Dalam mongo_api.py, saya membangun API untuk mengambil data dari MongoDB. Koneksi dibuat menggunakan Pymongo, dan koleksi yang akan diakses ditentukan secara dinamis.

  • MongoClient() → Membuka koneksi ke server MongoDB yang berjalan di localhost:27017.
  • db = client.db_ecommerce → Mengakses database db_ecommerce untuk melakukan operasi pada koleksi yang ada.

  • MongoDB menyimpan ID unik (_id) dalam format ObjectId, yang tidak bisa langsung ditampilkan sebagai teks di JSON.
  • Fungsi ini mengubah ObjectId menjadi string sehingga API bisa mengembalikannya dalam format JSON yang bersih dan terbaca.

  • Daftar collections berisi nama koleksi yang akan diambil datanya (users, company, gudang, dll).
  • Loop for name in collections: → Mengiterasi setiap koleksi dan menjalankan query db[name].find() untuk mengambil semua data.
  • convert_objectid(documents) → Memastikan setiap ObjectId diubah ke string sebelum dikembalikan ke frontend.

  • Data yang sudah diambil dari MongoDB dikonversi ke format JSON.

  • app.run() → Menjalankan server Flask pada port 5000, sehingga API bisa diakses melalui http://localhost:5000/get .
  • host='0.0.0.0' → Membuka akses agar bisa diakses dari jaringan lain jika diperlukan.

Pengujian API dengan Postman dan Browser:

 

2. Pengembangan API untuk MySQL (mysql_api.py)

Dalam mysql_api.py, saya membangun API untuk MySQL yang berfungsi untuk membaca data dari beberapa tabel dan menyajikannya dalam format JSON. Saya memastikan bahwa query yang digunakan dapat mengambil data dengan struktur yang baik, sehingga hasil yang diberikan tetap konsisten.

  • mysql.connector.connect() → Membuka koneksi ke database MySQL, menggunakan user: ecom_admin dan database: ecommerce_db.
  • Host 127.0.0.1 menunjukkan bahwa database dijalankan secara lokal.
  • Koneksi ini memungkinkan Flask untuk mengambil dan mengolah data dari MySQL.

  • Flask menggunakan @app.route('/get') untuk membuat endpoint API yang dapat diakses melalui http://localhost:5000/get .
  • cursor = db.cursor() → Membuat cursor untuk mengeksekusi query SQL.

  • cursor.execute("SELECT * FROM users") → Menjalankan query untuk mengambil semua data dari tabel users.
  • cursor.fetchall() → Mengambil semua hasil dan menyimpannya dalam variabel user.

Bagian ini diulang untuk beberapa tabel lain:

  • Setiap query mengambil data dari tabel terkait, seperti telephone, produk, beli, dll.

  • Menggabungkan semua hasil query ke dalam dictionary Python.
  • Menggunakan jsonify() untuk mengubah dictionary menjadi respons JSON yang bisa dikonsumsi oleh aplikasi frontend.

  • Menjalankan server Flask pada port 5000 agar API bisa diakses dari browser atau Postman.
  • host='0.0.0.0' → Membuka akses agar API bisa dijangkau dari jaringan lain jika diperlukan.

Pengujian API dengan Postman dan Browser:

Setelah API selesai dikembangkan, saya melakukan serangkaian pengujian untuk memastikan fungsionalitasnya berjalan dengan baik. Pengujian dilakukan menggunakan Postman, di mana setiap permintaan ke endpoint yang tersedia diuji untuk memastikan data dikembalikan dengan benar. Selain itu, saya juga menjalankan API di browser untuk melihat langsung bagaimana JSON yang dihasilkan dapat diakses tanpa error. Dalam tahap ini, saya mengevaluasi setiap respons yang diterima dan memastikan bahwa API dapat berjalan secara optimal tanpa hambatan.

Melalui proyek ini, saya mendapatkan pengalaman dalam membangun API yang dapat berinteraksi dengan dua model database yang berbeda, serta memahami bagaimana menangani format data yang tidak selalu seragam. Saya juga belajar pentingnya validasi dalam pengembangan backend, memastikan bahwa setiap respons yang dikirim oleh API sesuai dengan kebutuhan pengguna. Implementasi ini membuktikan bahwa backend dapat dikembangkan secara fleksibel untuk mendukung berbagai jenis sistem yang membutuhkan integrasi database yang berbeda.

Informasi Course Terkait
  Kategori: Data Science / Big Data
  Course: Cloud Computing