Bài hướng dẫn dành cho các Frontend Developer hoặc Mobile Developer (có thể gọi chung là Client Developer 😂).

 

Dựng Server local

- Yêu cầu máy tính đã cài và chạy được Git + NodeJS.

- Các bước thực hiện:

  1. Clone repository sau: https://github.com/robinhuy/fake-rest-api-nodejs.git
    git clone https://github.com/robinhuy/fake-rest-api-nodejs.git
  2. Cài đặt dependencies
    cd fake-rest-api-nodejs
    npm install
  3. Chạy server
    npm start

- Vậy là chúng ta đã có 1 Server API chạy trên http://localhost:3000 với 1 resource có sẵn là /users (100 record) với các API theo chuẩn REST: Lấy danh sách user (phân trang, lọc, tìm kiếm, ...), lấy thông tin 1 user, thêm sửa xóa user.

REST API

 

Chỉnh sửa API

- API mặc định là thông tin về User, toàn bộ được lưu vào trong file database.json. Có thể chỉnh sửa hoặc thêm dữ liệu vào file đó miễn khai báo đúng cấu trúc, ví dụ thêm 1 resource về products thì thêm như sau:

database.json

- Server sử dụng thư viện JSON Server, để xem đầy đủ tài liệu hướng dẫn về API hãy xem tại đây: https://github.com/typicode/json-server

- Nếu cần mockup dữ liệu lớn và ngẫu nhiên thì có thể dùng thêm dịch vụ sau https://mockaroo.com/. Mockaroo cho phép mockup dữ liệu rất đa dạng, cấu hình được tỉ lệ, viết thêm các function điều kiện để tạo dữ liệu và cho phép xuất mockup ra dưới nhiều định dạng trong đó có JSON.

Dựng server online

- Nếu là đại gia thì có thể sử dụng VPS hoặc nếu không thì có thể sử dụng dịch vụ của Heroku (hoặc các dịch vụ tương tự): Đăng ký tài khoản, tạo App và đẩy source code kèm file database.json lên. Khi deploy code có thể chọn Heroku Git và gõ lệnh theo hướng dẫn bên dưới hoặc chọn kết nối với Github repo để deploy code qua 1 nút bấm (hoặc auto deploy khi có commit lên github).

- Cần chú ý là nếu dùng gói Free thì khi Server không hoạt động (không có truy cập) sau 30 phút thì Server sẽ rơi vào trạng thái Sleep, lần truy cập kế tiếp sẽ hơi chậm 1 chút và mọi dữ liệu sẽ reset về ban đầu (như trong file database.json).

=> Nếu dùng Heroku để host thì có thể chọc phá API thoải mái 😄