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:
序号 | URI | HTTP 方法 | 发送内容 | 结果 |
---|---|---|---|---|
1 | listUsers | GET | 空 | 显示所有用户列表 |
2 | addUser | POST | JSON 字符串 | 添加新用户 |
3 | deleteUser | DELETE | JSON 字符串 | 删除用户 |
4 | :id | GET | 空 | 显示用户详细信息 |
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:
rreeePadam 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