An open API service indexing awesome lists of open source software.

https://github.com/dandymaulana19/api-blogpost

Rest API using express js and prisma
https://github.com/dandymaulana19/api-blogpost

api express-js postgresql prisma-client rest-api

Last synced: 4 months ago
JSON representation

Rest API using express js and prisma

Awesome Lists containing this project

README

          

# API Blogpost

API-Blogpost adalah sebuah REST API yang dikembangkan menggunakan **Express.js** dan **PostgreSQL**, serta dikelola dengan **Prisma ORM**. Proyek ini berjalan dalam lingkungan **Docker**.

## 🚀 Fitur
- CRUD Postingan Blog
- Manajemen User
- Database PostgreSQL dengan Prisma ORM
- Dikemas dalam Docker

## 🛠 Teknologi yang Digunakan
- **Node.js & Express.js** - Backend framework
- **PostgreSQL** - Database
- **Prisma ORM** - Manajemen database
- **Docker & Docker Compose** - Containerization
- **pgAdmin** - Database Admin UI

---

## 📦 Instalasi dan Menjalankan Proyek

### **1. Clone Repository**
```sh
git clone https://github.com/DandyMaulana19/Api-Blogpost.git
cd Api-Blogpost
```

### **2. Konfigurasi Environment**
Buat file `.env.development` dan `.env.production` berdasarkan contoh di `.env.example`:
```env
DATABASE_URL=""
```
> Gantilah `` dengan koneksi PostgreSQL yang sesuai.

### **3. Menjalankan dengan Docker**
```sh
docker-compose up --build
```
Akses API di: [http://localhost:3100](http://localhost:3100)

### **4. Menjalankan Migrasi Prisma**
```sh
docker exec -it api-blogpost-app-1 sh
npx prisma migrate deploy
exit
```

### **5. Mengakses Database dengan pgAdmin**
Jika menggunakan **pgAdmin** di Docker, akses melalui:
```sh
http://localhost:5050
```
Gunakan credential berikut:
- **Email**: `admin@example.com`
- **Password**: `admin`

Tambahkan server baru dengan:
- **Host**: `db`
- **Port**: `5432`
- **Username**: ``
- **Password**: ``

---

## 🔥 API Endpoint

### **1. Postingan Blog**
| Method | Endpoint | Deskripsi |
|--------|---------|-----------|
| `GET` | `/posts` | Mendapatkan semua post |
| `POST` | `/posts` | Membuat post baru |
| `PUT` | `/posts/:id` | Update post |
| `DELETE` | `/posts/:id` | Hapus post |