Node.js สงบ API
ส่วนที่เหลือคืออะไร?
ส่วนที่เหลือ Representational รัฐโอนเงิน (อังกฤษ: Representational การโอนรัฐที่เรียกว่า REST) นำเสนอโดยดร. รอยฟีลดิงในวิทยานิพนธ์ปริญญาเอกของเขาในปี 2000 รูปแบบของสถาปัตยกรรมซอฟต์แวร์
ดำเนินการโอนเงินของรัฐคือชุดของข้อ จำกัด ทางด้านสถาปัตยกรรมและหลักการ พบกับข้อ จำกัด เหล่านี้และหลักการของการออกแบบหรือแอปพลิเคสงบ โปรดทราบว่าส่วนที่เหลือเป็นรูปแบบมากกว่ามาตรฐาน ส่วนที่เหลือเป็นไปตามปกติในการใช้ HTTP, URI และ XML (เป็นส่วนหนึ่งของมาตรฐานทั่วไป Markup Language ใต้) และ HTML (การประยุกต์ใช้ภายใต้มาตรฐานทั่วไป Markup Language) เหล่านี้ที่มีอยู่อย่างแพร่หลายโปรโตคอลและมาตรฐาน ส่วนที่เหลือจะใช้รูปแบบข้อมูล JSON
วิธี HTTP
สี่ต่อไปนี้วิธีการขั้นพื้นฐานสถาปัตยกรรมพัก:GET - ใช้ในการดึงข้อมูล
PUT - ใช้ในการเพิ่มข้อมูล
ลบ - ลบข้อมูล
Post - ใช้ในการปรับปรุงหรือเพิ่มข้อมูล
บริการเว็บสงบ
บริการเว็บเป็นคู่หลวมตนเองมีใช้งานบนเว็บแพลตฟอร์มโปรแกรมที่คุณสามารถใช้ Open XML (เป็นส่วนหนึ่งของมาตรฐานทั่วไป Markup Language ใต้) มาตรฐานที่จะอธิบายเผยแพร่, ค้นพบ, การประสานงาน และกำหนดค่าการใช้งานเหล่านี้สำหรับการพัฒนาโปรแกรมการกระจายการทำงานร่วมกัน
ส่วนที่เหลือตามสถาปัตยกรรม Web Services ที่เป็นสงบ
เนื่องจากการถ่ายโอนที่มีน้ำหนักเบาและตรงผ่านข้อมูลลักษณะ HTTP, วิธีการบริการเว็บสงบได้กลายเป็นทางเลือกที่พบมากที่สุด คุณสามารถใช้ความหลากหลายของภาษา (เช่นโปรแกรม Java, Perl, Ruby, Python, PHP และ Javascript [รวมทั้งอาแจ็กซ์]) เพื่อให้บรรลุลูกค้า
บริการเว็บสงบมักจะสามารถเข้าถึงได้ผ่านทางลูกค้าโดยอัตโนมัติหรือในนามของแอพลิเคชันของผู้ใช้ แต่ความเรียบง่ายนี้ช่วยให้ผู้ใช้บริการในการติดต่อโดยตรงกับพวกเขาโดยใช้เว็บเบราเซอร์ของพวกเขาในการสร้าง URL GET และอ่านผลตอบแทน
รายงานเพิ่มเติมคุณสามารถดู: สถาปัตยกรรมสงบความคิดเห็น
สร้างสงบ
ขั้นแรกให้สร้าง users.json JSON แฟ้มข้อมูลทรัพยากรอ่านดังนี้
{ "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 } }
จากข้อมูลดังกล่าวข้างต้นเราได้สร้างสงบ API ต่อไปนี้:
เลขที่ | URI | วิธี HTTP | ส่งเนื้อหา | ผล |
---|---|---|---|---|
1 | ListUsers | GET | ว่างเปล่า | แสดงรายการของผู้ใช้ทั้งหมด |
2 | adduser | โพสต์ | สตริง JSON | เพิ่มผู้ใช้ใหม่ |
3 | deleteUser | ลบ | สตริง JSON | ลบผู้ใช้ |
4 | ผู้ใช้: Id | GET | ว่างเปล่า | รายละเอียดผู้ใช้งานแสดง |
ได้รับรายชื่อผู้ใช้:
รหัสต่อไปนี้เราจะสร้าง ListUsersสงบ API สำหรับการอ่านข้อมูลรายชื่อผู้ใช้รหัสไฟล์ server.js เป็นดังนี้:
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) })
แล้วรันคำสั่งต่อไปนี้:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
การเข้าถึงในเบราว์เซอร์ http://127.0.0.1:8081/listUsers ผลมีดังนี้
{ "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 } }
เพิ่มผู้ใช้
รหัสต่อไปนี้เราจะสร้าง adduserสงบ API ที่ใช้ในการเพิ่มข้อมูลผู้ใช้ใหม่รหัสไฟล์ server.js เป็นดังนี้:
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) })
แล้วรันคำสั่งต่อไปนี้:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
การเข้าถึงในเบราว์เซอร์ http://127.0.0.1:8081/addUser ผลมีดังนี้
{ 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 } }
รายละเอียดผู้ใช้งานแสดง
รหัสต่อไปนี้เราจะสร้างสงบ API: ID (User ID)ระบุรายละเอียดสำหรับผู้ใช้ในการอ่านรหัสไฟล์ server.js เป็นดังนี้:
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) })
แล้วรันคำสั่งต่อไปนี้:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
การเข้าถึงในเบราว์เซอร์ http://127.0.0.1:8081/2 ผลมีดังนี้
{ "name":"suresh", "password":"password2", "profession":"librarian", "id":2 }
ลบผู้ใช้
รหัสต่อไปนี้เราจะสร้าง deleteUserสงบ API ข้อมูลรายละเอียดสำหรับผู้ใช้ที่ระบุในการลบตัวอย่างต่อไปนี้ ID ผู้ใช้คือ 2 รหัสไฟล์ server.js เป็นดังนี้:
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) })
แล้วรันคำสั่งต่อไปนี้:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
การเข้าถึงในเบราว์เซอร์ http://127.0.0.1:8081/deleteUser ผลมีดังนี้
{ user1: { name: 'mahesh', password: 'password1', profession: 'teacher', id: 1 }, user3: { name: 'ramesh', password: 'password3', profession: 'clerk', id: 3 } }