Day 24 快速启动个 JSON Server

前端开发者在後端 api 尚在开发阶段,需要模拟 api 回传一些种子资料时,自行架设一个开发用的 api 服务器会是一个可行的选项。

JSON-Server Docker

网路上已有不少人们包装好的 docker 映像档,我是采用 clue/json-server 来执行安装。步骤如下:

  1. 将种子资料上传到远端,并执行以下命令
docker run -d -p <外联的 port>:80 -v <服务器内存放 json 种子资料的位置>:/data/db.json clue/json-server
# 如:docker run -d -p 80:80 -v /user/andy/articles.json:/data/db.json clue/json-server
  1. 从浏览器端连入看看,看是否可以取得资料
    http://<IP Address>:<外联的 port>
  2. 若你看到以下画面,那就代表成功了

JSON-Server 简易设定

在你同步进 docker 容器内的 *.json,其格式若是如下的话:

{
   "posts":[
      {
         "id":1,
         "body":"foo"
      },
      {
         "id":2,
         "body":"bar"
      }
   ],
   "comments":[
      {
         "id":1,
         "body":"baz",
         "postId":1
      },
      {
         "id":2,
         "body":"qux",
         "postId":2
      }
   ],
   "response":[
      {
         "id":1,
         "message":"Message1"
      },
      {
         "id":2,
         "message":"Message2"
      }
   ]
}

那所对应的 API 会有 4 只:

  1. http://<远端服务器 IP 位置>:<外联 port>/posts
  2. http://<远端服务器 IP 位置>:<外联 port>/comments
  3. http://<远端服务器 IP 位置>:<外联 port>/response
  4. http://<远端服务器 IP 位置>:<外联 port>/db

若你需要关於 JSON Server 的细部设定,可以上其 Github Repo:JSON Server 观看。

JSON-server 的 docker 启动後却立刻关闭了,该如何处理?

首要便是查找 log,看有无喷出错误讯息。这点通常会发生在你所传入的 JSON 档有格式错误。
docker logs <container id 或 name>
观察一下 log 如下:

SyntaxError: Malformed JSON in file: db.json
Trailing comma in array at 13:3
  ]
  ^
    at Object.parseJSON (/usr/local/lib/node_modules/json-server/node_modules/jju/lib/parse.js:745:13)
    at parse (/usr/local/lib/node_modules/json-server/node_modules/json-parse-helpfulerror/index.js:10:13)
    at Object.fileSyncRead [as read] (/usr/local/lib/node_modules/json-server/node_modules/lowdb/lib/storages/file-sync.js:18:16)
    at LodashWrapper.db.read (/usr/local/lib/node_modules/json-server/node_modules/lowdb/lib/common.js:25:24)
    at Object.init (/usr/local/lib/node_modules/json-server/node_modules/lowdb/lib/common.js:55:13)
    at module.exports (/usr/local/lib/node_modules/json-server/node_modules/lowdb/lib/main.js:25:17)
    at module.exports (/usr/local/lib/node_modules/json-server/lib/cli/utils/load.js:36:17)
    at start (/usr/local/lib/node_modules/json-server/lib/cli/run.js:122:5)
    at module.exports (/usr/local/lib/node_modules/json-server/lib/cli/run.js:159:3)
    at module.exports (/usr/local/lib/node_modules/json-server/lib/cli/index.js:81:3)
Found db.json, trying to open

所以在撰写完种子档案後,别忘记贴到如JSON Formatter & Validator做检查。

小结

运用 docker 的容器化技术,外加上前人建置好的映相档资源,着实可以加速前端开发者的进程

Reference

  1. docker-json-server

<<:  Day27 vue.js简易照片上传功能(base64)

>>:  Day24 read-write lock

[笔记] mongodb 安装教学

虽然已经安装过很多次了,但每次安装都忘记,趁着这次安装,纪录一下过程,其实内容蛮简单的做过的人就别看...

欢迎下载 PDF分解器 PDFdissector【免费】

欢迎下载本人自制 PDF分解器 PDFdissector【免费】 PDFdissector.msi ...

NEC SV9100 小总机WEBPRO设定问题

请问大神: NEC SV9100 小总机进线会到语音宣告,但按1会跑到特定分机(例711),目前分机...

Android学习笔记20

今天用了sharedpreferences,在mvvm架构上要使用respository来当作mod...

R语言-视觉化- 世界地图( map in r.studio )

废话不多说,直接附上code 影片含有程序码详细解说,若有误再烦请告知,谢谢 资料下载处 libra...