Skip to content

Noisycools/fastapi-food-nutrition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aplikasi CRUD Nutrisi Makanan (FastAPI + MySQL)

Ini adalah aplikasi API sederhana yang dibangun menggunakan FastAPI dan MySQL untuk melakukan operasi CRUD (Create, Read, Update, Delete) pada data nutrisi makanan.

Proyek ini menggunakan SQLAlchemy sebagai ORM, Pydantic untuk validasi data, dan Alembic untuk migrasi database.


Prasyarat

Sebelum memulai, pastikan Anda sudah menginstal:

  • Python 3.8+
  • MySQL Server

Panduan Instalasi & Menjalankan Aplikasi

Ikuti langkah-langkah berikut untuk menyiapkan dan menjalankan proyek ini di komputer Anda.

1. Dapatkan Kode Proyek

Unduh atau clone repositori ini ke mesin lokal Anda.

# Contoh jika menggunakan git
git clone <url-repositori-anda>
cd fastapi_mysql_nutrition

2. Buat dan Aktifkan Virtual Environment

Sangat disarankan untuk menggunakan virtual environment agar dependensi proyek tidak tercampur dengan proyek lain.

# Buat virtual environment
python -m venv .venv

# Aktifkan virtual environment
# Windows:
# .venv\Scripts\activate
# macOS/Linux:
# source .venv/bin/activate

3. Instal Dependensi

Instal semua library Python yang dibutuhkan yang ada di file requirements.txt.

pip install -r requirements.txt

4. Konfigurasi Database

a. Buat Database di MySQL Masuk ke MySQL client Anda dan buat database baru.

CREATE DATABASE food_nutrition_db;

b. Buat File .env Salin file .env.example (jika ada) atau buat file baru bernama .env di direktori utama. Isi file tersebut dengan URL koneksi ke database MySQL Anda.

# Isi file .env
# Ganti 'user', 'password', dan 'host' sesuai dengan konfigurasi MySQL Anda.
# Format: mysql+pymysql://<DB_USER>:<DB_PASSWORD>@<DB_HOST>/<DB_NAME>

DATABASE_URL="mysql+pymysql://root:password_anda@localhost/food_nutrition_db"

Penting: Jika password Anda mengandung karakter spesial (contoh: !@#$%^&*()), Anda harus melakukan URL-encode pada karakter tersebut.

5. Jalankan Migrasi Database

Proyek ini menggunakan Alembic untuk mengelola skema database. Jalankan perintah berikut untuk membuat tabel foods di database Anda.

a. Konfigurasi alembic.ini Pastikan file alembic.ini sudah berisi URL database yang benar.

# di dalam alembic.ini
sqlalchemy.url = mysql+pymysql://root:password_anda@localhost/food_nutrition_db

Penting: Jika password Anda di-encode (misal ! menjadi %21), Anda harus mengubahnya lagi menjadi %%21 di file ini karena karakter % dianggap spesial oleh file .ini.

b. Terapkan Migrasi Jalankan perintah ini dari direktori utama proyek.

alembic upgrade head

6. Jalankan Aplikasi

Setelah semua langkah di atas selesai, jalankan server FastAPI menggunakan Uvicorn.

uvicorn app.main:app --reload
  • app.main:app merujuk ke objek app di dalam file app/main.py.
  • --reload membuat server otomatis restart setiap kali ada perubahan pada kode.

7. Akses API

Aplikasi Anda sekarang berjalan. Buka browser dan kunjungi:

http://127.0.0.1:8000/docs

Anda akan melihat dokumentasi interaktif (Swagger UI) di mana Anda bisa mencoba semua endpoint API yang telah dibuat.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors