Nodejs之Restful Api

认识Restful Api

Rest

  • Rest即表述性状态传递,Representational State Transfer的简称;
  • Rest是一种软件架构风格;
  • Rest是一组架构约束条件和原则;
  • REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准
  • REST 通常使用 JSON 数据格式。

REST是设计风格而不是标准

Restful

  • 满足这些约束条件和原则的应用程序或设计就是RESTful;

总结REST有两个最重要的原则:
1.分离性;交互的客户端和服务器除了RESTful-API没有其他的依赖关系,限制了整个系统的复杂性,促进了各个部分的独立性。
2.无状态性:客户端和服务器之间的交互在请求之间是无状态的,从客户端到服务器的每个请求都必须包含理解请求所必需的信息。基于 REST 架构的 Web Services 即是 RESTful。

Restful Api

满足上面规范的API接口就是RESTful-API。客户端常常通过HTTP方法(GET、POST、PUT、DELETE等),来发送API请求;服务端常常以JSON数据作为响应。

REST 基本架构的四个HTTP方法:
  • GET - 用于获取数据。

  • PUT - 用于更新或添加数据。

  • DELETE - 用于删除数据。

  • POST - 用于添加数据

高效率的RESTful请求都倾向于使用HTTP GET方法。GET请求的所有信息都携带在请求地址url中。在Node.js里读取request.url可以获得请求的url,我们需要对不同的url做路由处理,返回不同的响应数据

Example

  1. 创建Restful
    首先,创建一个 json 数据资源文件 users.json,内容如下:
{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   }
  1. 创建 RESTful 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 user = {
   	"user4" : {
     		 "name" : "mohit",
     		 "password" : "password4",
     		 "profession" : "teacher",
     		 "id": 4
 	  }
}
//添加新用户
app.get('/User++', 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));
   	});
})
//删除用户
app.get('/User--', 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));
   	});
})
//显示用户详情

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().por;
  	console.log("应用实例,访问地址为 http://%s:%s", host, port);
}). 
注意

‘/:id’页面回调函数的定义放在最后,否则会影响其他页面,因为其他页面通配‘/:id’。

运行方式:node rest.js

在浏览器中访问 http://127.0.0.1:8081/listUsers ——获取用户列表
在这里插入图片描述
在浏览器中访问 http://127.0.0.1:8081/addUser ——添加user4
在这里插入图片描述
在浏览器中访问 http://127.0.0.1:8081/deleteUser ——删除user2
在这里插入图片描述
在浏览器中访问 http://127.0.0.1:8081/2 ——显示user2
在这里插入图片描述

Restful架构详解

猜你喜欢

转载自blog.csdn.net/jolieLi2019888/article/details/88837142