【金山文档 | WPS云文档】 网关 API 文档 https://kdocs.cn/l/cboRgHwJiGUI # 网关实例 API 文档 ## 1. 分页查询网关实例列表 接口地址: `GET /gateway/instance/list` 请求参数: `?pageNum=1&pageSize=10&ip=127&port=8080&healthStatus=false&syncStatus=false&enabled=false` - `pageNum` (可选):页码,默认1 - `pageSize` (可选):每页大小,默认10 - `ip`(可选):网关实例IP,支持模糊 - `port`(可选):网关实例端口 - `healthStatus`(可选):健康状态 true 和 false - `syncStatus`(可选):配置同步状态 true 和 false - `enabled`(可选):是否启用 true 和 false 响应示例: ```json { "total": 1, "rows": [ { "id": 1, "ip": "127.0.0.1", "port": "8080", "healthStatus": false, "healthCheckTime": "2025-07-29 15:36:29", "syncStatus": false, "syncTime": null, "enabled": false } ], "code": 200, "msg": "查询成功" } ``` ## 2. 配置同步接口 接口地址 `POST /gateway/instance/sync/{instanceId}` 响应示例 ```json { "id": 10001, "status": true, "time": "2024-05-18 14:33:55" } ``` ## 3. 状态刷新接口 接口地址 `GET /gateway/instance/refresh/{instanceId}` 响应示例 ```json { "id": 10001, "status": true, "time": "2024-05-18 14:33:55" } ``` ## 4. 配置查询接口 接口地址 `GET /gateway/instance/config/detail/{instanceId}` 响应示例 ``` 待补充 ``` # 网关服务实例管理 API 文档 ## 1. 分页查询网关服务实例 接口地址: `GET /gateway/service-instance/list` 请求参数: - `name` (可选): 服务实例名称,支持模糊搜索 - `mode` (可选): 转发模式,0-负载均衡,1-静态地址 - `pageNum` (可选): 页码,默认1 - `pageSize` (可选): 每页大小,默认10 响应示例: ```json { "total": 2, "rows": [ { "serviceId": 2, "name": "mock-uri", "mode": 0, "uris": [ { "id": 2, "serviceId": 2, "uri": "https://mock.p.cdn.10086.cn", "enabled": 1 } ] }, { "serviceId": 1, "name": "portal-dev", "mode": 0, "uris": [ { "id": 1, "serviceId": 1, "uri": "http://127.0.0.1:8080", "enabled": 1 } ] } ], "code": 200, "msg": "查询成功" } ``` ## 2. 批量更新网关服务实例 接口地址: `POST /gateway/service-instance/batch-update` 请求体示例: ```json { "deleteServiceIds": [ // 3, 5 ], "addServiceInstances": [ // { // "name": "new-service5", // "mode": 0, // "uris": [ // { // "uri": "http://new-service.com", // "enabled": 1 // } // ] // } ], "updateServiceInstances": [ { "serviceId": 3, "name": "updated-portal-dev", "mode": 1, "uris": [ { "uri": "http://updated.127.0.0.1:8080", "enabled": 1 }, { "uri": "http://backup.127.0.0.1:8080", "enabled": 0 } ] } ] } ``` 响应示例: ```json { "code": 200, "msg": "批量更新服务实例配置成功", "data": null } { "code": 400, "msg": "批量更新服务实例配置失败: 服务实例名称已存在: new-service", "data": null } { "code": 200, "msg": "批量更新服务实例配置成功", "data": null } ``` ## 3. 获取服务实例ID和名称对应关系 接口地址: `GET /gateway/service-instance/id-name-map` 响应示例: ```json { "code": 200, "msg": "操作成功", "data": { "1": "portal-dev", "2": "mock-uri", "3": "updated-portal-dev" } } ``` # 网关路由配置管理 API 文档 ## 1. 分页查询网关路由配置 接口地址:`GET /gateway/config/list` 请求参数: - `routeName` (可选): 路由名称,支持模糊搜索 - `serviceId` (可选): 服务实例ID - `enabled` (可选): 是否启用,true-启用,false-禁用 - `pageNum` (可选): 页码,默认1 - `pageSize` (可选): 每页大小,默认10 **响应示例:** ```json { "code": 200, "msg": "查询成功", "total": 2, "rows": [ { "routeId": 1, "routeName": "portal-api", "serviceId": 1, "serviceName": "portal-dev", "remark": "门户API路由", "order": 0, "enabled": true, "paths": ["/api/portal/**", "/portal/**"], "methods": ["GET", "POST"], "requestParams": [ {"version": "v1"}, {"source": "web"} ], "createTime": "2024-01-15 10:30:00", "updateTime": "2024-01-15 10:30:00" }, { "routeId": 2, "routeName": "user-service", "serviceId": 2, "serviceName": "mock-uri", "remark": "用户服务路由", "order": 1, "enabled": true, "paths": ["/api/user/**"], "methods": ["GET", "POST", "PUT", "DELETE"], "requestParams": [], "createTime": "2024-01-15 11:00:00", "updateTime": "2024-01-15 11:00:00" } ] } ``` ## 2. 批量更新网关路由配置 接口地址:`POST /gateway/config/batch-update` 请求体示例: ```json { "deleteRouteIds": [ 3 ], "addRoutes": [ { "routeName": "new-api-route5", "serviceId": 3, "remark": "新增API路由", "priority": 0, "enabled": true, "paths": [ { "path": "/api/new/**" } ], "methods": [ { "method": "GET" }, { "method": "POST" } ], "params": [ { "paramName": "version", "paramValue": "v2" } ] } ], "updateRoutes": [ { "routeId": 4, "routeName": "updated-portal-api4", "serviceId": 2, "remark": "更新后的门户API路由", "priority": 1, "enabled": false, "paths": [ { "path": "/api/portal/v2/**" }, { "path": "/portal/new/**" } ], "methods": [ { "method": "GET" }, { "method": "POST" }, { "method": "PUT" } ], "params": [ { "paramName": "version", "paramValue": "v2" }, { "paramName": "client", "paramValue": "web" } ] } ] } ``` 响应示例: ```json { "code": 200, "msg": "批量更新路由配置成功", "data": null } ``` # 获取网关转发记录 ## 1. 分页查询网关转发记录列表 接口地址:`GET /gateway/record/list` 请求参数: - `pageNum` (可选):页码,默认1 - `pageSize` (可选):每页大小,默认10 - `uuid` (可选):请求UUID - `requestUrl` (可选):接口路径,支持模糊搜索 - `method` (可选):请求方法,如GET、POST等 - `targetEndpoint` (可选):目的地址 - `httpCode` (可选):请求响应码 - `traceId` (可选):链路追踪ID - `gatewayEndpoint` (可选):网关地址 - `routeId` (可选):请求匹配的路由ID - `routeName` (可选):路由名称 - `requestTimeStart` (可选):请求开始时间,格式:yyyy-MM-dd HH:mm:ss - `requestTimeEnd` (可选):请求结束时间,格式:yyyy-MM-dd HH:mm:ss - `minCostTime` (可选):最小耗时(ms) - `maxCostTime` (可选):最大耗时(ms) 响应示例: ```json { "total": 2, "rows": [ { "recordId": 91041, "uuid": "4c091ee8-8fc6-4796-8b4e-34f3cc2bda15", "requestTime": "2025-07-29 15:15:03", "requestUrl": "/api/v1/payment/callback", "method": "GET", "targetEndpoint": "192.168.1.102:8080", "httpCode": 400, "traceId": "4c091ee88fc64796", "gatewayEndpoint": "192.168.208.18:8087", "routeId": 2, "routeName": "IBS->BBoss", "costTime": 67 }, { "recordId": 70130, "uuid": "925d255e-26b0-45a9-9944-3e37b195f38c", "requestTime": "2025-07-29 15:12:42", "requestUrl": "/api/v1/user/logout", "method": "PUT", "targetEndpoint": "192.168.1.100:8080", "httpCode": 200, "traceId": "925d255e26b045a9", "gatewayEndpoint": "192.168.208.16:8087", "routeId": 2, "routeName": "IBS->BBoss", "costTime": 394 } ], "code": 200, "msg": "查询成功" } ``` ## 2. 根据记录ID获取详情信息 接口地址:`GET /gateway/record/detail/{recordId}` 路径参数: - `recordId`:记录ID 响应示例: ```json { "code": 200, "msg": "操作成功", "data": { "requestParam": "{aaa=[111, 222], bbb=[333]}", "requestBody": "{\r\n \"content\": {\r\n \"ECID\": \"ECID1695801457\",\r\n \"OrderType\": \"2\", // 1:试用申请 2:业务开通 3:试用变更 4:试用暂停 5:试用恢复 6:业务注销 7:试用删除\r\n \"ProductID\": \"AA11131040\",\r\n \"ProvID\": \"000\", // 主办省代码\r\n \"TrialNo\": \"TEST20241111001\",\r\n // \"Domain\": [\r\n // \"www.zphconflict10241513.com.99.cdnhwcqir15.com\",\r\n // ],\r\n \"BusiType\": \"1\", // 1、点播下载网页类; 4、直播类; 试用单/开通单必传\r\n // \"ECNumber\": \"13810151511\",\r\n // \"ECMail\": \"123@123.com\",\r\n // \"InfoSecurityTable\": \"info_security_file2.xlsx\"\r\n }\r\n}", "requestHeaders": "[Content-Type:\"application/json\", User-Agent:\"PostmanRuntime/7.29.2\", Accept:\"*/*\", Postman-Token:\"cdc4bd2d-e7bc-481d-a390-02e848131c24\", Host:\"127.0.0.1:8087\", Accept-Encoding:\"gzip, deflate, br\", Connection:\"keep-alive\", Content-Length:\"705\"]", "responseBody": "{\n\t\"providePartyID\":\"CDNP9950\",\n\t\"response\":{\n\t\t\"rspCode\":\"00000\",\n\t\t\"rspDesc\":\"成功\"\n\t},\n\t\"result\":\"{\\\"ResCode\\\":\\\"00\\\",\\\"ResDetail\\\":\\\"成功\\\"}\",\n\t\"transIDH\":\"1612\",\n\t\"transIDHTime\":\"20250724172043\"\n}", "responseHeaders": "[Access-Control-Allow-Methods:\"POST, GET, OPTIONS\", Access-Control-Max-Age:\"3600\", Access-Control-Allow-Headers:\"content-type,x-requested-with,Authorization, x-request-with,x-ui-request,lang,x-csrf-token,csrf-token\", Access-Control-Allow-Credentials:\"true\", X-Content-Type-Options:\"nosniff\", X-XSS-Protection:\"1; mode=block\", Cache-Control:\"no-cache, no-store, max-age=0, must-revalidate\", Pragma:\"no-cache\", Expires:\"0\", Content-Type:\"application/json\", Content-Length:\"205\", Date:\"Thu, 24 Jul 2025 09:20:43 GMT\"]" } } ``` 错误响应示例: ```json { "code": 500, "msg": "记录不存在或详情信息为空", "data": null } ``` ## 3. 获取数据看板统计信息 接口地址:`GET /gateway/record/dashboard` 请求参数: - `startTime` (必填):开始时间,格式:yyyy-MM-dd - `endTime` (必填):结束时间,格式:yyyy-MM-dd 请求示例: `?startTime=2025-07-24&endTime=2025-07-31` 响应示例: ```json { "code": 200, "msg": "操作成功", "data": { "totalRequestCount": 137116, "requestCount": 0, "requestCountChange": -418, "requestCountRatio": -100.00, "successRate": 0, "successRateChange": -58.85, "successRateRatio": -100.00, "avgCostTime": 0.00, "avgCostTimeChange": -3043.73, "avgCostTimeRatio": -100.00 } } ``` ## 4. 获取曲线图数据 接口地址:`POST /gateway/record/chart` 请求体示例: ```json { "startTime": "2025-01-01", "endTime": "2025-07-31", "timeGranularity": "1MONTH", "requestUrl": "/api/v2/sync/BBOSS/PreCheckServ", "method": "GET", "targetEndpoint": "127.0.0.1:8080", "httpCode": 200, "gatewayEndpoint": "192.168.208.16:8087", "minCostTime": 2000, "maxCostTime": 5000, "routeId": 1 } ``` 请求参数说明: - `startTime` (必填):查询开始时间,格式:yyyy-MM-dd - `endTime` (必填):查询结束时间,格式:yyyy-MM-dd - `timeGranularity` (必填):时间粒度,可选值: - `5MIN`:5分钟 - `1HOUR`:1小时 - `1DAY`:1天 - `1WEEK`:1周 - `1MONTH`:1月 - `requestUrl` (可选):接口路径过滤条件 - `method` (可选):请求方法过滤条件 - `targetEndpoint` (可选):目的地址过滤条件 - `httpCode` (可选):请求响应码过滤条件 - `gatewayEndpoint` (可选):网关地址过滤条件 - `minCostTime` (可选):最小耗时(ms)过滤条件 - `maxCostTime` (可选):最大耗时(ms)过滤条件 - `routeId` (可选):路由ID过滤条件 响应示例: ```json { "code": 200, "msg": "操作成功", "data": { "dataPoints": [ { "timePoint": "2025-02-01 00:00:00", "count2xx": 2, "count4xx": 0, "count5xx": 0, "count3xx": 0, "avgCostTime": 3557.00 }, { "timePoint": "2025-04-01 00:00:00", "count2xx": 3, "count4xx": 0, "count5xx": 0, "count3xx": 0, "avgCostTime": 3791.33 }, { "timePoint": "2025-05-01 00:00:00", "count2xx": 1, "count4xx": 0, "count5xx": 0, "count3xx": 0, "avgCostTime": 4858.00 }, { "timePoint": "2025-06-01 00:00:00", "count2xx": 1, "count4xx": 0, "count5xx": 0, "count3xx": 0, "avgCostTime": 3668.00 } ] } } ``` 响应字段说明: - `timePoint`:时间点(时间轴X轴) - `count2xx`:2xx状态码请求次数 - `count3xx`:3xx状态码请求次数 - `count4xx`:4xx状态码请求次数 - `count5xx`:5xx状态码请求次数 - `avgCostTime`:平均耗时(ms),保留2位小数 ## 5. 获取去重的请求URL列表 接口地址:`GET /gateway/record/request-urls` 请求参数:无 响应示例: ```json { "code": 200, "msg": "操作成功", "data": [ "/api/v1/order/cancel", "/api/v1/order/create", "/api/v1/order/query", "/api/v1/order/update", "/api/v1/payment/callback", "/api/v1/payment/create", "/api/v1/payment/query", "/api/v1/product/detail", "/api/v1/product/list", "/api/v1/product/search", "/api/v1/system/config", "/api/v1/system/health", "/api/v1/system/monitor", "/api/v1/user/login", "/api/v1/user/logout", "/api/v1/user/profile", "/api/v2/sync/BBOSS/PauseResultServ", "/api/v2/sync/BBOSS/PreCheckServ", "/api/v2/sync/BBOSS/QueryServ", "/api/v2/sync/BBOSS/UpdateServ" ] } ``` 响应字段说明: - `data`:去重后的请求URL列表 ## 6. 获取去重的目标端点列表 接口地址:`GET /gateway/record/target-endpoints` 请求参数:无 响应示例: ```json { "code": 200, "msg": "操作成功", "data": [ "127.0.0.1:8080", "127.0.0.1:8081", "127.0.0.1:8082", "192.168.1.100:8080", "192.168.1.101:8080", "192.168.1.102:8080", "mock.p.cdn.10086.cn:443" ] } ``` 响应字段说明: - `data`:去重后的目标端点列表