zoukankan      html  css  js  c++  java
  • json-server模拟REST API

    一般情况下,一个APP的数据都需要等待接口人员开发完对应的接口才可以获取到,这样子的效率有点低。最好是我们可以自己模拟接口数据,进行页面的数据填充,打通所有关节,之后等接口开发好了,改下接口地址就好了。

    我们今天所要讲的工具:json-server就能实现这样的功能。

    1、安装json-server

    首先我们的电脑要安装有nodejs,然后使用npm命令来安装:sudo npm install -g json-server(windows系统的不需要加sudo)

    MeWifi:~ cjy$ npm install -g json-server
    /usr/local/bin/json-server -> /usr/local/lib/node_modules/json-server/bin/index.js
    - ms@0.7.1 node_modules/json-server/node_modules/compression/node_modules/ms
    /usr/local/lib
    └─┬ json-server@0.11.2 
      ├─┬ compression@1.7.0 
      │ ├── bytes@2.5.0 
      │ └── debug@2.6.8 
      ├── cors@2.8.4 
      ├─┬ express-urlrewrite@1.2.0 
      │ └─┬ path-to-regexp@1.7.0 
      │   └── isarray@0.0.1 
      ├── please-upgrade-node@1.0.1 
      ├─┬ update-notifier@1.0.3
      │ └─┬ latest-version@2.0.0
      │   └─┬ package-json@2.4.0
      │     └─┬ got@5.7.1
      │       └─┬ readable-stream@2.3.3 
      │         └── isarray@1.0.0 
      └─┬ yargs@6.6.0
        └─┬ read-pkg-up@1.0.1
          └─┬ read-pkg@1.1.0
            └─┬ normalize-package-data@2.4.0 
              └── hosted-git-info@2.5.0 
    

    检验是否安装成功,查看json-server配置项:json-server -h

    MeWifi:~ cjy$ json-server -h
    /usr/local/bin/json-server [options] <source>
    
    选项:
      --config, -c               Path to config file    [默认值: "json-server.json"]
      --port, -p                 Set port                             [默认值: 3000]
      --host, -H                 Set host                        [默认值: "0.0.0.0"]
      --watch, -w                Watch file(s)                                [布尔]
      --routes, -r               Path to routes file
      --middlewares, -m          Paths to middleware files                    [数组]
      --static, -s               Set static files directory
      --read-only, --ro          Allow only GET requests                      [布尔]
      --no-cors, --nc            Disable Cross-Origin Resource Sharing        [布尔]
      --no-gzip, --ng            Disable GZIP Content-Encoding                [布尔]
      --snapshots, -S            Set snapshots directory               [默认值: "."]
      --delay, -d                Add delay to responses (ms)
      --id, -i                   Set database id property (e.g. _id)  [默认值: "id"]
      --foreignKeySuffix, --fks  Set foreign key suffix (e.g. _id as in post_id)
                                                                      [默认值: "Id"]
      --quiet, -q                Suppress log messages from output            [布尔]
      --help, -h                 显示帮助信息                                 [布尔]
      --version, -v              显示版本号                                   [布尔]
    
    示例:
      /usr/local/bin/json-server db.json
      /usr/local/bin/json-server file.js
      /usr/local/bin/json-server
      http://example.com/db.json
    
    https://github.com/typicode/json-server 

    2、运行

    在任意的目录创建一个json文件,例如在json目录创建data.json文件,写入以下内容,并在json目录下执行json-server data.json

    {
        "list": {
            "news": [
                {
              "newsId": 1, "title": "标题1", "content": "私服大师傅放声大哭" }, {
              "newsId": 2, "title": "标题2", "content": "怎么可能" } ] }, "detail": { "object": { "name": "我是大锤", "sex": 1, "isComplete": true } } }

    成功的话会出现如下内容

    MeWifi:~ cjy$ cd /工作/json/
    MeWifi:json cjy$ json-server data.json
    
      {^_^}/ hi!
    
      Loading data.json
      Done
    
      Resources
      http://localhost:3000/list
      http://localhost:3000/detail
    
      Home
      http://localhost:3000
    
      Type s + enter at any time to create a snapshot of the database

    接下去就可以访问了:

    3、常用操作 

    json-server支持GET, POST, PUT, PATCH 和 DELETE 方法,更提供了一系列的查询方法,如limit,order等。

    这里主要介绍下它的强大的过滤功能

    示例数据源:

    [
        {
            "newsId": 1,
            "title": "标题1",
            "content": "私服大师傅放声大哭"
        },
        {
            "newsId": 2,
            "title": "标题2",
            "content": "怎么可能"
        }
    ]

    属性值(Filter)

    使用 . 操作对象属性值

    //获取content的长度为4的数据

    排序(Sort)

    使用 _sort 和 _order (默认使用升序(ASC))

    //按照newsId降序排列

    分割(Slice)

    使用 _start 和 _end 或者 _limit 

    //从下标0(第一个对象)开始,获取1条数据

    全文检索

    使用 q,在对象全部value中遍历查找包含指定值的数据

    //查找全部字段包含“可能”的数据

     

    使用 _like 进行模糊查找 (支持正则表达式)

    //查找content中含有“大哭”字样的数据

    还有一些操作,可以参考这篇文章:json-server说明

  • 相关阅读:
    hdu4277 暴力
    hdu4271 Find Black Hand 2012长春网络赛E题 最短编辑距离
    poj3356 字符串的最小编辑距离 dp
    HDU4267 A Simple Problem with Integers 线段树/树状数组
    树链剖分 模版
    SPOJ375 Query on a tree 树链剖分
    Orz_panda cup I题 (xdoj1117) 状压dp
    27号的十道离线线段树
    The 2015 "Orz Panda" Cup Programming Contest
    codeforces #274 C. Riding in a Lift dp+前缀和优化
  • 原文地址:https://www.cnblogs.com/hacjy/p/7169183.html
Copyright © 2011-2022 走看看