蓝易云

模拟 API 工具 json-server 基本使用

549次阅读
没有评论

共计 2094 个字符,预计需要花费 6 分钟才能阅读完成。

一、简介

json-server 是一个用于创建快速原型和模拟 API 的工具。它可以在本地运行一个 restful api 服务器,使用 JSON 格式的数据作为后端存储。并可以使用 json-serverr 定义自己的数据,并通过 HTTP 请求与它进行交互,就像与真实的后端 API 一样。

它非常适合前端开发人员进行原型设计和测试,因为可以快速提供一个基本的API,而无需设置和管理完整的后端服务器。只需定义一个JSON文件,它就可以提供一个 restful 风格的 api,支持GET、POST、PUT、DELETE等HTTP请求方法。

二、安装

需要先创建自己的 json 数据。

mkdir -p /home/docker/json-server/ && \
cat > /home/docker/json-server/db.json <<EOF
{
  "users": [
    {
      "id": 1,
      "name": "zhangsan",
      "age": 18
    },
    {
      "id": 2,
      "name": "lisi",
      "age": 30
    },
    {
      "id": 3,
      "name": "wangwu",
      "age": 18
    }
  ],
  "address": [
    {
      "id": 1,
      "name": "beijing"
    },
    {
      "id": 1,
      "name": "shanghai"
    }
  ]
EOF

为了方便,使用 docker 进行安装,运行如下容器:

docker run -d \
-p 80:80 \
-v /home/docker/json-server/db.json:/data/db.json \
clue/json-server

三、使用

1 查询用户

1.1 简单查询

[root@hostname ~]# curl 'localhost/users'
[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  },
  {
    "id": 2,
    "name": "lisi",
    "age": 30
  },
  {
    "id": 3,
    "name": "wangwu",
    "age": 18
  }
]

1.2 过滤查询

# 精确过滤
[root@hostname ~]# curl 'localhost/users?age=18'
[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  },
  {
    "id": 3,
    "name": "wangwu",
    "age": 18
  }
]
# 范围过滤,参数后加 _gte、_lte
[root@hostname ~]# curl 'localhost/users?age_gte=20&age_lte=30'
[
  {
    "id": 2,
    "name": "lisi",
    "age": 30
  }
]
# 精确过滤不等于,参数后加 _ne
[root@hostname ~]# curl 'localhost/users?age_ne=18'
[
  {
    "id": 2,
    "name": "lisi",
    "age": 30
  }
]
# 模糊匹配,参数后加 _like
[root@hostname ~]# curl 'localhost/users?name_like=zhang'
[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  }
]

1.3 分页查询

[root@hostname ~]# curl 'localhost/users?_page=1&_limit=2'
[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  },
  {
    "id": 2,
    "name": "lisi",
    "age": 30
  }
]

1.4 排序查询

[root@hostname ~]# curl 'localhost/users?_sort=id&_order=desc'
[
  {
    "id": 3,
    "name": "wangwu",
    "age": 18
  },
  {
    "id": 2,
    "name": "lisi",
    "age": 30
  },
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  }
]

1.5 全文搜索

[root@hostname ~]# curl 'localhost/users?q=a'
[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  },
  {
    "id": 3,
    "name": "wangwu",
    "age": 18
  }
]

查询用户中,包含 a 字符的结果。

2 新增用户

[root@hostname ~]# curl -X POST -H "Content-Type: application/json" -d '{
  "id": 4,
  "name": "zhaoliu",
  "age": 50,
  "33": 33
}' 'http://localhost/users'

使用 POST 请求新增一个用户,数据结构最好与之前的一致,不过不一致也不会有影响。

3 修改用户

[root@hostname ~]# curl -X PUT -H "Content-Type: application/json" -d '{
  "id": 4,
  "name": "zhaoliu",
  "age": 100
}'  'http://localhost/users/4'

这里发送 PUT 请求将 zhaoliu 年龄修改为 100,url 需要指定 id。

4 删除用户

[root@hostname ~]# curl -X DELETE 'http://localhost/users/4'

发送 DELETE 请求删除 id 为 4 的用户。

提醒:本文发布于430天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2023-10-03发表,共计2094字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock