/ / Hướng dẫn cho người mới bắt đầu về RESTful API trong Node.js

Hướng dẫn cho người mới bắt đầu về RESTful API trong Node.js

API REST (Chuyển trạng thái đại diện) — đôi khi được gọi là AP RESTful — là một API sử dụng các yêu cầu HTTP để truy cập và sử dụng tài nguyên.

Các tài nguyên này thường được trình bày ở định dạng JSON mặc dù trong một số trường hợp, định dạng XML, văn bản và HTML được sử dụng. Các API REST đã trở thành một cách tiêu chuẩn để các ứng dụng trao đổi dữ liệu qua mạng thông qua các phương thức HTTP như GET, PUT, POST và DELETE. Chúng tạo điều kiện thuận lợi cho việc tạo, đọc, cập nhật và xóa các tài nguyên thường được gọi là hoạt động CRUD.

Hướng dẫn này khám phá cách bạn có thể sử dụng Node.JS để tạo một API khôi phục CRUD đơn giản.

Những gì bạn cần làm theo

Đảm bảo rằng bạn đã cài đặt Node.js trên máy cục bộ của mình. Chạy nút -v để kiểm tra xem Node.JS đã được cài đặt hay chưa. Lệnh này sẽ trả về số phiên bản.

Liên quan: Cách cài đặt Node.js trên Windows

Bạn cũng nên có một phiên bản làm việc của trình soạn thảo văn bản yêu thích của bạn (ví dụ: VS Code).

Thiết lập dự án

Tạo một thư mục cho ứng dụng của bạn và điều hướng đến nó. Trên thiết bị đầu cuối và trong thư mục bạn vừa tạo, hãy khởi tạo package.json bằng cách chạy npm init.

$ npm init -y 

Các package.json sẽ giúp bạn cài đặt và quản lý các gói npm. Các -y cờ tạo tệp package.json bằng cách sử dụng các tùy chọn mặc định mà bạn không cần phải thiết lập các chi tiết riêng lẻ. Đầu ra trên thiết bị đầu cuối của bạn sẽ giống như thế này. Lưu ý rằng tên sẽ khác nhau tùy thuộc vào những gì bạn đã đặt tên cho thư mục của mình.


Màn hình đầu cuối hiển thị tệp package.json đã tạo

Thiết lập máy chủ

Để tạo một máy chủ, trước tiên, hãy cài đặt Express.js và Nodemon. Express.js là một khung công tác Node.Js được thiết kế để giúp việc phát triển các ứng dụng web và API trở nên dễ dàng hơn. Bạn sẽ sử dụng nó để định cấu hình máy chủ và các điểm cuối API. Mặt khác, Nodemon là một công cụ phát triển sẽ khởi động lại máy chủ của bạn khi mã ứng dụng của bạn thay đổi.

Chạy lệnh sau để cài đặt thể hiệngật đầu:

npm i express nodemon 

Tiếp theo, để tạo máy chủ của bạn, hãy tạo một tệp và gọi nó server.js sau đó thêm mã sau.

// Require express
const express = require("express");
// Initialize express
const app = express();
const PORT = 8080;
// parse JSON
app.use(express.json());
// parse URL encoded data
app.use(express.urlencoded({ extended: true }));
// create a server
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});

Trong đoạn mã trên, yêu cầu thể hiện trong server.js và khởi tạo nó. Sau đó, định cấu hình express để phân tích cú pháp JSON và dữ liệu được mã hóa URL. Cuối cùng, tạo một máy chủ bằng cách sử dụng nghe() phương thức từ Express.

Liên quan: Express.js là gì và tại sao bạn nên sử dụng?

Bắt đầu: Tạo một mảng để lưu trữ dữ liệu người dùng

Vì mục đích đơn giản, bạn sẽ không sử dụng cơ sở dữ liệu mà là một mảng người dùng đơn giản. Trong app.js của bạn, hãy thêm mã sau vào dòng phân tích dữ liệu được mã hóa URL.

const users = [{
id: 1,
name: "Jane Doe",
age: "22",
},
{
id: 2,
name: "John Doe",
age: "31",
}];

Liên quan: Cách tạo Cơ sở dữ liệu và Bộ sưu tập trong MongoDB

Cách thiết lập các tuyến trong Express.js

Để thực hiện các thao tác trên dữ liệu của mình, bạn cần thiết lập định tuyến. Các tuyến sẽ xác định cách ứng dụng của bạn sẽ phản hồi các yêu cầu được gửi đến một điểm cuối cụ thể. Mỗi tuyến có một phương thức HTTP, một URL và một hàm xử lý để xử lý yêu cầu và phản hồi HTTP. Để thiết lập các tuyến đường, hãy thêm phần sau vào server.js tập tin sau khi của bạn người dùng mảng.

app.post('/create', (req, res) => {
// Create a user
});
app.get('/users', (req, res) => {
// Retrieves all users
});
app.get('/user/:userID', (req, res) => {
// Returns a user by ID
});
app.put('/user/:userID', (req, res) => {
// Update a user by ID
});
app.delete('/delete/:userID', (req, res) => {
// Delete a user by ID
});
app.delete('/users', (req, res) => {
// Delete all users
});

Cách thực hiện các hoạt động CRUD trong Node.Js

Bạn cần tạo các chức năng sẽ thao tác dữ liệu người dùng và trả về phản hồi theo lộ trình phù hợp. Các chức năng này sẽ tạo, đọc, cập nhật và xóa dữ liệu người dùng.

Liên quan: Cách thực hiện Thao tác CRUD trong MongoDB

Cách tạo người dùng mới

