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
相关产品推荐
相关产品推荐

