Trong bối cảnh các ứng dụng web đang ngày càng trở nên phức tạp, sự xuất hiện của RESTful API trong NodeJS đã mang lại rất nhiều mặt lợi ích.
Trong bài viết này, chúng ta hãy cùng nhau tìm hiểu về RESTful API trong NodeJS và cách hoạt động. Đồng thời, tìm hiểu cách sử dụng RESTful API Stringee để tạo ra bộ API linh hoạt giúp hỗ trợ tích hợp các tính năng giao tiếp vào web nhanh chóng.
1. RESTful API trong NodeJS là gì?
Đầu tiên, ta cùng nhau hiểu về ý nghĩa của từ REST (Representational State Transfer). Về cơ bản REST là một kiến trúc dựa trên giao thức HTTP để có thể giúp thiết kế các ứng dụng web một cách tối ưu và hiệu quả. Mỗi thành phần của REST được coi là một tài nguyên và chúng sử dụng các phương thức HTTP tiêu chuẩn để có thể truy cập vào các tài nguyên trên. Kiến trúc này lần đầu được giới thiệu bởi Roy Fielding vào năm 2000.
Dựa trên nguyên tắc REST nói trên chúng ta có sự ra đời của RESTful API. Với bản chất là một API (Application Programming Interface), nó cung cấp các cách để truy cập và quản lý tài nguyên thông qua các phương thức HTTP. Mỗi URI xác định một tài nguyên và nó được biểu diễn bởi nhiều dạng như văn bản, JSON, XML,... hiện nay dữ liệu JSON vẫn đã và đang là kiểu dữ liệu được ưu thích và sử dụng phổ biến nhất.
- Các phương thức HTTP được sử dụng trong REST:
GET: Sử dụng để đọc dữ liệu từ tài nguyên. Ví dụ: Lấy thông tin người dùng.
PUT: Sử dụng để tạo mới tài nguyên. Ví dụ: Tạo một bản ghi người dùng mới.
DELETE: Sử dụng để xóa tài nguyên. Ví dụ: Xóa một người dùng.
POST: Sử dụng để cập nhật tài nguyên hiện có và tạo mới tài nguyên. Ví dụ: Cập nhật thông tin người dùng hoặc tạo một người dùng mới.
2. RESTful Web Service trong NodeJS là gì?
Trong các ngôn ngữ lập trình nói chung và NodeJS nói riêng thì chúng ta đều sẽ làm quen với khái niệm web service. Trong đó, một web service là một tập hợp các giao thức và chuẩn được sử dụng để trao đổi dữ liệu giữa các ứng dụng và hệ thống khác nhau. Với web service chúng ta có thể giúp các ứng dụng chạy trên nhiều ngôn ngữ hay nền tảng khác nhau có thể giao tiếp với nhau thông qua trao đổi dữ liệu qua mạng máy tính.
RESTful Web Service cũng như vậy, nó là một loại web service và được xây dựng trên kiến trúc REST. Thông qua phương thức HTTP các web service này triển khai kiến trúc REST. Với, một RESTful web service thường được định nghĩa bằng một URI (Uniform Resource Identifier), giống như một đường dẫn, để đại diện cho một dịch vụ.
>>> Xem thêm bài viết:
- Node.js là gì? Kiến thức tổng quan từ A-Z về Node.js
- Giải thích về Asynchronous trong JavaScript và cách thức hoạt động
- NestJS là gì? Tính năng hữu ích của NestJS đối với lập trình viên
3. Ví dụ về RESTful API trong NodeJS
Cách để hiểu được RESTful API là gì cũng như cách hoạt động của nó nhanh nhất là thông qua các ví dụ thực tế. Sau đây, ta hãy cùng nhau tìm hiểu cách áp dụng RESTful API trong NodeJS vào thực tế một cách trực quan.
3.1. Tạo một RESTful API trong NodeJS cho một thư viện
Sau đây, ta giả sử JSON dưới đây là thông tin của một thư viện trong thực tế:
{
"user_1": {
"id": 1,
"name": "Stringee",
"password": "password1",
"profession": "Người dùng",
},
"user_2": {
"id": 2,
"name": "StringeeX",
"password": "password2",
"profession": "Người dùng X",
},
"user_3": {
"id": 3,
"name": "StringeeY",
"password": "password3",
"profession": "Người dùng Y",
}
}
Với dữ liệu cơ bản trên cũng như kết hợp với chuẩn RESTful API trong NodeJS ta có các RESTful API cần được xây dựng như sau:
listUsers
: Sử dụng phương thức GET để hiển thị danh sách người dùng.addUser
: Sử dụng phương thức POST để thêm một người dùng mới.deleteUser
: Sử dụng phương thức DELETE để xóa một người dùng.:id
: Sử dụng phương thức GET để hiển thị thông tin chi tiết của một người dùng.
3.2. Liệt kê người dùng
Ở đây ta giả sử tên API sẽ là listUsers
, và mã nguồn tương tự như sau:
var express = require('express');
var app = express();
var fs = require("fs");
app.get('/listUsers', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
console.log(data);
res.end(data);
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Ung dung dang lang nghe tai: http://%s:%s", host, port)
})
Khi truy cập API này bằng cách sử dụng. http://localhost:8081/listUsers
hoặc http://127.0.0.1:8081/listUsers
trên máy tính cục bộ, bạn sẽ nhận được danh sách người dùng.
3.3. Thêm người dùng mới
Với API addUser
chúng ta có thể thực hiện chức năng thêm mới để thêm user và cơ sở dữ liệu. Ta có ví dụ sau:
var express = require('express');
var app = express();
var fs = require("fs");
var user = {
"user_4": {
"id": 4,
"name": "StringeeZ",
"password": "password4",
"profession": "Người dùng Z",
}
}
app.get('/addUser', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
data = JSON.parse(data);
data["user_4"] = user["user_4"];
console.log(data);
res.end(JSON.stringify(data));
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Ung dung dang lang nghe tai: http://%s:%s", host, port)
})
3.4. Hiển thị thông tin của người dùng
API :id có thể được triển khai để hiển thị thông tin chi tiết của một người dùng dựa trên ID. Dưới đây là ví dụ:
var express = require('express');
var app = express();
var fs = require("fs");
app.get('/:id', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
users = JSON.parse(data);
var user = users["user_" + req.params.id];
console.log(user);
res.end(JSON.stringify(user));
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Ung dung dang lang nghe tai: http://%s:%s", host, port)
})
3.5. Xóa người dùng
Cuối cùng, API deleteUser có thể được triển khai để xóa một người dùng dựa trên ID. Dưới đây là ví dụ:
var express = require('express');
var app = express();
var fs = require("fs");
var id = 2;
app.get('/deleteUser', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
data = JSON.parse(data);
delete data["user_" + 2];
console.log(data);
res.end(JSON.stringify(data));
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Ung dung dang lang nghe tai: http://%s:%s", host, port)
})
4. Hỗ trợ tích hợp các tính năng giao tiếp nhanh chóng với Stringee APIs
Phía trên, chúng ta có nói về việc Stringee đã sử dụng RESTful API trong NodeJS. Stringee giúp cho các nhà phát triển có thể dễ dàng tích hợp các tính năng giao tiếp vào các ứng dụng web và di động một cách nhanh chóng và dễ dàng hơn. Hãy cùng tìm hiểu cụ thể xem giải pháp này mang lại lợi ích gì cho các nhà phát triển nhé.
4.1. Dễ dàng tích hợp
Stringee cung cấp các SDK và API dễ sử dụng cho nhiều ngôn ngữ lập trình, trong đó có JavaScript. Điều này cho phép bạn tích hợp các tính năng giao tiếp vào ứng dụng của mình chỉ trong vài bước đơn giản. Hãy xem một ví dụ cụ thể về cách tích hợp cuộc gọi thoại vào ứng dụng web bằng Stringee và JavaScript:
// Khởi tạo StringeeClient
var stringeeClient = new Stringee.Client({ token: 'YOUR_ACCESS_TOKEN' });
// Khi người dùng nhấn nút để gọi
function makeCall() {
// Tạo cuộc gọi
var call = stringeeClient.call('USER_ID_OR_PHONE_NUMBER');
// Xử lý sự kiện khi cuộc gọi được chấp nhận hoặc kết thúc
call.on('addStream', function (data) {
var remoteStream = data.stream;
// Hiển thị luồng âm thanh và hình ảnh từ người gọi
});
// Gửi cuộc gọi
call.makeCall();
}
Với các dòng mã như trên, bạn đã tích hợp chức năng gọi thoại vào ứng dụng web của mình một cách nhanh chóng.
4.2. Tích hợp đa nền tảng
Stringee không chỉ hỗ trợ tích hợp vào các ứng dụng web mà còn hỗ trợ tích hợp vào các ứng dụng di động trên nhiều nền tảng như iOS và Android. Điều này cho phép bạn đạt được một lượng lớn người dùng trên các thiết bị khác nhau và tạo trải nghiệm đồng nhất trên cả các nền tảng này.
4.3. Bảo mật và đáng tin cậy
Stringee đảm bảo tính bảo mật và đáng tin cậy của thông tin giao tiếp trong ứng dụng của bạn. Dữ liệu giao tiếp qua Stringee được mã hóa và bảo vệ bằng các biện pháp bảo mật tiên tiến để đảm bảo sự riêng tư của người dùng. Hãy xem một ví dụ về việc thiết lập một cuộc gọi bảo mật bằng Stringee:
// Khởi tạo StringeeClient với mã token đã mã hóa
var stringeeClient = new Stringee.Client({ token: 'ENCRYPTED_ACCESS_TOKEN' });
// Khởi tạo cuộc gọi bảo mật
var call = stringeeClient.call('USER_ID_OR_PHONE_NUMBER', true);
// Xử lý sự kiện khi cuộc gọi được chấp nhận hoặc kết thúc
call.on('addStream', function (data) {
var remoteStream = data.stream;
// Hiển thị luồng âm thanh và hình ảnh từ người gọi
});
// Gửi cuộc gọi
call.makeCall();
Stringee giúp bạn xây dựng các tính năng giao tiếp an toàn và đáng tin cậy trong ứng dụng của bạn.
4.4. Hỗ trợ nhiều tính năng giao tiếp
Ngoài cuộc gọi thoại, Stringee còn hỗ trợ nhiều tính năng giao tiếp khác như tin nhắn và video call. Bạn có thể tích hợp tất cả các tính năng này vào ứng dụng của mình thông qua Stringee một cách dễ dàng.
4.5. Đầy đủ tài liệu và hỗ trợ cộng đồng
Stringee cung cấp tài liệu hướng dẫn chi tiết và sự hỗ trợ từ cộng đồng. Bạn có thể tìm thấy hướng dẫn sử dụng, ví dụ mã, và câu hỏi thường gặp trên trang web của Stringee để giúp bạn giải quyết mọi vấn đề tích hợp.
Ví dụ: Tích hợp Chat trong Ứng dụng Web bằng Stringee
Dưới đây là một ví dụ về cách tích hợp tính năng chat vào ứng dụng web bằng Stringee và JavaScript:
// Khởi tạo StringeeClient
var stringeeClient = new Stringee.Client({ token: 'YOUR_ACCESS_TOKEN' });
// Khi người dùng nhấn nút để gửi tin nhắn
function sendMessage() {
var conversationId = 'CONVERSATION_ID';
var messageContent = 'Hello, how are you?';
// Tạo một tin nhắn và gửi nó
var message = stringeeClient.createMessage(conversationId, messageContent);
// Gửi tin nhắn
message.send(function (res) {
if (res.code === 0) {
console.log('Tin nhắn đã được gửi thành công.');
} else {
console.log('Lỗi khi gửi tin nhắn: ' + res.message);
}
});
}
Với các dòng mã như trên, bạn đã tích hợp tính năng chat vào ứng dụng web của mình sử dụng Stringee.
Tóm lại, Stringee là một nền tảng mạnh mẽ cho phép bạn tích hợp các tính năng giao tiếp vào ứng dụng của mình một cách nhanh chóng và đáng tin cậy. Điều này giúp bạn cung cấp trải nghiệm người dùng tốt hơn và tiết kiệm thời gian phát triển ứng dụng.
Tổng kết
Như vậy, RESTful API và NodeJS đã trở thành một công cụ mạnh mẽ cho việc phát triển các ứng dụng web hiệu quả và tiết kiệm thời gian. Việc hiểu cách sử dụng chúng có thể giúp bạn xây dựng các dịch vụ web tùy chỉnh và tích hợp các tính năng giao tiếp đáng tin cậy vào ứng dụng của mình.
Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…
Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: