{"id":15523583,"url":"https://github.com/jiashunx/masker-json-server","last_synced_at":"2025-10-12T12:30:24.341Z","repository":{"id":216394604,"uuid":"740774561","full_name":"jiashunx/masker-json-server","owner":"jiashunx","description":"Web应用：基于masker-rest实现的简易json server（供前端开发使用，用来mock后端接口及报文，本地启动后访问http://127.0.0.1:port 即可访问管理服务）","archived":true,"fork":false,"pushed_at":"2024-03-12T07:50:33.000Z","size":675,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-20T06:13:41.562Z","etag":null,"topics":["dynamic-http-server","http","json-server"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiashunx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-09T03:16:29.000Z","updated_at":"2024-03-20T11:05:29.000Z","dependencies_parsed_at":"2024-01-13T14:32:05.162Z","dependency_job_id":"10a4a432-0cc3-4a99-bbe1-04a72bec6db3","html_url":"https://github.com/jiashunx/masker-json-server","commit_stats":null,"previous_names":["jiashunx/masker-json-server"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiashunx%2Fmasker-json-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiashunx%2Fmasker-json-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiashunx%2Fmasker-json-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiashunx%2Fmasker-json-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiashunx","download_url":"https://codeload.github.com/jiashunx/masker-json-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236215060,"owners_count":19113649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dynamic-http-server","http","json-server"],"created_at":"2024-10-02T10:46:04.687Z","updated_at":"2025-10-12T12:30:23.991Z","avatar_url":"https://github.com/jiashunx.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n### masker-json-server\n\nWeb应用：基于 [masker-rest][1] 实现的简易json server（供前端开发使用，用来mock后端接口及报文）\n\n- 主要功能\n\n   - 配置启动http server，可在运行时动态启停http服务（监听不同端口）\n\n   - 为http server动态配置响应json格式数据的接口\n\n   - 支持根据接口参数（method、headers、params、body）来通过aviator表达式匹配返回不同json格式数据（例如：分页查询接口，根据页码返回不同页数据）\n\n      - method：http method（例如：get、post、put、delete等）\n\n      - headers：请求头（从http请求头获取请求header）\n\n         - 注意：headers参数对象下的元素为key-value键值对，value值类型为字符串\n\n      - params：请求接口URL参数\n\n         - 注意：params参数对象下的元素为key-value键值对，value值类型为字符串\n\n      - body：请求body对象（http请求body，格式：json）\n\n         - 注意：body对象下的元素为key-value键值对，value值类型为json数据的各类值类型\n\n      - 路由表达式的结果应为布尔值，含义为路由表达式通过则匹配返回相应接口报文\n\n      - 路由表达式样例：method == \"post\" \u0026\u0026 headers.key1 == \"value1\" \u0026\u0026 params.key2 == \"value2\" \u0026\u0026 body.key3 == \"value3\" \u0026\u0026 body.key5 == 5\n\n   - 支持配置接口的代理Server（保证接口服务地址不变的情况下可一键切换mock报文或真实服务地址）\n\n- 技术组件\n\n   - 使用 [layui][0] 实现前端控制台\n\n   - 使用 [masker-rest][1] 实现后端接口服务，动态启停http服务也依赖于此组件\n\n   - 使用 [sdk-sqlite3][2] 实现存储，启动时初始化表结构到本地SQLite3数据库，无需额外部署数据库\n\n- 运行配置\n\n   - 运行环境：JDK17+\n\n   - 启动参数\n\n   ```text\n   # 指定服务端口（不指定则默认8080）\n   -p 18080\n   --port 18080\n   # 指定工作目录（不指定则默认当前程序运行目录）\n   -w /app/json-server\n   --workspace /app/json-server\n   # 示例启动命令\n   java -jar masker-json-server.jar -p 18080 -w /app/json-server\n   ```\n\n   - JVM参数（参考）\n\n   ```text\n   -Xms64m\n   -Xmx64m\n   -XX:MetaspaceSize=64M\n   -XX:MaxMetaspaceSize=64M\n   -XX:+DisableAttachMechanism\n   ```\n\n- Docker部署文档\n\n   - 构建可执行jar包（输出服务包名：json-server.jar）\n\n   - Docker宿主机创建目录\n\n   ```text\n   # 构建\u0026日志\u0026数据存储目录\n   mkdir -p /app/docker/json-server/{build,logs,workspace}\n   ```\n\n   - 拷贝 [Dockerfile](./Dockerfile) 及可执行jar包，上传至安装Docker的主机，存放目录：\u003cb\u003e/app/docker/json-server/build\u003c/b\u003e\n\n      - 备注：从容器访问宿主机，使用默认桥接模式访问主机（ip addr show docker0，可查看主机上Docker IP，默认：172.17.0.1）\n\n   - 执行镜像构建命令：\u003cb\u003edocker build -t json-server:${version} ./\u003c/b\u003e\n\n      - 镜像名称：json-server\n\n      - 镜像版本：${version}\n\n      - Dockerfile文件名称：参数\u003cb\u003e-f Dockerfile\u003c/b\u003e，若不指定\"-f\"参数默认找\"Dockerfile\"\n\n      - Dockerfile文件存放目录：\u003cb\u003e./\u003c/b\u003e\n\n      - 镜像构建完成后可查看镜像：\u003cb\u003edocker images\u003c/b\u003e\n\n   - 至此，Docker镜像已构建完成，以下为部署配置+启动步骤\n\n   - 启动json-server容器命令\n\n   ```text\n   docker run -itd \\\n   -v /app/docker/json-server/logs:/app/json-server/logs \\\n   -v /app/docker/json-server/workspace:/app/json-server/workspace \\\n   --net=host \\\n   --restart=always \\\n   --name json-server \\\n   json-server:${version}\n   \n   # json-server服务运行时涉及http服务的动态启停，在运行时需容器暴露的服务端口会动态变化\n   # 因此不使用\"-p \"参数来进行端口映射，而是使用\"--net=host\"来与宿主机共享网络\n   # Dockerfile中启动入口指定了json-server的服务端口18080\n   ```\n\n   - 访问json-server服务：http://宿主机IP:18080\n\n[0]: https://layui.dev\n[1]: https://github.com/jiashunx/masker-rest\n[2]: https://github.com/jiashunx/sdk-sqlite3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiashunx%2Fmasker-json-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiashunx%2Fmasker-json-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiashunx%2Fmasker-json-server/lists"}