Pada part sebelumnya kita sudah menyelesaikan bagian Router GET - Membaca data dan kita akan melanjutkan membuat router post untuk menambahkan data baru.
Seperti pada part sebelumnya, yang harus kita lakukan adalah mengubah kode pada file router/posts.js di bagian ini:
routes/posts.js
/**
* Route untuk membuat artikel baru
*/
route.post('/', function(req, res, next) {
});
Ubah bagian kode di atas menjadi seperti ini:
routes/posts.js
/**
* Route untuk membuat artikel baru
*/
route.post('/', async function(req, res, next) {
try {
//menangkap form data yang dikirim melalu request body
const {
title,
content,
tags,
published
} = req.body;
//membuat data baru di db menggunakan method create
const post = await models.posts.create({
title,
content,
tags,
published
});
//jika data berhasil dibuat, kembalikan response dengan kode 201 dan status OK
if (post) {
res.status(201).json({
'status': 'OK',
'messages': 'Post berhasil ditambahkan',
'data': post
});
}
} catch(err) {
res.status(400).json({
'status': 'ERROR',
'messages': err.message
});
}
});
Pada kode di atas, kita menulis baris kode untuk menangkap/mengambil data yang dikirimkan melalui request body yaitu title,content,tags,published. Jadi jika ada data lain yang dikirim selain ke 4 data tersebut maka tidak akan ikut tersimpan.
const {
title,
content,
tags,
published
} = req.body;
Selanjutnya membuat data baru menggunakan method create dengan value yang sudah kita tangkap sebelumnya.
const post = await models.posts.create({
title,
content,
tags,
published
});
Dan Terakhir kita mengembalikan response code 201 dengan status OK jika data berhasil ditambahkan pada DB.
if (post) {
res.status(201).json({
'status': 'OK',
'messages': 'Post berhasil ditambahkan',
'data': post
});
}
Response code 201 adalah standar kode yang biasa digunakan untuk menandakan pesan sukses data baru telah dibuat, Penjelasan lebih lengkap tentang http response code bisa kamu lihat pada situs https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Untuk mengetes API Endpoint untuk menambahkan data baru kita bisa menggunakan CURL atau agar lebih gampang bisa menggunakan POSTMAN.

Untuk mendownload atau melihat full source code pada tahap ini, silahkan kunjungi repo github
https://github.com/sakukode/simple-restapi/tree/v0.5