API RESTful Node.js


Apa itu REST?

REST (Bahasa Inggeris: Representational State Transfer, dirujuk sebagai REST) ​​​​adalah gaya seni bina perisian yang dicadangkan oleh Dr. Roy Fielding dalam tesis kedoktorannya pada tahun 2000.

Peralihan keadaan perwakilan ialah satu set kekangan dan prinsip seni bina. Aplikasi atau reka bentuk yang memenuhi kekangan dan prinsip ini adalah RESTful. Adalah penting untuk ambil perhatian bahawa REST ialah gaya reka bentuk dan bukan standard. REST biasanya berdasarkan protokol dan piawaian popular sedia ada menggunakan HTTP, URI dan XML (subset Bahasa Penanda Umum Standard) dan HTML (aplikasi Bahasa Penanda Umum Standard). REST biasanya menggunakan format data JSON.

Kaedah HTTP

Berikut ialah empat kaedah seni bina asas REST:


  • GET - digunakan untuk mendapatkan data.

  • PUT - digunakan untuk menambah data.

  • DELETE - digunakan untuk memadam data.

  • POST - digunakan untuk mengemas kini atau menambah data.


Perkhidmatan Web RESTful

Perkhidmatan web ialah aplikasi berasaskan web bebas platform, gandingan rendah, serba lengkap, boleh diprogramkan yang boleh Menggunakan XML terbuka (subset Standard Generalized Markup Language) standard untuk menerangkan, menerbitkan, menemui, menyelaras dan mengkonfigurasi aplikasi ini untuk pembangunan aplikasi yang diedarkan dan saling kendali.

Perkhidmatan Web berdasarkan seni bina REST adalah RESTful.

Pendekatan RESTful kepada perkhidmatan web telah menjadi alternatif yang paling biasa kerana sifatnya yang ringan dan keupayaan untuk memindahkan data terus melalui HTTP. Pelanggan boleh dilaksanakan menggunakan pelbagai bahasa, seperti Javascript, Perl, Ruby, Python, PHP dan Javascript [termasuk Ajax].

Perkhidmatan web yang tenang biasanya diakses melalui pelanggan atau aplikasi automatik bagi pihak pengguna. Walau bagaimanapun, kesederhanaan perkhidmatan ini membolehkan pengguna berinteraksi dengannya secara langsung, menggunakan pelayar web mereka untuk membina URL GET dan membaca kandungan yang dikembalikan.

Untuk pengenalan lanjut, anda boleh melihat: Penjelasan terperinci tentang seni bina RESTful


Mencipta RESTful

Pertama, cipta fail sumber data json users.json , kandungannya adalah seperti berikut:

{
   "user1" : {
      "name" : "mahesh",
	  "password" : "password1",
	  "profession" : "teacher",
	  "id": 1
   },
   "user2" : {
      "name" : "suresh",
	  "password" : "password2",
	  "profession" : "librarian",
	  "id": 2
   },
   "user3" : {
      "name" : "ramesh",
	  "password" : "password3",
	  "profession" : "clerk",
	  "id": 3
   }
}

Berdasarkan data di atas, kami mencipta API RESTful berikut:

序号URIHTTP 方法发送内容结果
1listUsersGET显示所有用户列表
2addUserPOSTJSON 字符串添加新用户
3deleteUserDELETEJSON 字符串删除用户
4:idGET显示用户详细信息

Dapatkan senarai pengguna:

Dengan kod berikut, kami mencipta RESTful API listUsers, yang digunakan untuk membaca senarai maklumat pengguna Kod fail server.js adalah sebagai berikut:

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("应用实例,访问地址为 http://%s:%s", host, port)

})

Seterusnya laksanakan arahan berikut:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

Lawati http://127.0.0.1:8081/listUsers dalam penyemak imbas, hasilnya adalah seperti berikut:

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

Tambah pengguna

Dengan kod berikut, kami mencipta RESTful API addUser, yang digunakan untuk menambah data pengguna baharu Kod fail server.js adalah seperti berikut:

var express = require('express');
var app = express();
var fs = require("fs");

//添加的新用户数据
var user = {
   "user4" : {
      "name" : "mohit",
      "password" : "password4",
      "profession" : "teacher",
      "id": 4
   }
}

app.get('/addUser', function (req, res) {
   // 读取已存在的数据
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       data["user4"] = user["user4"];
       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("应用实例,访问地址为 http://%s:%s", host, port)

})

Seterusnya laksanakan arahan berikut:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

Akses http://127.0.0.1:8081/addUser dalam penyemak imbas, hasilnya adalah seperti berikut:

{ user1:
   { name: 'mahesh',
     password: 'password1',
     profession: 'teacher',
     id: 1 },
  user2:
   { name: 'suresh',
     password: 'password2',
     profession: 'librarian',
     id: 2 },
  user3:
   { name: 'ramesh',
     password: 'password3',
     profession: 'clerk',
     id: 3 },
  user4:
   { name: 'mohit',
     password: 'password4',
     profession: 'teacher',
     id: 4 } 
}

Paparkan butiran pengguna

Kod berikut, kami cipta API RESTful :id (id pengguna) digunakan untuk membaca maklumat terperinci pengguna yang ditentukan Kod fail server.js adalah seperti berikut:

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) {
       data = JSON.parse( data );
       var user = data["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("应用实例,访问地址为 http://%s:%s", host, port)

})

Seterusnya, laksanakan arahan berikut:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

Akses http://127.0.0.1:8081/2 dalam penyemak imbas, hasilnya adalah seperti berikut:

rreee

Padam pengguna

Dengan kod berikut, kami mencipta RESTful API deleteUser digunakan untuk memadamkan butiran pengguna yang ditentukan Dalam contoh berikut, id pengguna ialah 2 dan fail server.js kod adalah seperti berikut:

{
   "name":"suresh",
   "password":"password2",
   "profession":"librarian",
   "id":2
}

Seterusnya, laksanakan arahan berikut:

var express = require('express');
var app = express();
var fs = require("fs");

var id = 2;

app.get('/deleteUser', function (req, res) {

   // First read existing users.
   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("应用实例,访问地址为 http://%s:%s", host, port)

})

Akses http://127.0.0.1:8081/deleteUser dalam penyemak imbas, hasilnya adalah seperti berikut:

rreeee