RESTful API (Create, Update, Delete)

Materi kali ini adalah lanjutan dari materi sebelumnya (RESTful API Read). Kali ini kita akan mencoba menambahkan RESTful API untuk Create, Update dan Delete data Mahasiswa.

Silakan buka file controller.js, kita akan tambahkan fungsi untuk read data mahasiswa, update dan delete data berdasarkan parameter npm.

exports.findUsers = function(req, res) {
    
    let npm = req.params.npm;

    connection.query('SELECT * FROM mahasiswa where npm = ?',
    [ npm ], 
    function (error, rows, fields){
        if(error){
            console.log(error)
        } else{
            response.ok(rows, res)
        }
    });
};

exports.createUsers = function(req, res) {

    let npm = req.body.npm;    
    let nama= req.body.nama;

    connection.query('INSERT INTO mahasiswa (npm, nama) values (?,?)',
    [npm, nama], 
    function (error, rows, fields){
        if(error){
            console.log(error)
        } else{
            response.ok("Berhasil menambahkan mahasiswa!", res)
        }
    });
};

exports.updateUsers = function(req, res) {
    
    let npm = req.body.npm;
    let nama = req.body.nama;

    connection.query('UPDATE mahasiswa SET nama = ? WHERE npm = ?',
    [nama, npm], 
    function (error, rows, fields){
        if(error){
            console.log(error)
        } else{
            response.ok("Berhasil mengubah mahasiswa!", res)
        }
    });
};

exports.deleteUsers = function(req, res) {
    
    let npm = req.body.npm;

    connection.query('DELETE FROM mahasiswa WHERE npm = ?',
    [npm], 
    function (error, rows, fields){
        if(error){
            console.log(error)
        } else{
            response.ok("Berhasil menghapus mahasiswa!", res)
        }
    });
};

Selanjutnya buka routes.js, lalu tambahkan routes berikut

app.route('/users/:npm')
    .get(todoList.findUsers);

app.route('/users')
    .post(todoList.createUsers);

app.route('/users')
    .put(todoList.updateUsers);

app.route('/users')
    .delete(todoList.deleteUsers);

Sekarang kita memiliki 4 routes baru

  1. GET /users/:npm untuk search data mahasiswa berdasarkan npm

  2. POST /users untuk menambahkan data

  3. PUT /users untuk mengubah data

  4. DELETE /users untuk menghapus data

Silakan jalankan kembali index.js dengan perintah

node index.js

POST data mahasiswa

Sekarang kita coba POST data mahasiswa menggunakan Insomnia

Pilih method POST, pada bagian Form isi npm dan nama

Pada bagian Header, isi Content-Type : application/x-www-form-urlencoded

GET data mahasiswa berdasarkan npm

Pilih method GET, lalu tambahkan parameter npm pada URL

PUT data mahasiswa

Pilih method PUT, pada bagian Form isi npm dan nama

Pada bagian Header, isi Content-Type : application/x-www-form-urlencoded

Tekan tombol Send, dan hasilnya nama mahasiswa ALI berubah menjadi USMAN

DELETE data mahasiswa

Pilih method DELETE, pada bagian Form isi npm

Pada bagian Header, isi Content-Type : application/x-www-form-urlencoded

Tekan tombol Send, dan hasilnya data mahasiswa dengan npm 1824250003 berhasil dihapus

Referensi

https://kiddyxyz.medium.com/tutorial-restful-api-node-js-express-mysql-part-2-eff96ebb4b7f

Last updated

Was this helpful?