API ini digunakan untuk mengelola program latihan (workout) dengan kemampuan untuk menyimpan data latihan dan video tutorial.
workout-api/
├── public/
│ └── uploads/ # Folder untuk menyimpan video
├── src/
│ ├── config/ # Konfigurasi database
│ ├── controllers/ # Logic bisnis
│ ├── middleware/ # Middleware (upload, auth, etc)
│ ├── models/ # Model database
│ ├── routes/ # Definisi routes
│ └── app.js # Entry point aplikasi
└── .env # Environment variables
{
name: String, // Nama program latihan
description: String, // Deskripsi program
videoUrl: String, // URL video tutorial
createdAt: Date, // Waktu pembuatan
updatedAt: Date // Waktu update terakhir
}- URL:
/api/workouts - Method:
POST - Content-Type:
multipart/form-data
Request Body:
| Field | Type | Description |
|---|---|---|
| name | string | Nama latihan |
| description | string | Deskripsi latihan |
| video | file | File video tutorial |
Success Response (201):
{
"id": "675a946400dfa7cd761a7521",
"name": "Joging",
"description": "olahraga sehat",
"video_url": "/uploads/1733989476286.mp4"
}- URL:
/api/workouts - Method:
GET
Success Response (200):
[
{
"id": "675a946400dfa7cd761a7521",
"name": "Joging",
"description": "olahraga sehat",
"video_url": "/uploads/1733989476286.mp4"
}
]sequenceDiagram
Client->>+API: POST /api/workouts
API->>+Multer: Process video upload
Multer-->>-API: Save video to /uploads
API->>+MongoDB: Save workout data
MongoDB-->>-API: Return saved data
API-->>-Client: Return success response
sequenceDiagram
Client->>+API: GET /api/workouts
API->>+MongoDB: Find all workouts
MongoDB-->>-API: Return workout data
API-->>-Client: Return formatted response
npm installCreate .env file:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/workout-dbmkdir -p public/uploadsnpm run dev- Method:
POST - URL:
http://localhost:3000/api/workouts - Body:
form-dataname: "Joging" description: "olahraga sehat" video: [select file]
- Method:
GET - URL:
http://localhost:3000/api/workouts
curl -X POST \
-F "name=Joging" \
-F "description=olahraga sehat" \
-F "video=@/path/to/video.mp4" \
http://localhost:3000/api/workoutscurl http://localhost:3000/api/workoutsexpress: Web frameworkmongoose: MongoDB ODMmulter: File upload handlingdotenv: Environment configuration
| Status Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request |
| 404 | Not Found |
| 500 | Server Error |
Videos dapat diakses melalui browser dengan format URL:
http://localhost:3000/uploads/{filename}
Contoh:
http://localhost:3000/uploads/1733989476286.mp4
connect MongoDB nama DB
workout-db
collection
workouts
