Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis API

Membangun API yang Tangguh dengan FastAPI dan MongoDB

Pelajari cara membuat API cepat & efisien dgn FastAPI & MongoDB. Panduan lengkap ini mencakup pengaturan hingga pengujian endpoint, memastikan aplikasi Anda kuat & terukur.

Ardianto Nugroho

Ardianto Nugroho

Updated on April 15, 2025

Di dunia yang didorong oleh teknologi saat ini, membangun API yang cepat, efisien, dan terukur sangat penting bagi para pengembang. Salah satu kombinasi hebat yang semakin populer adalah menggunakan FastAPI dengan MongoDB. FastAPI, seperti namanya, adalah kerangka kerja web modern dan berkinerja tinggi untuk membangun API dengan Python 3.7+ yang cepat untuk dikodekan dan dijalankan. Sementara itu, MongoDB adalah basis data NoSQL yang dikenal karena skalabilitas dan fleksibilitasnya. Bersama-sama, mereka menyediakan solusi yang kuat untuk membuat API yang dapat menangani apa pun mulai dari proyek kecil hingga aplikasi skala besar.

Jadi, mengapa Anda harus mempertimbangkan duo ini untuk proyek Anda berikutnya? Mari selami lebih dalam!

Memulai: Menyiapkan Lingkungan Anda

Sebelum kita mulai membangun API kita, mari siapkan lingkungan kita. Anda memerlukan Python yang terinstal pada sistem Anda, bersama dengan pip untuk mengelola paket.

Kerangka kerja FastAPI, kinerja tinggi, mudah dipelajari, cepat dikodekan, siap untuk produksi

Langkah 1: Instal FastAPI dan Uvicorn

Pertama, mari instal FastAPI. Buka terminal Anda dan jalankan perintah berikut:

pip install fastapi

Selanjutnya, kita akan menginstal Uvicorn, implementasi server ASGI untuk Python, yang akan melayani aplikasi FastAPI kita:

pip install uvicorn

Langkah 2: Instal Motor

Motor adalah driver async untuk MongoDB yang bekerja dengan mulus dengan FastAPI. Untuk menginstalnya, jalankan:

pip install motor

Bagus! Sekarang kita memiliki semua yang kita butuhkan untuk mulai membuat kode.

Membuat Aplikasi FastAPI Pertama Anda

Sekarang, mari buat aplikasi FastAPI dasar dan hubungkan ke MongoDB.

Langkah 1: Inisialisasi Aplikasi FastAPI

Buat file Python baru (sebut saja main.py) dan mulai dengan mengimpor FastAPI dan menginisialisasi aplikasi:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Selamat datang di tutorial FastAPI dengan MongoDB!"}

Kode ini menyiapkan aplikasi FastAPI dasar dengan satu endpoint.

situs web resmi mongoDB

Langkah 2: Hubungkan ke MongoDB

Selanjutnya, mari hubungkan aplikasi FastAPI kita ke MongoDB menggunakan Motor. Kita akan membuat file baru bernama database.py untuk mengelola koneksi basis data kita.

from motor.motor_asyncio import AsyncIOMotorClient

MONGO_DETAILS = "mongodb://localhost:27017"

client = AsyncIOMotorClient(MONGO_DETAILS)
database = client.mydatabase

Dalam contoh ini, kita terhubung ke instance MongoDB yang berjalan secara lokal. Pastikan MongoDB terinstal dan berjalan di sistem Anda.

Langkah 3: Definisikan Model Pydantic

Model Pydantic adalah cara yang bagus untuk mendefinisikan struktur data dan memastikan validasi data di FastAPI. Buat file models.py:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str
    price: float
    available: bool = True

Model ini mendefinisikan struktur item dalam inventaris kita.

Membuat Endpoint API

Dengan pengaturan dasar yang sudah selesai, mari buat beberapa endpoint API untuk berinteraksi dengan basis data MongoDB kita.

Langkah 1: Buat Koleksi Item

Pertama, kita membutuhkan koleksi di basis data MongoDB kita untuk menyimpan item. Di main.py, mari buat endpoint untuk menambahkan item baru ke basis data:

from fastapi import FastAPI, HTTPException
from database import database
from models import Item
from bson import ObjectId

app = FastAPI()

@app.post("/items/")
async def create_item(item: Item):
    item_dict = item.dict()
    result = await database["items"].insert_one(item_dict)
    item_dict["_id"] = str(result.inserted_id)
    return item_dict

