理解RESTful架构与json-server模拟REST api的基本使用

675 阅读2分钟

一、什么是RESTful架构?

REST即Representational State Transfer的缩写,我们把他翻译为表述性状态传递,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性

当然我们把一个符合这种REST风格的架构就叫做RESTful风格

二、理解REST本身的意义

1.Representational表现层
我们把"资源"具体呈现出来的形式,叫做它的"表现层"
我们可以用URI(统一资源定位符)指向"资源",URI只代表"资源"的位置,它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述

2.State Transfer状态转化
访问一个网站就要涉及客户端与服务器端的互动,同时也肯定要涉及数据与状态的变化。网站后端提供资源查询服务的,一切皆资源,服务器保存资源,客户端请求资源。
HTTP是个无状态的协议,所以状态就保存在服务器端。所以此时客户端想要操作服务器端,就必须引起服务器端的State Transfer(状态转化),这就需要一些手段。

客户端操作引起服务器端的State Transfer手段一般有以下四种
HTTP动词 操作
GET 用来获取资源
POST 新建资源
PUT 更新资源
DELETE 删除资源

三、使用json-server模拟REST API(接口)

在开发过程中, 前后端分离, 接口多半是滞后于页面开发所以需要建立一个REST风格的API接口, 给前端页面提供,虚拟的数据,是非常必要的。json-server只要少量的数据就可使用,支持cors 和jsonp。同时支持get post put delete patch,同时提供一系列的查询方法如limit order。

1.配置环境yarn add global json-server(npm install json-server -g )

2.json数据

3.json-server的使用
我比较喜欢使用Postman(Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件),
在命令行中进入当前文件夹输入npm run server
(1).选择操作

(2).GET操作(读取id= 1 的comments)

(3).POST操作(新建id= 2 的comments)
对应的db.json中的数据

"comments": [
    {
      "body": "Hello laowang",
      "id": 1
    },
    {
      "body": "Hello json-server",
      "id": 2
    }
  ]

(4). PUT操作(更新id= 2 的comments)

 "comments": [
    {
      "body": "Hello laowang",
      "id": 1
    },
    {
      "body": "Hello update",
      "id": 2
    }
  ],

(5). DELETE操作(删除id= 2 的comments)

"comments": [
    {
      "body": "Hello laowang",
      "id": 1
    }
  ]