Để tạo người dùng mới, bạn sẽ cần:

  • Kiểm tra xem nội dung yêu cầu có trống không — nếu có, hãy gửi phản hồi lỗi.

  • Trích xuất dữ liệu người dùng từ phần thân yêu cầu.

  • Xác thực dữ liệu người dùng.

  • Đẩy dữ liệu người dùng vào mảng.

Lưu ý rằng bạn đang sử dụng một mảng chỉ cho mục đích đơn giản. Trong một tình huống thực tế, bạn sẽ tương tác với một cơ sở dữ liệu.

Chỉnh sửa tuyến đường ĐĂNG của bạn như bên dưới.

app.post("/create", (req, res) => {
// Check if request body is empty
if (!Object.keys(req.body).length) {
return res.status(400).json({
message: "Request body cannot be empty",
});
}
// Use object destructuring to get name and age
const { name, age } = req.body;
if (!name || !age) {
res.status(400).json({
message: "Ensure you sent both name and age",
});
}
const newUser = {
id: users.length + 1,
name,
age,
};
try {
users.push(newUser);
res.status(201).json({
message: "Successfully created a new user",
});
} catch (error) {
res.status(500).json({
message: "Failed to create user",
});
}
});

Cách đọc Người dùng

Để truy xuất tất cả người dùng, hãy trả về mảng người dùng trong phản hồi của bạn.

app.get("/users", (req, res) => {
try {
res.status(200).json({
users
});
} catch (error) {
res.status(500).json({
message: "Failed to retrieve all users",
});
}
});

Nếu bạn kiểm tra tuyến đường này bằng cách sử dụng người đưa thư, bạn sẽ nhận được mảng người dùng trong nội dung phản hồi.


Ảnh chụp màn hình người đưa thư hiển thị phản hồi từ một yêu cầu GET tới một API REST

Để chỉ truy xuất một người dùng:

  • Lấy ID người dùng từ tham số URL.

  • Sử dụng tìm thấy() để xác định dữ liệu người dùng cụ thể nào bạn đang yêu cầu.

  • Trả lại người dùng trong phản hồi.

app.get("/users/:userID", (req, res) => {
const id = parseInt(req.params.userID);
console.log(id);
try {
let user = users.find((user) => user.id === id);
if (!user) {
return res.status(404).json({
message: "User not found",
});
}
res.status(200).json({
user,
});
} catch (error) {
res.status(500).json({
message: "Failed to retrieve user",
});
}
});

Cách cập nhật người dùng

Để cập nhật người dùng:

  • Lấy ID người dùng từ URL.

  • Sử dụng tìm thấy() để kiểm tra xem người dùng có tồn tại hay không.

  • Sử dụng Chỉ số() để lấy chỉ mục của người dùng đang được tham chiếu.

  • Sử dụng chỉ mục để chỉnh sửa dữ liệu người dùng với dữ liệu được gửi qua phần thân yêu cầu.

app.put("/users/:userID", (req, res) => {
try {
const id = parseInt(req.params.userID);
let user = users.find((user) => user.id === id);
if (!user) {
return res.status(404).json({
message: "User not found",
});
}
const userIDX = users.indexOf(user);
users[userIDX].name = req.body.name || users[userIDX].name;
users[userIDX].age = req.body.age || users[userIDX].age;
res.status(200).json({
message: "Successfully updated user",
user,
});
} catch (error) {
res.status(500).json({
message: "Failed to retrieve user",
});
}
});

Cách xóa người dùng

Bạn có thể chọn xóa một người dùng hoặc tất cả người dùng.

Để xóa một người dùng:

  • Truy xuất ID người dùng từ URL

  • Sử dụng tìm thấy() để kiểm tra xem người dùng có tồn tại hay không

  • Sử dụng findIndex () để lấy chỉ mục của người dùng đang được tham chiếu.

  • Sử dụng mối nối () để xóa người dùng tại chỉ mục đó.

app.delete("/users/:userID", (req, res) => {
try {
const id = req.params.userID;
let userIDX = users.findIndex((user) => user.id === id);
if (!userIDX) {
res.status(404).json({
message: "User not found",
});
}
users.splice(userIDX, 1);
res.status(200).json({
message: "Successfully deleted user",
users,
});
} catch (error) {
res.status(500).json({
message: "Failed to delete user",
});
}
});

Để xóa tất cả người dùng, hãy nối toàn bộ mảng.

app.delete("/users", (req, res) => {
try {
users.splice(0, users.length);
res.status(200).json({
message: "Successfully deleted all users",
users,
});
} catch (error) {
res.status(500).json({
message: "Failed to delete users",
x,
});
}
});

Tìm hiểu thêm về các API RESTful

Hướng dẫn này thảo luận về cách tạo một API RESTful cơ bản trong Node.JS. Bạn đã học cách tạo máy chủ Express, thiết lập các tuyến và cuối cùng, tạo các hàm xử lý tương tác với dữ liệu của bạn thông qua các yêu cầu / phản hồi HTTP.

Tuy nhiên, có một số chủ đề thiết yếu không được đề cập ở đây mà bạn nên nghiên cứu thêm, bao gồm cách kết nối ứng dụng của bạn với cơ sở dữ liệu như MongoDB và cách bảo mật các tuyến đường.


mongodb
Cách Cơ sở dữ liệu MongoDB có thể tổ chức dữ liệu của bạn tốt hơn

MongoDB (từ “humongous”) là một cơ sở dữ liệu hướng tài liệu đa nền tảng được sử dụng thay thế cho MySQL. Nhưng điều đó có nghĩa gì?

Đọc tiếp


Giới thiệu về tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *