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 install
Create .env
file:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/workout-db
mkdir -p public/uploads
npm run dev
- Method:
POST
- URL:
http://localhost:3000/api/workouts
- Body:
form-data
name: "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/workouts
curl http://localhost:3000/api/workouts
express
: 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