博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json server服务器
阅读量:5129 次
发布时间:2019-06-13

本文共 8544 字,大约阅读时间需要 28 分钟。

json文件可以理解为数据库

一、json-server快速搭建RESTAPI

安装:

sudo cnpm install -g json-server

启动(使用):

json-server指向json文件所在位置

data.json文件:

{  "roles": [    {      "id": 0,      "name": "SuperUser"    },    {      "id": 1,      "name": "User"    },    {      "id": 2,      "name": "Project Manager"    }  ],  "users": [    {      "password": "wp123456",      "name": "王芃",      "avatar": "avatars:svg-1",      "email": "wpcfan@163.com",      "id": "37489e0c-df34-c261-71c4-ce75357e3035",      "projectIds": [        "Sk2HaTagb",        "Hya1moGb-"      ],      "roleIds": [        0,        1,        2      ]    },    {      "password": "Ls123456",      "name": "李四",      "avatar": "avatars:svg-2",      "email": "lisi@163.com",      "id": "BkkDvwee-",      "projectIds": [        "Sk2HaTagb"      ],      "roleIds": [        1      ]    }  ],  "projects": [    {      "id": "Sk2HaTagb",      "name": "问题跟踪系统",      "desc": "用于 Bug 的内部跟踪和管理",      "coverImg": "/assets/img/covers/1.jpg",      "members": [        "37489e0c-df34-c261-71c4-ce75357e3035",        "BkkDvwee-"      ]    },    {      "name": "某某公司 ERP 系统",      "desc": "为某某公司开发的定制化 ERP 系统",      "coverImg": "/assets/img/covers/20.jpg",      "members": [        "37489e0c-df34-c261-71c4-ce75357e3035"      ],      "id": "Hya1moGb-",      "taskLists": [        "BylTyXiM-b",        "BkWpk7jGZb",        "H1fTyXjMWW"      ]    }  ],  "taskLists": [    {      "name": "待办",      "projectId": "Sk2HaTagb",      "order": 1,      "id": "BkenST66lb"    },    {      "name": "已完成",      "projectId": "Sk2HaTagb",      "order": 3,      "id": "SkG3Ba6Tgb"    },    {      "name": "待办",      "projectId": "Hya1moGb-",      "order": 1,      "id": "BylTyXiM-b"    },    {      "name": "进行中",      "projectId": "Hya1moGb-",      "order": 2,      "id": "BkWpk7jGZb"    },    {      "name": "已完成",      "projectId": "Hya1moGb-",      "order": 3,      "id": "H1fTyXjMWW"    }  ],  "tasks": [    {      "desc": "吃晚餐",      "taskListId": "BkenST66lb",      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "completed": true,      "participantIds": [        "BkkDvwee-",        "37489e0c-df34-c261-71c4-ce75357e3035"      ],      "dueDate": null,      "reminder": null,      "createDate": "2017-05-17T14:10:01.159Z",      "priority": 3,      "order": 1,      "remark": "",      "id": 1    },    {      "id": 2,      "desc": "赶快出发去万达",      "taskListId": "SkG3Ba6Tgb",      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "completed": false,      "participantIds": [        "37489e0c-df34-c261-71c4-ce75357e3035"      ],      "dueDate": "2017-06-12T16:00:00.000Z",      "reminder": "2017-07-18T16:00:00.000Z",      "createDate": "2017-05-19T10:03:58.794Z",      "priority": 2,      "order": 2,      "remark": "something"    },    {      "id": 3,      "desc": "什么情况啊",      "taskListId": "BkenST66lb",      "ownerId": "BkkDvwee-",      "completed": false,      "participantIds": [],      "dueDate": "2017-06-15T16:00:00.000Z",      "reminder": "2017-06-21T16:00:00.000Z",      "createDate": "2017-05-23T08:21:04.445Z",      "priority": 1,      "remark": ""    },    {      "taskListId": "BylTyXiM-b",      "desc": "登录鉴权过程中需携带 token 访问 API",      "completed": false,      "ownerId": "BkkDvwee-",      "participantIds": [],      "dueDate": "2017-07-03T16:00:00.000Z",      "priority": 2,      "remark": "",      "reminder": "2017-06-27T16:00:00.000Z",      "createDate": "2017-05-24T06:11:05.625Z",      "id": 4    },    {      "taskListId": "BkWpk7jGZb",      "desc": "增加统计报表功能",      "completed": false,      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "participantIds": [],      "dueDate": "2017-07-25T16:00:00.000Z",      "priority": 1,      "remark": "",      "reminder": "2017-07-17T16:00:00.000Z",      "createDate": "2017-05-24T06:11:48.513Z",      "id": 5    },    {      "taskListId": "BylTyXiM-b",      "desc": "首页 banner 增加 2px 的 margin",      "completed": false,      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "participantIds": [        "BkkDvwee-"      ],      "dueDate": "2017-06-29T16:00:00.000Z",      "priority": 3,      "remark": "",      "reminder": null,      "createDate": "2017-05-24T06:12:59.718Z",      "id": 6    },    {      "taskListId": "BkWpk7jGZb",      "desc": "库存管理 -- 出库操作 API",      "completed": false,      "ownerId": "BkkDvwee-",      "participantIds": [        "37489e0c-df34-c261-71c4-ce75357e3035"      ],      "dueDate": "2017-07-24T16:00:00.000Z",      "priority": 2,      "remark": "",      "reminder": "2017-07-17T16:00:00.000Z",      "createDate": "2017-05-24T06:14:47.575Z",      "id": 7    },    {      "taskListId": "H1fTyXjMWW",      "desc": "用户可以签入签出设备",      "completed": true,      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "participantIds": [],      "dueDate": "2017-05-20T16:00:00.000Z",      "priority": 1,      "remark": "",      "reminder": "2017-05-20T16:00:00.000Z",      "createDate": "2017-05-24T06:16:24.575Z",      "id": 8    },    {      "taskListId": "BkWpk7jGZb",      "desc": "什么情况啊?",      "completed": false,      "ownerId": "37489e0c-df34-c261-71c4-ce75357e3035",      "participantIds": [],      "dueDate": null,      "priority": 3,      "remark": "",      "reminder": null,      "createDate": "2017-06-15T12:03:36.290Z",      "id": 9    }  ],  "quotes": [    {      "id": "0",      "cn": "我突然就觉得自己像个华丽的木偶,演尽了所有的悲欢离合,可是背上总是有无数闪亮的银色丝线,操纵我哪怕一举手一投足。",      "en": "I suddenly feel myself like a doll,acting all kinds of joys and sorrows.There are lots of shining silvery thread on my back,controlling all my action.",      "pic": "/assets/img/quotes/0.jpg"    },    {      "id": "1",      "cn": "被击垮通常只是暂时的,但如果你放弃的话,就会使它成为永恒。(Marilyn vos Savant)",      "en": "Being defeated is often a temporary condition. Giving up is what makes it permanent.",      "pic": "/assets/img/quotes/1.jpg"    },    {      "id": "2",      "cn": "不要只因一次挫败,就放弃你原来决心想达到的梦想。(莎士比亚)",      "en": "Do not, for one repulse, forgo the purpose that you resolved to effect.",      "pic": "/assets/img/quotes/2.jpg"    },    {      "id": "3",      "cn": "想有发现就要实验,这项实验需要时间。—《神盾局特工》",      "en": "Discovery requires experimentation, and this experiment will take time.",      "pic": "/assets/img/quotes/3.jpg"    },    {      "id": "4",      "cn": "这世界并不会在意你的自尊,这世界希望你在自我感觉良好之前先要有所成就。",      "en": "The world won't care about your self-esteem. The world will expect you to accomplish something before you feel good about yourself.",      "pic": "/assets/img/quotes/4.jpg"    },    {      "id": "5",      "cn": "当你最终放开了过去,更好的事就会到来。",      "en": "When you finally let go of the past, something better comes along.",      "pic": "/assets/img/quotes/5.jpg"    },    {      "id": "6",      "cn": "我们学着放开过去伤害我们的人和事,学着只向前看。因为生活本来就是一往直前的。",      "en": "We learn to let go of things and people that hurt us in the past and just move on. For life is all about moving on.",      "pic": "/assets/img/quotes/6.jpg"    },    {      "id": "7",      "cn": "绝不要因为怕辛苦而拒绝一个想法、梦想或是目标,成功的路上难免伴随辛苦。(Bob Proctor)",      "en": "Never reject an idea, dream or goal because it will be hard work. Success rarely comes without it.",      "pic": "/assets/img/quotes/7.jpg"    },    {      "id": "8",      "cn": "我们在人生中会作出许多选择,带着这些选择继续生活,才是人生中最难的一课。《妙笔生花》",      "en": "We all make our choices in life. The hard thing to do is live with them.",      "pic": "/assets/img/quotes/8.jpg"    },    {      "id": "9",      "cn": "我总是对新的一天充满喜悦,这是一次新的尝试、一个新的开始,翘首以待,黎明之后或是惊喜。(约翰·博因顿·普里斯特利)",      "en": "I have always been delighted at the prospect of a new day, a fresh try, one more start, with perhaps a bit of magic waiting somewhere behind the morning.",      "pic": "/assets/img/quotes/9.jpg"    }  ]}
View Code

