美文网首页全栈开发
Node.js教程(05)|RESTful API

Node.js教程(05)|RESTful API

作者: 夏海峰 | 来源:发表于2019-07-19 23:13 被阅读79次
什么是 REST ?

REST表述性状态传递(Representational State Transfer,简称REST),是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。

表述性状态转移(REST)是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML 以及HTML这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式

以下为 REST 架构的四个基本方法:

  • GET - 用于获取数据。
  • PUT - 用于更新或添加数据。
  • DELETE - 用于删除数据。
  • POST - 用于添加数据。
什么是 RESTful ?

Web Service是一个独立于平台的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

基于 REST 架构的 Web Services 即是 RESTful

由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。

RESTful Web Service 通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。

更多关于RESTful API 的理论学习:RESTful 架构详解

创建 RESTful API
var express = require('express')
var fs = require('fs')
var app = express()

// 方法封装:读取文件中的JSON数据
var readUser = function(callback) {
    fs.readFile(__dirname + '/data/users.json', 'utf8', function(err, data) {
        callback && callback(JSON.parse(data))
    })
}
// 查询所有用户
app.get('/listUsers', function(req, res) {
    readUser(function(data) {
        res.end(JSON.stringify(data))
    })
})
// 添加用户
app.get('/addUser', function(req, res) {
    readUser(function(data) {
        var id = Date.now()
        var newUser = {
            id: id,
            name: 'geek'+id,
            age: 40
        }
        data['user'+id] = newUser
        res.end(JSON.stringify(data))
    })
})
// 获取指定用户信息
app.get('/getUser/:id', function(req, res) {
    readUser(function(data) {
        var user = data['user'+req.params.id]
        res.end(JSON.stringify(user))
    })
})
// 删除指定用户
app.get('/deleteUser/:id', function(req, res) {
    readUser(function(data) {
        delete data['user'+req.params.id]
        res.end(JSON.stringify(data))
    })
})

var server = app.listen('8989', '127.0.0.1', function() {
    var host = server.address().address
    var port = server.address().port
    console.log('server is running on http://%s:%s', host, port)
})
/listUsers /getUser/2 /addUser /deleteUser/1


Node.js完整教程 第05篇 结束!

相关文章

网友评论

    本文标题:Node.js教程(05)|RESTful API

    本文链接:https://www.haomeiwen.com/subject/wnzslctx.html