Phần 15: NodeJS – RESTful API – NodeJS căn bản cho người mới bắt đầu

Phần  15: NodeJS – RESTful API                        – NodeJS căn bản cho người mới bắt đầu

 

Kiến trúc REST là gì?

REST là viết tắt của Representational State Tranfer. REST là 1 chuẩn internet dựa vào các kiến trúc căn bản sử dụng giao thức HTTP. Nó xử lí tài nguyên, nơi mà mỗi thành phần là 1 tài nguyên và tài nguyên này có thể được truy cập qua các giao diện chung do sử dụng những phương thức HTTP chuẩn. REST lần đầu được giới thiệu do Roy Fielding năm 2000.
Về căn bản, 1 REST Server cung cấp những chế độ truy cập tới tài nguyên và REST Client truy cập và chỉnh sửa các tài nguyên này do sử dụng phương thức HTTP. Tại đây mỗi tài nguyên được xác định do 1 URI. REST sử dụng những cách biểu diễn khác nhau để biểu diễn các tài nguyên như textual content, JSON, XML nhưng thông dụng nhất vẫn đang là JSON.

Phương thức HTTP được dùng trong REST

Dưới đây chính là những phương thức HTTP được dùng rộng rãi trong kiến trúc REST .
  • GET − Được dùng chỉ để đọc các tài nguyên.
  • PUT − Được sử đụng để tạo mới các tài nguyên.
  • DELETE − Được dùng để xóa các tài nguyên.
  • POST − Được dùng để update những bản ghi hiện giờ và tạo mới tài nguyên

RESTful Web Service

1 internet service là 1 tập hợp những giao thức và chuẩn được dùng cho mục đích trao đối giữa ứng dụng và hệ thống. Những ứng dụng phần mềm được viết do các ngôn ngữ khác và chạy do những nền tảng khác nhau có thể sử dụng internet service để trao đổi dữ liệu qua mạng máy tính như web theo những cách giống nhau như trao đổi trên 1 máy tính.
Web service dựa trên những kiến trúc REST được biết như RESTful webservice . Những webservice này sử dụng phương thức HTTP để triển khai các định nghĩa kiến trúc REST. 1 RESTful internet service thường được định nghĩa 1 URI (kiểu như link), Uniform Resource Identifier như 1 service (dịch vụ).

Tạo RESTful cho 1 thư viện

Giả sử ta có 1 cơ sở dữ liệu dựa vào JSON chứa các thông tin về User, tên file là customers.json:
{
    "user1" : ,
    "user2" : ,
    "user3" : 
 }
Dựa vào những thông tin căn bản này, ta sẽ cung cấp các RESTful API dưới đây:
SttURIPhương thức HTTPPOST bodyKết quả1listUsersGETemptyHiển thị danh sách user2addUserPOSTJSON StringThêm 1 person mới3deleteUserDELETEJSON StringXóa 1 person hiện giờ.4:idGETemptyHiển thị chi tiết 1 person

List User

Chúng ta cùng triển khai RESTful API đầu tiên có tên listingUsers do sử dụng đoạn mã dưới đây:
var categorical = require('categorical');
var app = categorical();
var fs = require("fs");

app.get('/listingUsers', perform (req, res) {
   fs.readFile( __dirname + "/" + "customers.json", 'utf8', perform (err, information) );
})

var server = app.pay attention(8081, perform () 
   var host = server.tackle().tackle
   var port = server.tackle().port
   console.log("Example app listening at http://%s:%s", host, port)
)
Hiện tại thử truy cập API được định nghĩa trên do sử dụng http://127.0.0.1:8081/listingUsers trên PC native. Nó sẽ cho ra kết quả dưới đây:
{
   "user1" : ,
   
   "user2" : 
      "identify" : "suresh",
      "password" : "password2",
      "career" : "librarian",
      "id": 2
   ,
   
   "user3" : 
}
API sau nêu ra cách thêm 1 User mới vào danh sách. Dưới đây chính là thông tin của User mới:
person = {
   "user4" : 
      "identify" : "mohit",
      "password" : "password4",
      "career" : "trainer",
      "id": 4
   
}
Bạn sẽ có thể sử dụng Ajax để thực hiện việc này, nhưng để đơn giản ta sẽ arduous code tại đây. Dưới đây chính là phương thức addUser API để thêm 1 person mới trong cơ sở dữ liệu.
var categorical = require('categorical');
var app = categorical();
var fs = require("fs");

var person = {
   "user4" : 
      "identify" : "mohit",
      "password" : "password4",
      "career" : "trainer",
      "id": 4
   
}

app.put up('/addUser', perform (req, res) {
   // First learn current customers.
   fs.readFile( __dirname + "/" + "customers.json", 'utf8', perform (err, information) 
      information = JSON.parse( information );
      information["user4"] = person["user4"];
      console.log( information );
      res.finish( JSON.stringify(information));
   );
})

var server = app.pay attention(8081, perform () 
   var host = server.tackle().tackle
   var port = server.tackle().port
   console.log("Example app listening at http://%s:%s", host, port)
)
Hiện tại thử truy cập API trên do sử dụng http://127.0.0.1:8081/addUsers trên PC native. Kết quả sẽ được hiện ra như dưới đây:
{
   "user1":"identify":"mahesh","password":"password1","career":"trainer","id":1,
   "user2":,
   "user3":,
   "user4":
}

Hiển thị thông in của User

Hiện tại cùng triển khai 1 API mà gọi tới userID để hiển thị chi tiết thông tin User tương ứng.
var categorical = require('categorical');
var app = categorical();
var fs = require("fs");

app.get('/:id', perform (req, res) {
   // First learn current customers.
   fs.readFile( __dirname + "/" + "customers.json", 'utf8', perform (err, information) 
      var customers = JSON.parse( information );
      var person = customers["user" + req.params.id] 
      console.log( person );
      res.finish( JSON.stringify(person));
   );
})

var server = app.pay attention(8081, perform () 
   var host = server.tackle().tackle
   var port = server.tackle().port
   console.log("Example app listening at http://%s:%s", host, port)
)
Tiếp đó, bạn gọi service trên do sử dụng địa chỉ http://127.0.0.1:8081/2 trên PC native. Kết quả sẽ như dưới đây:
 "identify":"manh", "password":"password2", "career":"giangvien", "id":2

Xóa User

API này giống nhau như addUser API, ở đây bạn sẽ có thể nhận 1 dữ liệu đầu vào qua req.physique và rồi dựa vào userID để xóa User đó khỏi Database. Để đơn giản, ví dụ ta xóa person có ID là 2.
var categorical = require('categorical');
var app = categorical();
var fs = require("fs");

var id = 2;

app.delete('/deleteUser', perform (req, res) {
   // First learn current customers.
   fs.readFile( __dirname + "/" + "customers.json", 'utf8', perform (err, information) 
      information = JSON.parse( information );
      delete information["user" + 2];
       
      console.log( information );
      res.finish( JSON.stringify(information));
   );
})

var server = app.pay attention(8081, perform () 
   var host = server.tackle().tackle
   var port = server.tackle().port
   console.log("Example app listening at http://%s:%s", host, port)
)
Gọi service trên do sử dụng http://127.0.0.1:8081/deleteUser trên máy native . Nó sẽ cho ra kết quả dưới đây:
{"user1":"identify":"mahesh","password":"password1","career":"trainer","id":1,
"user3":}

 

 

admin

Leave a Reply

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