json-server ./mock/data.json

API server启动在localhost:3000。支持GET,POST,PUT,PATCH,DELETE等REST命令。

 

每一个json数组对应一个表

资源以名词形式作为API路径。

 

二、测试REST API

浏览器测试get,但不能测试post,put, delete等。

几种常见的API测试工具

1、使用Postman测试常用API

下载:

安装成功如下:

Get操作很简单,输入url,点Send即可。 

Post操作需要在header中指明参数。

  • 指明Content-Type是application.json

  • Body中给出一个json对象

服务器返回刚才创建的对象。

json server强大的地方是,可以不传id,会自动生成。因为真实开放中也是在服务器生成ID的。

 

 json文件中的数据也会被更新。 

2、使用VSCode的REST Client插件

创建一个后缀名是.http的文件rest.http

REST Client用纯文本描述请求,POST Man是有图形界面的。

 

发出一个post请求到 http://localhost:8090/auth,它的Content-Type是什么类型,然后携带的json是什么。

注意:

  • 在json和http头部上面有一个空行
  • 需要用###将不同的请求隔离开
// LoginPOST http://localhost:8090/authContent-Type: application/json;charset: utf-8{    "username":"peng1",    "password":"peng1234"}###

 

 

本文作者,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处: 有问题欢迎与我讨论,共同进步。

转载于:https://www.cnblogs.com/starof/p/9068983.html

你可能感兴趣的文章
ef实现左关联查询
查看>>
关于团队建设和个人成长
查看>>
AcWing 286. 选课 (树形依赖分组背包)打卡
查看>>
9.17 基于ajax上传文件
查看>>
axis2调用.net写的webservice接口实现,指定参数名
查看>>
[php]禁用缓存
查看>>
[java] 获取pdf/word文档文本内容
查看>>
关于TOMCAT的 ROOT/WEB-INF/web.xml的配置
查看>>
python内置函数、匿名函数、递归
查看>>
Eclipse与maven的环境搭建
查看>>
mysql where执行顺序
查看>>
Java遇见HTML——JSP篇之JSP指令与动作元素
查看>>
Activiti 启动事件(Start Event)
查看>>
Angularjs 1.x入门 踩坑记录(包含入门demo练习)
查看>>
关于成长过程的一些建议
查看>>
(FLEX)AS3,for循环里面加监听,只能取到最后一个元素的取巧方法解决方法
查看>>
常用的sql语句
查看>>
10. Regular Expression Matching字符串.*匹配
查看>>
15、Semantic-UI之导航
查看>>
压缩解压命令
查看>>