比較 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
}))

現(xiàn)在就可以攔截請求返回 mock 數(shù)據(jù)了,post 請求'http://a.com/num'返回1-100隨機數(shù),請求'http://a.com/type'返回當前請求類型

  1. 缺點:
  • 不及 json-server 使用方便
  • 不能跨域使用
  • 無法定義復雜結(jié)構(gòu)

具體請看官方文檔

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 就可訪問并操作數(shù)據(jù)了
GET /data 獲取所有數(shù)據(jù)
GET /data/1 獲取id為1的數(shù)據(jù)
DELETE /data/1 刪除id為1的數(shù)據(jù)
POST /data 新增數(shù)據(jù),請求body中必須包含data的屬性數(shù)據(jù)
PUT /data/1 修改數(shù)據(jù),請求body中必須包含data的屬性數(shù)據(jù)
PATCH /data/1 修改數(shù)據(jù),請求body中必須包含data的屬性數(shù)據(jù)
GET /data?age_gte=10 獲取age大于等于10的數(shù)據(jù)
GET /data?_sort=age&_order=asc 根據(jù)age升序排序

更多操作請看官方文檔

graphQL

(這里我們結(jié)合 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'));

現(xiàn)在我們在打開的 graphQL 中輸入

query{
   list{
        id,
    name,
    age
  }
}

就會返回數(shù)據(jù)了, 這里的數(shù)據(jù)是自己寫的假數(shù)據(jù),和 json-server 搭配食用最佳喲

更多操作請看官方文檔

聽說 APIJSON 也不錯官方文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,203評論 3 119
  • 讀的什么書:《怦然心動的人生整理魔法1》 閱讀有效時間:1小時,筆記1小時 閱讀中遇到了什么困難:這本書是實踐類的...
    麥麥_growing閱讀 379評論 0 0
  • 如果沉默, 會變成傲慢。 那我就該, 是最傲慢那個; 如果沉默, 會變成軟弱。 那我便是, 最軟弱那個。 可這全是...
    巫陵閱讀 138評論 0 2
  • 用積極的心態(tài)去面對生活中的一切,讓我想起我的上一份工作,我是新入職的員工,大家都是在公司做了好多年的老員工,后來我...
    Summer_0121閱讀 503評論 0 1

友情鏈接更多精彩內(nèi)容