比较 mock、json-server、graphQL

mock.js

  1. 安装
# cnpm i mockjs
  1. 基本使用
const Mock=require('mockjs)
Mock.mock('http://a.com/num', 'post', {
    "number|1-100": 100
})

Mock.mock('http://a.com/type',function(options) {
    return options.type
}))

现在就可以拦截请求返回 mock 数据了,post 请求'http://a.com/num'返回1-100随机数,请求'http://a.com/type'返回当前请求类型

  1. 缺点:
  • 不及 json-server 使用方便
  • 不能跨域使用
  • 无法定义复杂结构

具体请看官方文档

json-server

  1. 安装
# cnpm i json-server -g
  1. 启动
    在项目文件根目录新建一个 json 文件,例如
{
    "data": [{
            "name": "张三",
            "age": 12,
            "id": 0
        },
        {
            "name": "李是",
            "age": 22,
            "id": 1
        },
        {
            "name": "王五",
            "age": 14,
            "id": 2
        }
    ]
}
# json-server db.json -p 3001
  1. 访问 localhost:3001 就可访问并操作数据了
GET /data 获取所有数据
GET /data/1 获取id为1的数据
DELETE /data/1 删除id为1的数据
POST /data 新增数据,请求body中必须包含data的属性数据
PUT /data/1 修改数据,请求body中必须包含data的属性数据
PATCH /data/1 修改数据,请求body中必须包含data的属性数据
GET /data?age_gte=10 获取age大于等于10的数据
GET /data?_sort=age&_order=asc 根据age升序排序

更多操作请看官方文档

graphQL

(这里我们结合 express 来运行 graphQL)

cnpm install express express-graphql graphql
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
var app = express();

let listData = [{
        "name": "张三",
        "age": 12,
        "id": 0
    },
    {
        "name": "李是",
        "age": 22,
        "id": 1
    }, {
        "name": "王五",
        "age": 14,
        "id": 2
    }
]

var schema = buildSchema(`
  type Item {
    name: String,
    age: Int,
    id: Int,
  }

  type Query{
      list: [Item]
  }
`);

var root = { list: listData };

app.use('/graphql', graphqlHTTP({
    schema: schema,
    rootValue: root,
    graphiql: true,
}));

app.listen(4000, () => console.log('Now browse to localhost:4000/graphql'));

现在我们在打开的 graphQL 中输入

query{
   list{
        id,
    name,
    age
  }
}

就会返回数据了, 这里的数据是自己写的假数据,和 json-server 搭配食用最佳哟

更多操作请看官方文档

听说 APIJSON 也不错官方文档

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,003评论 3 119
  • 读的什么书:《怦然心动的人生整理魔法1》 阅读有效时间:1小时,笔记1小时 阅读中遇到了什么困难:这本书是实践类的...
    麦麦_growing阅读 301评论 0 0
  • 如果沉默, 会变成傲慢。 那我就该, 是最傲慢那个; 如果沉默, 会变成软弱。 那我便是, 最软弱那个。 可这全是...
    巫陵阅读 127评论 0 2
  • 用积极的心态去面对生活中的一切,让我想起我的上一份工作,我是新入职的员工,大家都是在公司做了好多年的老员工,后来我...
    Summer_0121阅读 464评论 0 1