Hướng dẫn viết api đơn giản với nodejs

Chuẩn bị mỗi trường

Sử dụng postman để test restful api

Postman là một chương trình giúp bạn đóng vai 1 client để tạo restquest đến server, postman như một trình duyệt dành cho web dev. Nó hỗ trợ đầy đủ các method http như post, get, put, delete….và các tham số trong http requestĐịa chỉ để download : https://www.postman.com/downloads/Cài đặt postman không có gì đặt biệt vì rất dễ , bạn chỉ việc chạy chương trình, nhắp nút next next là xong

Sau đây là phần hướng dẫn RESTful API trong NodeJS, bạn cần chuẩn bị database, tạo folder project trước khi thực hiện nhé.

Thực hiện restful api trong nodejs

Chuẩn bị database

Tạo table tên sach như sau:

Nhập dữ liệu

Cài module express và express-generator

Nếu máy của bạn đã cài rồi thì thôi bỏ qua, còn chưa thì

  1. Mở command line
  2. Gõ  lệnh npm install -g express
  3. Tiếp theo gõ lệnh  npm -g install express-generator

Tạo project để thực tập

  1. Vào command line rồi chạy lệnh:

express --view=ejs RestfulTest

Bạn sẽ thấy folder RestfulTest xuất hiện các folder và file trong đó

2. Chuyển vào folder RestfulTest mới tạo và chạy các lệnh cài đặt module cần thiết

npm install npm install mysql

Tạo model kết nối db

1. Tạo folder models trong project

2. Tạo file file models/database.js

var mysql = require('mysql');

var db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'labnodejs'
});
db.connect(() => console.log('Da ket noi database !'));
module.exports = db;

Tạo route

1. Mở file app.js và định nghĩa route sach dẫn vào controller routes/sach

var sachRouter = require('./routes/sach');
app.use('/sach', sachRouter);

2. Tạo file routes/sach.js và code

var express = require('express');
var router = express.Router();
var db = require('./../models/database');
router.get('/', function(req, res, next) {
//chức năng trả về danh sách các record
//phương thức request: get
//lấy ra các record trong table
//trả về danh sách sách dạng json
});
router.post('/', function(req, res, next) {
//chức năng thêm mới record vào table
//phương thức request: post
//tiếp nhận dữ liệu gửi trong body request
//thực hiện chèn record mới vào table
//trả về thông báo đã chèn dạng json
});
router.get('/:id', function(req, res, next) {
//chức năng trả về chi tiết 1 record
//phương thức request: get
//tiếp nhận id của reord trong url
//lấy ra record theo id từ table
//trả về chi tiết record dạng json
});
router.put('/:id', function(req, res, next) {
//chức năng cập nhật record trong table
//phương thức request: put
//tiếp nhận dữ liệu gửi trong body request
//thực hiện cập nhật record vào table
//trả về thông báo json đã cập nhật
});
router.delete('/:id', function(req, res) {
//chức năng xóa 1 record trong table
//phương thức request: delete
//tiếp nhận id trong url
//thực hiện xóa record
//trả về thông báo json đã xóa
});
module.exports = router;

Thực hiện chức năng danh sách record

1. Trong routes/sach.js, code lại chức năng trả về danh sách các record để được như sau

router.get('/', function(req, res, next) {
let sql = SELECT id, tenSach, moTa, urlHinh FROM sach;
db.query(sql, function(err, data) {
res.json(data);
});
});

2. Test: Mở Postman để test

Trình Postman download từ https://www.postman.com/downloads/ , giúp bạn tạo các loại request khác nhau (get, post, put, delete…) đến server. Nếu bạn chưa cài thì down rồi cài vào máy nhé.

Mở chương trình postman, chọn method GET và nhập url rồi nhắp Send như hình

Thực hiện lấy chi tiết record

1. Trong routes/sach.js, code lại chức năng trả về chi tiết 1 record để được như sau

router.get('/:id', function(req, res, next) {
let id=req.params.id;
let sql = 'SELECT * FROM sach WHERE id = ?'
db.query(sql, id, (err, d) => {
res.json(d[0]);
});
});

2. Test: Mở Postman để test

Trong tool postman, chọn method GET và nhập url rồi nhắp Send như hình

Thực hiện chức năng thêm record

1. Trong routes/sach.js, code lại chức năng thêm mới record vào table để được như sau:

router.post('/', function(req, res, next) {
let data = req.body;
let sql = 'INSERT INTO sach SET ?';
db.query(sql, data, (err, d) => {
if (err) throw err;
res.json({thongbao:"Đã chèn xong sách"});
});
});

2. Test: Mở Postman để test

Trong tool postman, chọn method POST và nhập url rồi nhắp Send như hình

Thực hiện chức năng cập nhật record

1. Trong routes/sach.js, code lại chức năng cập nhật record trong table để được như sau:

router.put('/:id', function(req, res, next) {
let data = req.body;
let id = req.params.id;
let sql = 'UPDATE sach SET ? WHERE id = ?';
db.query(sql, [data, id], (err, d) => {
if (err) throw err;
res.json({thongbao: 'Đã cập nhật sách'});
});
});

2. Test: Mở Postman để test

Trong tool postman, chọn method PUT và nhập url rồi nhắp Send như hình

Thực hiện chức năng xóa record

1. Trong routes/sach.js, code lại chức năng xóa record trong table để được như sau:

router.delete('/:id', function(req, res) {
let id = req.params.id;
let sql = 'DELETE FROM sach WHERE id = ?'
db.query(sql, id , (err, d) => {
if (err) throw err;
res.json({thongbao: 'Đã xóa thành công'});
});
});

2. Test: Mở Postman để test

Trong tool postman, chọn method DELETE và nhập url rồi nhắp Send như hình

Như vậy là hoàn thành các chức năng cơ bản về api nodejs