Contoh: Users API
Contoh ini membangun di atas modul Users default yang ada pada proyek Flowra baru.
1. Jalankan migration
Scaffold sudah menyertakan migration untuk tabel users.
flowra db:migrate:latest
2. Update routes
Ubah routes Users ke bentuk RESTful:
app/Modules/Users/users.routes.js
'use strict';
const group = require('routergroup');
module.exports = ({ router, container } = {}) => {
if (!router || !container) {
return router;
}
const controller = container.resolve('modules.users.controllers.main');
router.use(
group('/users', (router) => {
router.get('/', controller.list.bind(controller));
router.post('/', controller.create.bind(controller));
router.put('/:id', controller.update.bind(controller));
router.delete('/:id', controller.destroy.bind(controller));
})
);
return router;
};
3. Tambahkan logic update dan delete
Perluas controller dan service dengan metode update dan destroy.
app/Modules/Users/Users.controller.js
update = async (req, res, next) => {
try {
const result = await this.usersService.update(req.params.id, req.body);
res.json({ message: 'Updated', data: result });
} catch (error) {
next(error);
}
};
destroy = async (req, res, next) => {
try {
await this.usersService.destroy(req.params.id);
res.status(204).end();
} catch (error) {
next(error);
}
};
app/Modules/Users/Users.service.js
async update(id, payload) {
return this.userModel.update(id, payload);
}
async destroy(id) {
return this.userModel.delete(id);
}
4. Jalankan dan uji
npm run dev
Sekarang Anda bisa memanggil:
GET /usersPOST /usersPUT /users/:idDELETE /users/:id
Langkah berikutnya
Coba tambahkan aturan validasi di update() atau buat query class untuk reporting.