You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mock API中POST提交数据后GET获取及容器内获取方案咨询

实现带临时数据持久化的Mock API(容器化版本)

一、用json-server快速搭建Mock服务

json-server可一键生成RESTful API,自动将数据持久化到JSON文件,完美匹配你的需求。

1. 初始化配置

  • 创建初始数据文件db.json:
{
  "submissions": []
}
  • 安装json-server:npm install -g json-server
  • 启动服务:json-server --watch db.json --port 3000

2. 提交数据(POST)

用curl模拟提交请求:

curl -X POST http://localhost:3000/submissions \
  -H "Content-Type: application/json" \
  -d '{"username": "Sunny", "content": "test mock data"}'

执行后打开db.json,会看到submissions数组已新增这条数据,实现临时持久化。

3. 获取数据(GET)

获取所有提交的数据:

curl http://localhost:3000/submissions

按ID单条获取:

curl http://localhost:3000/submissions/1

二、容器化部署Mock API

1. 编写Dockerfile

FROM node:18-alpine
WORKDIR /app
RUN npm install -g json-server
COPY db.json .
EXPOSE 3000
CMD ["json-server", "--watch", "db.json", "--host", "0.0.0.0", "--port", "3000"]

--host 0.0.0.0确保容器内服务能被外部访问。

2. 构建并运行容器

  • 构建镜像:docker build -t mock-api-service .
  • 运行容器(数据持久化到本地):
docker run -d -p 3000:3000 -v $(pwd)/db.json:/app/db.json mock-api-service

若仅需容器生命周期内临时存储数据,去掉-v $(pwd)/db.json:/app/db.json参数即可。

三、验证API是否符合真实后端行为

  • 请求方法支持:默认支持GET/POST/PUT/DELETE,完全遵循REST规范
  • 数据格式要求:POST请求必须携带Content-Type: application/json头部,响应返回标准JSON格式
  • 状态码:POST成功返回201 Created,GET成功返回200 OK,与真实后端行为一致

四、问题排查

  • 数据不持久:本地运行时检查db.json是否有读写权限;容器运行时确认是否挂载了本地卷
  • GET无返回结果:先验证POST请求是否成功(查看db.json是否有新增数据),再核对请求URL是否正确
  • 容器内服务无法访问:检查容器端口映射是否正确(-p 3000:3000),以及服务是否绑定0.0.0.0而非localhost

内容的提问来源于stack exchange,提问作者Sunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:05:00