Endpoint ini memungkinkan kita untuk membuat item baru dalam koleksi MongoDB. Perhatikan bagaimana kita mengubah ID yang dimasukkan menjadi string untuk keterbacaan yang lebih baik.

Langkah 2: Ambil Item

Selanjutnya, kita akan membuat endpoint untuk mengambil semua item dari basis data:

@app.get("/items/")
async def get_items():
    items = await database["items"].find().to_list(1000)
    for item in items:
        item["_id"] = str(item["_id"])
    return items

Endpoint ini mengambil semua item dari koleksi items dan mengubah ID mereka menjadi string.

Langkah 3: Ambil Satu Item

Untuk mengambil satu item berdasarkan ID-nya, kita akan menambahkan endpoint lain:

@app.get("/items/{item_id}")
async def get_item(item_id: str):
    item = await database["items"].find_one({"_id": ObjectId(item_id)})
    if item:
        item["_id"] = str(item["_id"])
        return item
    raise HTTPException(status_code=404, detail="Item tidak ditemukan")

Endpoint ini mengambil item berdasarkan ID-nya dan mengembalikannya, atau memunculkan kesalahan 404 jika item tidak ditemukan.

Langkah 4: Perbarui Item

Memperbarui item sangat mudah dengan FastAPI dan Motor. Tambahkan kode berikut untuk memperbarui item berdasarkan ID-nya:

@app.put("/items/{item_id}")
async def update_item(item_id: str, item: Item):
    result = await database["items"].update_one(
        {"_id": ObjectId(item_id)}, {"$set": item.dict()}
    )
    if result.modified_count == 1:
        updated_item = await database["items"].find_one({"_id": ObjectId(item_id)})
        updated_item["_id"] = str(updated_item["_id"])
        return updated_item
    raise HTTPException(status_code=404, detail="Item tidak ditemukan")

Endpoint ini memperbarui item berdasarkan ID-nya dan mengembalikan item yang diperbarui.

Langkah 5: Hapus Item

Terakhir, mari tambahkan endpoint untuk menghapus item berdasarkan ID-nya:

@app.delete("/items/{item_id}")
async def delete_item(item_id: str):
    result = await database["items"].delete_one({"_id": ObjectId(item_id)})
    if result.deleted_count == 1:
        return {"message": "Item dihapus"}
    raise HTTPException(status_code=404, detail="Item tidak ditemukan")

Endpoint ini menghapus item dan mengembalikan pesan keberhasilan atau kesalahan 404 jika item tidak ditemukan.

Cara Menghubungkan ke Basis Data MongoDB​ ke Apidog

  1. Klik "Operasi Prosesor" di API dan pilih "Operasi Basis Data".
Klik "Operasi Prosesor" di API dan pilih "Operasi Basis Data".

2. Klik "Kelola Koneksi Basis Data" di kotak dropdown di bawah "Koneksi Basis Data", lalu klik tombol "Baru" di sudut kanan atas.

Klik "Kelola Koneksi Basis Data"

3. Pilih jenis basis data MongoDB, lalu isi informasi koneksi yang sesuai.

Pilih jenis basis data MongoDB
💡
Apidog mementingkan keamanan data Anda. Alamat basis data, port, nama pengguna, kata sandi, nama basis data hanya disimpan secara lokal di klien dan tidak akan disinkronkan ke cloud. Bahkan dalam tim yang sama, informasi koneksi untuk basis data tidak akan disinkronkan antar anggota. Setiap anggota tim perlu menyiapkan koneksi basis data secara manual.

Operasikan Basis Data MongoDB​

MongoDB menyimpan data dalam format dokumen BSON. Untuk kenyamanan kebiasaan penggunaan sebagian besar pengguna, saat memodifikasi basis data MongoDB di Apidog, kirimkan file format JSON. Sistem akan secara otomatis memetakan setiap bidang ke jenis data BSON yang sesuai berdasarkan konten JSON yang sebenarnya.

Di antaranya, bidang _id relatif khusus. Menurut spesifikasi MongoDB, setiap dokumen harus memiliki bidang _id sebagai kunci utama, dan jenis data default dari bidang ini adalah ObjectId daripada String.

Jika Anda perlu mendeklarasikan bidang _id dari jenis ObjectId, Anda dapat menggunakan format string konvensional. Jika konten string sesuai dengan format ObjectId, Apidog akan secara otomatis memetakannya ke jenis ObjectId di BSON.

Asumsikan ada dokumen BSON seperti itu di MongoDB sekarang:

