Proyek ini adalah bagian dari uji tes untuk perekrutan Backend Developer. Proyek ini merupakan implementasi REST API menggunakan Node.js dan Express.js.
-
Pastikan Anda sudah menginstal Node.js dan MySQL di sistem Anda.
-
Clone repositori ini ke dalam direktori lokal Anda:
git clone https://github.com/husainrizaldy/be-dev-rest-api.git
-
Masuk ke dalam direktori proyek:
cd be-dev-rest-api -
Install dependensi menggunakan npm:
npm install
-
Buat file
.envberdasarkan contoh.env.exampledan atur koneksi database MySQL Anda.
Jalankan server menggunakan perintah:
npm start
atau
npm run dev
Berikut adalah daftar endpoint yang tersedia dalam proyek ini:
-
Create New Employee
POST /api/v1/Employee
Endpoint ini digunakan untuk membuat karyawan baru.
-
Update Employee Position
PUT /api/v1/Employee/updatePosition/:id
Endpoint ini digunakan untuk memperbarui posisi jabatan karyawan berdasarkan ID.
-
Get All Employees
GET /api/v1/Employee
Endpoint ini digunakan untuk mendapatkan semua data karyawan.
-
Get Employees Without User
GET /api/v1/Employee/withoutuser
Endpoint ini digunakan untuk mendapatkan data karyawan yang belum terdaftar sebagai pengguna (user).
-
Get Logged In Employees
GET /api/v1/Employee/loggedin
Endpoint ini digunakan untuk mendapatkan data karyawan yang sedang dalam status login.
-
Get Employee By ID
GET /api/v1/Employee/:id
Endpoint ini digunakan untuk mendapatkan data karyawan berdasarkan ID.
-
Delete Employee
DELETE /api/v1/Employee/:id
Endpoint ini digunakan untuk menghapus data karyawan berdasarkan ID.
Dokumen API ini telah diatur dalam koleksi Postman yang dapat diakses untuk pengujian. Untuk melihat dan mengunduh koleksi tersebut, silakan buka tautan berikut:
Proyek ini dibangun menggunakan Node.js, Express.js, dan MySQL. Berikut adalah langkah-langkah teknis yang diambil selama pembangunan proyek ini:
-
Inisialisasi Proyek: Proyek dimulai dengan inisialisasi menggunakan
npm inituntuk membuatpackage.json. Selanjutnya, instalasi Express.js dan dotenv dilakukan menggunakan perintahnpm install express dotenv. -
Database Setup: Database MySQL diatur melalui file
config/db.jsmenggunakan modulmysql. Koneksi ke database diinisialisasi saat aplikasi dimulai. -
Struktur Proyek: Proyek dibagi ke dalam direktori seperti
controllers,models,routes, danutils. Masing-masing memiliki tugas masing-masing sesuai dengan konsep MVC (Model-View-Controller).
-
Routes: Endpoints diatur dalam file
routes/v1/karyawanRoutes.js. Pengelompokan endpoint berdasarkan versi API mempermudah penataan. -
Controllers: Logika pengendali untuk masing-masing endpoint ditempatkan dalam file
controllers/karyawanController.js. Pemanggilan model dan manipulasi data dilakukan di sini. -
Models: Interaksi langsung dengan database MySQL terjadi di dalam file
models/karyawanModel.js. Model berisi fungsi-fungsi yang menyediakan akses ke data.
-
Middleware untuk JSON Parsing: Middleware untuk mengurai body JSON diatur di
app.jsmenggunakanexpress.json(). -
Middleware untuk CORS: Middleware untuk CORS bisa ditambahkan di
app.jsuntuk memungkinkan akses lintas domain
-
Response Handling Utilities: File
utils/responseHandler.jsberisi fungsi-fungsi untuk menangani respon API, termasuk respons sukses, not found, dan error. -
Try-Catch di Controllers dan Models: Kesalahan ditangani dengan menggunakan blok try-catch di dalam file
controllers/employeeController.jsdanmodels/employeeModel.js.
-
Middleware untuk Validasi Input: Middleware validasi dapat ditambahkan di
routes/v1/employeeRoutes.jsuntuk memeriksa masukan sebelum mencapai kontroler. -
Validator Utility Functions: Validasi spesifik seperti validasi integer atau tidak boleh kosong dapat diimplementasikan di dalam file
utils/validator.js.
-
Pengembangan Query: Query yang kompleks dan melibatkan join dapat diatur di dalam model sesuai dengan kebutuhan, seperti dalam file
models/employeeModel.js. -
Penanganan Error: Untuk setiap operasi di dalam model yang melibatkan query database, penanganan kesalahan dilakukan dan dipropagasi ke kontroler.
-
Pengujian dengan Postman: Pengujian dilakukan menggunakan Postman atau alat pengujian API lainnya untuk memastikan setiap endpoint berfungsi seperti yang diharapkan.
-
Dokumentasi Postman: Dokumentasi Postman dibuat dan dibagikan melalui link sehingga pengguna lain dapat dengan mudah mencoba dan memahami cara menggunakan API.
-
Menambahkan Endpoint Baru: Untuk menambahkan endpoint baru, buka file
routes/v1/employeeRoutes.jsdan tambahkan rute baru sesuai kebutuhan. Kemudian, bukacontrollers/employeeController.jsuntuk menambahkan logika pengendali untuk endpoint tersebut. -
Dokumentasi: Jangan lupa untuk mencatat endpoint baru di dalam Dokumentasi Postman.