Mục đích của loạt bài này để hướng dẫn cho các bạn cách tạo RESTFul Apis sử dụng NodeJS một cách đơn giản, tôi sẽ bỏ qua các khải niệm về RESTFul nhé, các bạn có thể tìm hiểm thêm ở đây:

https://techmaster.vn/posts/34163/restful-services-phan-1-http

Vậy là mình sẽ đến luôn với phần đầu tiên tổng quan những việc chúng ta sẽ làm:

Ở đây:

/products:

GET => lấy ra danh sách products

POST => thêm mới products

 

/products/{id}

GET => lấy thông tin products

PATCH/UPDATE => thay đổi cập nhật products

DELETE => Xoá products

 

/orders

GET => lấy thông tin orders

POST => tạo mới orders

 

/orders/{id}

GET => Lấy giống tin chi tiết của order

PATCH => không có vì chúng ta k thể chỉnh sửa những order đã tạo

DELETE => Xoá orders

 

Vì 1 số vấn đề bảo mật đối với 1 số APIs thì chúng ta sẽ làm cả phần login để chắc chắn khi login xong thì users mới có thể lấy được thông tin của các APIs(products(POST), products/{id}(PATCH, DELETE), orders(GET, POST), orders/{id}(GET, DELETE))

 

Nhưng vấn đề login sẽ được đề cập ở các bài sau, ở đây chúng ta sẽ làm từng bước 1.

Đầu tiên các bạn bật terminal gõ: mkdir(windown thì cũng tương tự)

mkdir note-rest-shop

 

tiếp theo:

cd node-rest-shop

Tiếp theo các bạn cần cài đặt Node: https://nodejs.org/en/download/

Sau khi cài đặt, ở terminal các bạn gõ:

nmp init

Tiếp theo các bạn điền các thông tin cần thiết hoặc cứ để mặc định rồi ấn enter thôi

và cuối cùng gõ yes kết thúc.

Tiếp theo các bạn mở folder vừa tạo, ở đây mình dùng ATOM

Các bạn có thể thấy file package.json, thì ở file này các thuộc tính cũng giống như những thông tin lúc nãy bạn điển thôi.

Tiếp theo các bạn bật lại terminal gõ:

 npm install —save express

Ở đây tôi sử dụng express để việc tạo ra RESTFul API dễ dàng hơn

Tiếp theo tôi tạo server.js

File này sẽ chứa các đoạn mã javascript phần tạo server

const http = require('http');
const app = require('./app');

const port = process.env.PORT || 3000; //port mà server run

const server = http.createServer(); //cần 1 listerner

server.listen(port); //listen trên port

 

Thêm 1 file mới app.js: Với nhiệm vụ handle request

const express = require('express');

app.use((req, res, next) => { //use cũng giống như 1 middleware khi server nhận request thì nó sẽ chạy qua đây để thao tác một số logic gì đó
  //next ở đây là 1 function được gọi khi handle request, ở đây các bạn có thể sử lý request hoặc thao tác với response trước khi trả về.
    message: 'It works!'
     res.status(200).json({ 
     });
});

module.exports = app;

 

 

Ở đây tôi sẽ send lại một json với message là 'It works'

 

và cuối cùng export nó

 

quảy trở lại file server.js

import app vào file như sau:

const app = express();

Và gán app cho listener

const server = http.createServer(app);

Tiếp theo chúng ta sẽ thử gửi một GET request tới server xem sao

Đầu tiên thì chúng ta sẽ cần bật server, ở terminal các bạn gõ:

node server.js

Nhưng tại sao bật rồi mà nó không hiện lên gì, thì đúng vậy server bật rồi nhưng nó chưa có request đến, ở đây chúng ta sẽ tạo thử request bằng cách gõ:

localhost:3000

lên trình duyệt để xem kết quả, vì chúng ta đã sử lý logic là nếu k khai báo port thì nó sẽ lấy mặc định port là 3000

Các bạn thử cài POSTMAN nhé vì ở các bài tiếp theo để thuận tiện cho việc tạo các requests mình sẽ dùng POSTMAN

https://www.getpostman.com/