Ini adalah API RESTful untuk mengelola resep, pengguna, dan autentikasi.
recipe_api/
├── src/
│ ├── controllers/
│ │ ├── authController.js
│ │ ├── recipeController.js
│ │ └── userController.js
│ ├── data/
│ │ ├── categories.json
│ │ ├── recipes.json
│ │ └── users.json
│ ├── middleware/
│ │ ├── methodHandler.js
│ │ ├── responseHandler.js
│ │ └── validationInput.js
│ ├── models/
│ │ ├── Category.js
│ │ ├── Recipe.js
│ │ └── User.js
│ ├── routes/
│ │ ├── authRoutes.js
│ │ ├── recipeRoutes.js
│ │ └── userRoutes.js
│ ├── utils/
│ │ ├── uploadImage.js
│ │ └── xssSanitizer.js
│ ├── app.js
│ ├── config.js
│ └── server.js
├── uploads/
├── .gitignore
└── package.json
POST /api/auth/login
: Login pengguna_public
POST /api/auth/register
: Registrasi pengguna_public
GET /api/users
: Mendapatkan semua pengguna_protect
POST /api/users/create
: Membuat pengguna baru_protect
PUT /api/users/:id/update
: Memperbarui pengguna_protect
DELETE /api/users/:id/delete
: Menghapus pengguna_protect
GET /api/recipes
: Mendapatkan semua resep_public
GET /api/recipes/category
: Mendapatkan semua kategori resep_public
GET /api/recipes/:id/detail
: Mendapatkan detail resep tertentu_public
POST /api/recipes/create
: Membuat resep baru_protect
PUT /api/recipes/:id/update
: Memperbarui resep_protect
DELETE /api/recipes/:id/delete
: Menghapus resep_protect
authController.protect
: Melindungi rute, memastikan hanya pengguna terautentikasi yang dapat mengaksesnyavalidateInputRecipe
: Memvalidasi data input resepvalidateUpdateRecipe
: Memvalidasi data pembaruan resepvalidateCreateUser
: Memvalidasi data pembuatan penggunavalidateUpdateUser
: Memvalidasi data pembaruan penggunacheckValidationResult
: Memeriksa hasil dari middleware validasiresponseHandler
: Menangani respons APImethodNotAllowed
: Menangani rute yang tidak terdefinisi
API ini menggunakan multer
untuk menangani unggahan file, khususnya untuk gambar resep.
-
Klon repositori:
git clone <url-repositori> cd recipe-app-api
-
Instal dependensi:
npm install
-
Atur variabel lingkungan di file
.env
. -
Jalankan server:
- Untuk produksi:
npm start
- Untuk pengembangan (dengan nodemon):
npm run dev
- Untuk produksi:
- express: ^4.21.0
- body-parser: ^1.20.3
- bcrypt: ^5.1.1
- jsonwebtoken: ^9.0.2
- multer: ^1.4.5-lts.1
- express-validator: ^7.2.0
- express-rate-limit: ^7.4.0
- xss: ^1.0.15
- nodemon: ^3.1.7
npm start
: Menjalankan server menggunakan Node.jsnpm run dev
: Menjalankan server menggunakan nodemon untuk pengembangan
1.0.0
README ini memberikan gambaran umum tentang struktur API dan endpoint. Untuk dokumentasi API yang lebih rinci, pertimbangkan untuk menggunakan alat seperti Swagger atau membuat file dokumentasi API terpisah.