{    _id: ObjectId('6569a36afcf5ee79c08d2f94'),    name: "Apidog"}

Jadi, saat menggunakan Apidog untuk menanyakan dokumen melalui _id, nilai JSON yang perlu dimasukkan dalam "Kondisi Kueri" adalah:

{    "_id": "6569a36afcf5ee79c08d2f94"  }

Operasi Umum​

Untuk operasi CRUD umum, dukungan melalui operasi API visual. Tidak perlu menulis kode JavaScript apa pun, cukup tentukan tindakan di "Jenis Operasi", lalu tentukan "Nama Koleksi", dan kemudian tulis konten yang sesuai dalam JSON di "Kondisi Kueri".

Misalnya, untuk operasi kueri yang disebutkan di atas, Anda dapat melihat dokumen yang dikueri di konsol setelah memasukkan perintah dan mengaktifkan "Log Konsol".

tulis konten yang sesuai dalam JSON di "Kondisi Kueri" di Apidog

Perintah Tingkat Lanjut​

Jika Anda memerlukan operasi yang lebih canggih, Anda juga dapat langsung menjalankan perintah basis data. Di "Jenis Operasi", pilih "Jalankan Perintah Basis Data" lalu masukkan perintah basis data dalam format JSON. Perhatikan bahwa perintah basis data tidak mengacu pada panggilan metode seperti db.collection.findOne(), tetapi data JSON dalam format tertentu.

Misalnya, untuk menanyakan jumlah dokumen dalam koleksi pengguna, Anda dapat menggunakan perintah basis data count:

{    "count": "users"}

Setelah memasukkan perintah, Anda dapat melihat hasilnya di konsol.

Jalankan perintah basis data

Menguji API Anda

Untuk menguji API Anda, Anda dapat menggunakan alat seperti Postman atau Apidog. Alat-alat ini memungkinkan Anda untuk mengirim permintaan ke endpoint Anda dan melihat respons, sehingga lebih mudah untuk melakukan debug dan memastikan semuanya berfungsi dengan benar.

Menggunakan Apidog untuk Pengujian

Apidog adalah alat pengembangan dan pengujian API yang kuat yang menyederhanakan proses pembuatan, pengujian, dan pengelolaan API. Berikut cara Anda dapat menggunakan Apidog untuk menguji aplikasi FastAPI MongoDB Anda:

  1. Buat Proyek Baru: Buka Klien Apidog dan Buat proyek baru di Apidog.
Buat Proyek Baru di Apidog

2 Tambahkan Endpoint: Tambahkan endpoint yang telah Anda buat (/items/, /items/{item_id}, dll.) ke proyek.

Tambahkan Endpoint di Apidog

3. Kirim Permintaan: Gunakan alat ini untuk mengirim permintaan GET, POST, PUT, dan DELETE ke endpoint Anda dan amati respons.

Kirim Permintaan di Apidog

4. Validasi Respons: Pastikan bahwa respons sesuai dengan output yang diharapkan, dan gunakan pesan kesalahan terperinci untuk memperbaiki masalah apa pun.

Validasi Respons di Apidog

Kesimpulan

Dalam tutorial ini, kita telah membahas dasar-dasar pengaturan aplikasi FastAPI dengan MongoDB. Kita membuat API inventaris sederhana yang memungkinkan Anda untuk membuat, mengambil, memperbarui, dan menghapus item. Kecepatan dan kemudahan penggunaan FastAPI, dikombinasikan dengan fleksibilitas dan skalabilitas MongoDB, menjadikannya pasangan yang sempurna untuk membangun API yang kuat.

Dengan memanfaatkan alat seperti Apidog, Anda dapat merampingkan proses pengembangan dan pengujian, memastikan API Anda andal dan berkinerja tinggi.

Jadi, tunggu apa lagi? Selami FastAPI dan MongoDB, dan mulailah membangun API yang luar biasa hari ini!

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)Tutorial

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Pelajari cara buat web apa pun dgn Lovable. Panduan lengkap, fitur inovatif, & integrasi Apidog (API gratis).

Ardianto Nugroho

April 15, 2025

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan KomprehensifTutorial

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Tutorial ini memandu Anda menyiapkan & mengelola API key khusus di Cursor: OpenAI, Anthropic, Google, & Azure.

Ardianto Nugroho

April 11, 2025

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat LanjutTutorial

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Pelajari API NVIDIA Llama Nemotron utk buat agen AI canggih.

Ardianto Nugroho

April 11, 2025