mvp
This commit is contained in:
@@ -0,0 +1,699 @@
|
||||
{
|
||||
"state": true,
|
||||
"errcode": 0,
|
||||
"pageNo": 1,
|
||||
"totalPages": 1,
|
||||
"pageSize": 20,
|
||||
"total": 2,
|
||||
"isHavePrePage": false,
|
||||
"isHaveNextPage": false,
|
||||
"customArgs": "",
|
||||
"rows": [
|
||||
{
|
||||
"configName": "细分层位分页查询数据列表",
|
||||
"configId": "DMS_API_250605087",
|
||||
"mapUrl": "/api/dms/kd_rs_ideas01/v1/rd_subdivision_stra/1.0.0",
|
||||
"beanId": "ServiceRegisterRest",
|
||||
"modelId": "",
|
||||
"beanMethodName": "redirectUrl",
|
||||
"methodType": "POST",
|
||||
"produces": "*",
|
||||
"consumes": "*",
|
||||
"extAttribute": "",
|
||||
"state": "1",
|
||||
"effectiveUser": "",
|
||||
"mockResponseConfigId": "",
|
||||
"regServiceUrl": "",
|
||||
"transaction": false,
|
||||
"joinRestId": "",
|
||||
"configType": "REG",
|
||||
"registerFlag": 1,
|
||||
"requestBodyFlag": true,
|
||||
"bodyEscapeFlag": false,
|
||||
"viewId": "",
|
||||
"logType": 2,
|
||||
"syncFlag": true,
|
||||
"scsPlugConfig": "[]",
|
||||
"regServerId": "",
|
||||
"bindingGatewayType": "",
|
||||
"responseSample": "",
|
||||
"failResponseSample": "",
|
||||
"syncAnnotation": true,
|
||||
"remark": "",
|
||||
"tags": "井筒中心DMS服务,",
|
||||
"categoryId": "DMS_CATEGORY_250605003",
|
||||
"businessClassIds": "",
|
||||
"version": "1.0",
|
||||
"parentId": "6840f2265a8e64025de0461b",
|
||||
"deprecated": false,
|
||||
"requestBodyRequired": false,
|
||||
"requestBodyDataType": "JSON",
|
||||
"requestBodySchemaRef": "",
|
||||
"sqlConfigId": "",
|
||||
"filters": "",
|
||||
"retryNum": 0,
|
||||
"retrySleep": 0,
|
||||
"loadBalanceId": "WeightRandomServer",
|
||||
"authType": 2,
|
||||
"approveAuthType": 3,
|
||||
"serializeNull": false,
|
||||
"visibleUserIds": "",
|
||||
"ownerUserId": "",
|
||||
"connecterId": "",
|
||||
"requestCompatibleFlag": 1,
|
||||
"paramsDocs": [
|
||||
{
|
||||
"id": "e7afb13e0b8746298255efc706afeba6",
|
||||
"fieldName": "交换模型名称",
|
||||
"fieldId": "schemaName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": true,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "path",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "bc31bf77e9aa46adb5e24fd0588013d5",
|
||||
"fieldName": "交换模型版本",
|
||||
"fieldId": "version",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": true,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "path",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "e55ffa38e1144f72804ed607f280b389",
|
||||
"fieldName": "转换编码(不参与转换可为空或null)",
|
||||
"fieldId": "convertCode",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "dfc380f090114c628d1151329f33b023",
|
||||
"fieldName": "页码(从1开始)",
|
||||
"fieldId": "pageNo",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "7ea45c019a1246a7aa54434aa17608c9",
|
||||
"fieldName": "分页大小(最大值200)",
|
||||
"fieldId": "pageSize",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "9d44952a085e4a9685d378e30916a621",
|
||||
"fieldId": "query",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "44a40a8fe5574d858d86cd75b4209a3a",
|
||||
"fieldName": "表名称",
|
||||
"fieldId": "tableName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "f3b3581b4db741ba88ccb608aea99437",
|
||||
"fieldName": "交换模型名称",
|
||||
"fieldId": "schemaName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "1e38bebca7634e9ba4d9f7a3db4f61b7",
|
||||
"fieldName": "当前页码",
|
||||
"fieldId": "pageNo",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "fb3735bb015d4d98bfb0508d433e92ba",
|
||||
"fieldName": "每页条数",
|
||||
"fieldId": "pageSize",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "ffa26cf42065471185f583e64a705de0",
|
||||
"fieldName": "是否统计总条数",
|
||||
"fieldId": "isSearchCount",
|
||||
"fieldType": "boolean",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "3a15d6073fe540b99f3b6fb8f1c681de",
|
||||
"fieldName": "查询时,字段、排序、查询条件传入的字段是否将驼峰改为下划线,如:HelloWorld=》hello_world",
|
||||
"fieldId": "isUnderlineCase",
|
||||
"fieldType": "boolean",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
}
|
||||
],
|
||||
"responseDocs": [
|
||||
{
|
||||
"code": "200",
|
||||
"description": "OK",
|
||||
"contentModelRef": "",
|
||||
"contentDataType": "JSON"
|
||||
}
|
||||
],
|
||||
"outputParamsDocs": [],
|
||||
"hotFlag": 0,
|
||||
"recommendFlag": 0,
|
||||
"clickNum": 0,
|
||||
"iconUrl": "",
|
||||
"price": "0",
|
||||
"score": 0,
|
||||
"describeBody": "<p></p>",
|
||||
"publishStatus": "1",
|
||||
"backendMethod": "*",
|
||||
"backendUrl": "https://www.dev.ideas.cnpc/api/dms/kd_rs_ideas01/v1/rd_subdivision_stra/1.0.0",
|
||||
"backendServerId": "",
|
||||
"backendHaderTransparent": 0,
|
||||
"backendHeaderParams": "[{\"id\":\"6840024e5a8e64025dde0623\",\"headerId\":\"tenant-id\",\"headerValue\":\"\",\"headerType\":\"COPY\"},{\"id\":\"6840024e5a8e64025dde0624\",\"headerId\":\"Authorization\",\"headerValue\":\"\",\"headerType\":\"COPY\"}]",
|
||||
"backendConnectTimeout": 30000,
|
||||
"backendParamType": 1,
|
||||
"backendResponseBodyStreamFlag": false,
|
||||
"backendResponseBodyChunkedStreamFlag": false,
|
||||
"backendRequestBodyTemplate": "",
|
||||
"webServiceRequestXmlFlag": true,
|
||||
"webServiceResponseXmlFlag": true,
|
||||
"webServiceXmlSubNode": "",
|
||||
"webServiceRequestXmlFillType": 1,
|
||||
"webServiceWsdlUrl": "",
|
||||
"webServiceWsdlDocument": "",
|
||||
"webServiceRequestBodyFlag": true,
|
||||
"xmlTemplateId": "",
|
||||
"webServiceResponseBody": "",
|
||||
"webServiceResponseXmlFillType": 1,
|
||||
"dubboApplicationName": "",
|
||||
"dubboConnectionType": "",
|
||||
"dubboZookeeper": "",
|
||||
"dubboInterface": "",
|
||||
"dubboMethodName": "",
|
||||
"dubboParamsType": "",
|
||||
"dubboVersion": "",
|
||||
"processId": "",
|
||||
"procedureId": "",
|
||||
"bindServicesConfigId": "",
|
||||
"businessDataTagConfigs": "",
|
||||
"changeMethod": "",
|
||||
"slaLevel": 1,
|
||||
"isSystem": 0,
|
||||
"source": "",
|
||||
"responseCookie": false,
|
||||
"businessCodePath": "",
|
||||
"businessMessagePath": "",
|
||||
"configScore": 0,
|
||||
"allowRetry": 0,
|
||||
"assessConfigFlag": "0",
|
||||
"gRpcServer": "",
|
||||
"gRpcPackage": "",
|
||||
"gRpcService": "",
|
||||
"gRpcMethod": "",
|
||||
"ferry": false,
|
||||
"fileForwardPath": "",
|
||||
"fileForwardSelectPathType": "",
|
||||
"fileForwardSelectPath": "",
|
||||
"id": "684104895a8e64025de0aae7",
|
||||
"appId": "dms",
|
||||
"createTime": "2025-06-05 10:44:25",
|
||||
"creator": "13785895887",
|
||||
"creatorName": "李石松",
|
||||
"editTime": "2025-06-05 11:23:13",
|
||||
"editor": "13785895887",
|
||||
"editorName": "李石松",
|
||||
"publishTime": "2025-06-05 11:23:13",
|
||||
"publishUserId": "13785895887",
|
||||
"expireAfterIndexTime": "Jun 5, 2025 11:23:13 AM",
|
||||
"followCount": 0,
|
||||
"commitCount": 0,
|
||||
"permission": "",
|
||||
"appName": "DMS"
|
||||
},
|
||||
{
|
||||
"configName": "油气藏地质数据分页查询数据列表",
|
||||
"configId": "DMS_API_250605088",
|
||||
"mapUrl": "/api/dms/kd_rs_ideas01/v1/rs_rd_ach_oil_gas_rese_geo/1.0.0",
|
||||
"beanId": "ServiceRegisterRest",
|
||||
"modelId": "",
|
||||
"beanMethodName": "redirectUrl",
|
||||
"methodType": "POST",
|
||||
"produces": "*",
|
||||
"consumes": "*",
|
||||
"extAttribute": "",
|
||||
"state": "1",
|
||||
"effectiveUser": "",
|
||||
"mockResponseConfigId": "",
|
||||
"regServiceUrl": "",
|
||||
"transaction": false,
|
||||
"joinRestId": "",
|
||||
"configType": "REG",
|
||||
"registerFlag": 1,
|
||||
"requestBodyFlag": true,
|
||||
"bodyEscapeFlag": false,
|
||||
"viewId": "",
|
||||
"logType": 2,
|
||||
"syncFlag": true,
|
||||
"scsPlugConfig": "[]",
|
||||
"regServerId": "",
|
||||
"bindingGatewayType": "",
|
||||
"responseSample": "",
|
||||
"failResponseSample": "",
|
||||
"syncAnnotation": true,
|
||||
"remark": "",
|
||||
"tags": "井筒中心DMS服务,",
|
||||
"categoryId": "DMS_CATEGORY_250605003",
|
||||
"businessClassIds": "",
|
||||
"version": "1.0",
|
||||
"parentId": "684104895a8e64025de0aae7",
|
||||
"deprecated": false,
|
||||
"requestBodyRequired": false,
|
||||
"requestBodyDataType": "JSON",
|
||||
"requestBodySchemaRef": "",
|
||||
"sqlConfigId": "",
|
||||
"filters": "",
|
||||
"retryNum": 0,
|
||||
"retrySleep": 0,
|
||||
"loadBalanceId": "WeightRandomServer",
|
||||
"authType": 2,
|
||||
"approveAuthType": 3,
|
||||
"serializeNull": false,
|
||||
"visibleUserIds": "",
|
||||
"ownerUserId": "",
|
||||
"connecterId": "",
|
||||
"requestCompatibleFlag": 1,
|
||||
"paramsDocs": [
|
||||
{
|
||||
"id": "537faeec7bd744288d05ac19849a6515",
|
||||
"fieldName": "交换模型名称",
|
||||
"fieldId": "schemaName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": true,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "path",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "d1f4b015a35548f38de568bda043ef58",
|
||||
"fieldName": "交换模型版本",
|
||||
"fieldId": "version",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": true,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "path",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "756b6857215d45518e93e49dea87c1a5",
|
||||
"fieldName": "转换编码(不参与转换可为空或null)",
|
||||
"fieldId": "convertCode",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "a961065a5b2442a88261f1065099ec10",
|
||||
"fieldName": "页码(从1开始)",
|
||||
"fieldId": "pageNo",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "27849d8323b54306a9332fa94cbb78f9",
|
||||
"fieldName": "分页大小(最大值200)",
|
||||
"fieldId": "pageSize",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"sampleValue": "",
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "query",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "f2a3843f5f654a928d942ed73c9b000c",
|
||||
"fieldId": "query",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "497a9a85663d468e85af65180927b3ea",
|
||||
"fieldName": "表名称",
|
||||
"fieldId": "tableName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "3414f536235f4adba12693104c423a00",
|
||||
"fieldName": "交换模型名称",
|
||||
"fieldId": "schemaName",
|
||||
"fieldType": "string",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "d3a4435d969a48868fe4cb58d2183e43",
|
||||
"fieldName": "当前页码",
|
||||
"fieldId": "pageNo",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "1244e80dc96842af8be9a7542df9bed3",
|
||||
"fieldName": "每页条数",
|
||||
"fieldId": "pageSize",
|
||||
"fieldType": "integer",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "0f5ed3f74f334020b41c30207e51f962",
|
||||
"fieldName": "是否统计总条数",
|
||||
"fieldId": "isSearchCount",
|
||||
"fieldType": "boolean",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
},
|
||||
{
|
||||
"id": "b057df6fccfd45e282e8c0dc9f6c09aa",
|
||||
"fieldName": "查询时,字段、排序、查询条件传入的字段是否将驼峰改为下划线,如:HelloWorld=》hello_world",
|
||||
"fieldId": "isUnderlineCase",
|
||||
"fieldType": "boolean",
|
||||
"hidden": false,
|
||||
"breakFlag": false,
|
||||
"required": false,
|
||||
"enCode": 0,
|
||||
"order": 0,
|
||||
"in": "body",
|
||||
"errorCode": "",
|
||||
"maxLength": 0,
|
||||
"minLength": 0,
|
||||
"deprecated": false,
|
||||
"sortNum": 1
|
||||
}
|
||||
],
|
||||
"responseDocs": [
|
||||
{
|
||||
"code": "200",
|
||||
"description": "OK",
|
||||
"contentModelRef": "",
|
||||
"contentDataType": "JSON"
|
||||
}
|
||||
],
|
||||
"outputParamsDocs": [],
|
||||
"hotFlag": 0,
|
||||
"recommendFlag": 0,
|
||||
"clickNum": 0,
|
||||
"iconUrl": "",
|
||||
"price": "0",
|
||||
"score": 0,
|
||||
"describeBody": "<p></p>",
|
||||
"publishStatus": "1",
|
||||
"backendMethod": "*",
|
||||
"backendUrl": "https://www.dev.ideas.cnpc/api/dms/kd_rs_ideas01/v1/rs_rd_ach_oil_gas_rese_geo/1.0.0",
|
||||
"backendServerId": "",
|
||||
"backendHaderTransparent": 0,
|
||||
"backendHeaderParams": "[{\"id\":\"6840024e5a8e64025dde0623\",\"headerId\":\"tenant-id\",\"headerValue\":\"\",\"headerType\":\"COPY\"},{\"id\":\"6840024e5a8e64025dde0624\",\"headerId\":\"Authorization\",\"headerValue\":\"\",\"headerType\":\"COPY\"}]",
|
||||
"backendConnectTimeout": 30000,
|
||||
"backendParamType": 1,
|
||||
"backendResponseBodyStreamFlag": false,
|
||||
"backendResponseBodyChunkedStreamFlag": false,
|
||||
"backendRequestBodyTemplate": "",
|
||||
"webServiceRequestXmlFlag": true,
|
||||
"webServiceResponseXmlFlag": true,
|
||||
"webServiceXmlSubNode": "",
|
||||
"webServiceRequestXmlFillType": 1,
|
||||
"webServiceWsdlUrl": "",
|
||||
"webServiceWsdlDocument": "",
|
||||
"webServiceRequestBodyFlag": true,
|
||||
"xmlTemplateId": "",
|
||||
"webServiceResponseBody": "",
|
||||
"webServiceResponseXmlFillType": 1,
|
||||
"dubboApplicationName": "",
|
||||
"dubboConnectionType": "",
|
||||
"dubboZookeeper": "",
|
||||
"dubboInterface": "",
|
||||
"dubboMethodName": "",
|
||||
"dubboParamsType": "",
|
||||
"dubboVersion": "",
|
||||
"processId": "",
|
||||
"procedureId": "",
|
||||
"bindServicesConfigId": "",
|
||||
"businessDataTagConfigs": "",
|
||||
"changeMethod": "",
|
||||
"slaLevel": 1,
|
||||
"isSystem": 0,
|
||||
"source": "",
|
||||
"responseCookie": false,
|
||||
"businessCodePath": "",
|
||||
"businessMessagePath": "",
|
||||
"configScore": 0,
|
||||
"allowRetry": 0,
|
||||
"assessConfigFlag": "0",
|
||||
"gRpcServer": "",
|
||||
"gRpcPackage": "",
|
||||
"gRpcService": "",
|
||||
"gRpcMethod": "",
|
||||
"ferry": false,
|
||||
"fileForwardPath": "",
|
||||
"fileForwardSelectPathType": "",
|
||||
"fileForwardSelectPath": "",
|
||||
"id": "684104905a8e64025de0ab00",
|
||||
"appId": "dms",
|
||||
"createTime": "2025-06-05 10:44:32",
|
||||
"creator": "13785895887",
|
||||
"creatorName": "李石松",
|
||||
"editTime": "2025-06-05 11:23:06",
|
||||
"editor": "13785895887",
|
||||
"editorName": "李石松",
|
||||
"publishTime": "2025-06-05 11:23:06",
|
||||
"publishUserId": "13785895887",
|
||||
"expireAfterIndexTime": "Jun 5, 2025 11:23:06 AM",
|
||||
"followCount": 0,
|
||||
"commitCount": 0,
|
||||
"permission": "",
|
||||
"appName": "DMS"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -14,7 +14,7 @@ logging.disable(logging.INFO) # Disables INFO level logs, keeps WARNING and ERRO
|
||||
# logging.disable(logging.WARNING) # To disable WARNING level logs as well
|
||||
|
||||
# --- Configuration ---
|
||||
BASE_IMAGE_DIR = '/Users/zpc01/workspace/zzlh/compliance/assets/images/dms1/zsy'
|
||||
BASE_IMAGE_DIR = '/Users/zpc01/workspace/zzlh/compliance/assets/images/井筒'
|
||||
# Language configuration: 'ch' supports Chinese and English by default.
|
||||
# Other options include 'en', 'korean', 'japan', 'french', 'german', etc.
|
||||
LANG = 'ch'
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.4 MiB |
@@ -0,0 +1,512 @@
|
||||
DMS增加核心存储服务API
|
||||
DMS增加核心存储服务API
|
||||
张阔项建寇永忠
|
||||
4月24日创建
|
||||
概述
|
||||
接口风格
|
||||
、概述
|
||||
接口规范
|
||||
四、接口鉴权
|
||||
DMS接口现状:缺乏统一的数据服务接口。DMS数据服务各式各样,数据存储分散在各服务自己数据库,接口标准
|
||||
接口列表
|
||||
也不统一。如:测井DMS、地震DMS数据接口形式各不相同
|
||||
OSDU服务:OSDU提供“存储Storage"数据存储服务,为各领域的数据存储与查询提供统一的服务标准
|
||||
.添加接口
|
||||
2.更新接口
|
||||
OSDU数据平台
|
||||
3.删除接口
|
||||
单主键
|
||||
地震数
|
||||
多主键
|
||||
4.列表查询
|
||||
5.数据验证
|
||||
六数据分区
|
||||
七、业务状态码返回列表
|
||||
目的:各DMS需要提供对标OSDU“存储Storage”的统一数据服务。在DMS服务原有功能不变,增加为业务方提供的
|
||||
统一数据服务
|
||||
oreDB地震数
|
||||
eismicDB
|
||||
②
|
||||
二、接口风格
|
||||
1. 统一协议:所有接口统一采用 HTTP/HTTPS 协议,确保数据传输的安全性和通用性。
|
||||
2.RESTful 风格:遵循 RESTul设计原则,以资源为核心,使用标准的 HTTP 方法(GET、POST、PUT、DELETE
|
||||
等)对资源进行操作。例如,GET用于获取资源,POST 用于创建资源,PUT用于更新资源,DELETE 用于删除
|
||||
资源。
|
||||
3.命名规范:接口路径采用小写字母和斜杠(1)组合的方式,单词之间用下划线()分隔,避免使用大写字母和
|
||||
特殊字符,保证接口路径简洁、易读。目RESTfu接口设计要求
|
||||
三、接口规范
|
||||
1.接口版本控制:在接口路径中明确标识版本号,如/v1/cd_well、V2/cd_well,方便接口的升级和维护,确保不同
|
||||
版本的接口能够共存且互不影响。
|
||||
2.请求参数规范
|
||||
。参数类型:明确指定每个参数的数据类型,如字符串(string)、整数(int)、布尔值(bool)等,并对参数的
|
||||
取值范围进行说明。
|
||||
。必填与可选:清晰标注每个参数是否为必填项,必填参数是接口正常运行所必须提供的,可选参数可根据实际
|
||||
需求进行传递。
|
||||
参数位置:根据接口的请求方式,确定参数的传递位置。GET请求的参数通常放在 URL 的查询字符串中;
|
||||
POST、PUT等请求的参数放在请求体(Body)中,采用 JSON格式。
|
||||
3.响应规范
|
||||
。响应状态码:返回接口定义的状态码。
|
||||
响应数据格式:所有接口的响应数据统一采用 JSON 格式,包含业务状态码(code)、响应信息(message)
|
||||
和数据(data)三个基本属性。其中,data 属性根据接口功能返回具体的业务数据,若接口无数据返回,
|
||||
data属性可为空对象(0)。
|
||||
四、接口鉴权
|
||||
1.认证方式
|
||||
Token认证:采用JWT作为主要的认证方式。客户端请求接口时,需在请求头的Authoriztion属性中携带有
|
||||
五、接口列表
|
||||
1.添加接口
|
||||
接口地址:M1/(schemaName}
|
||||
请求方法:POST
|
||||
接口描述:数据批量添加,数据解析后,批量插入交换模型对应的数据库表中,
|
||||
遵循同时成功、同时失败的事务
|
||||
原则
|
||||
请求参数
|
||||
·路径参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
schemaName
|
||||
String
|
||||
交换模型名称
|
||||
·请求头
|
||||
Authorization
|
||||
Token
|
||||
鉴权Token
|
||||
Content-Typeapplicatio/json
|
||||
是
|
||||
请求体数据类型
|
||||
·请求体
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
buns
|
||||
1.0.0
|
||||
version
|
||||
交换模型版本
|
||||
act
|
||||
Integer
|
||||
业务约
|
||||
数据删除。
|
||||
Integer
|
||||
创建新版本,-1覆盖与当前数据业务主键相同的
|
||||
数据,原数据主键不变,0修改数据1、2..创
|
||||
建新版本的版本层级
|
||||
data
|
||||
Array
|
||||
数据体,key参照交换模型属性名称,最大15000
|
||||
条数据
|
||||
·入参样例
|
||||
act": 0,
|
||||
nKey":["zc
|
||||
/版本控制字段
|
||||
"wellboreId":"wellbore
|
||||
//一级版本字段
|
||||
库里数据为SchemeId
|
||||
'zoneId":
|
||||
oneId1",//层位ID
|
||||
//数据主键
|
||||
'previous
|
||||
"depth":3299//深度值
|
||||
/分组字具
|
||||
级版本字具
|
||||
"zoneId":"zoneId2",//层位ID
|
||||
version":"0001_001",//版本号,每级版本号4位,格式0001_0001(二级级版本)
|
||||
是θ否
|
||||
depth":4000//深度值
|
||||
响应数据格式
|
||||
de": 0,
|
||||
data": true
|
||||
de":-5
|
||||
"验证不通过",
|
||||
"data";[
|
||||
14
|
||||
name":"必填字段不能为空"
|
||||
m7t"
|
||||
反约束",
|
||||
"message":"有2条数据重复",
|
||||
data":[
|
||||
wellId":"xxxx
|
||||
ge":"有1条数据重复",
|
||||
"data": [
|
||||
33
|
||||
wellId"
|
||||
message":"有2条数据重复",
|
||||
data": [
|
||||
"wellId":" x>
|
||||
dataRegion":"xxxxx
|
||||
?
|
||||
正未通过"
|
||||
data":[
|
||||
966
|
||||
"wellId":"xxxxxxx
|
||||
62
|
||||
name":"提交的数据包含多
|
||||
ype":"ver
|
||||
rsionTable!
|
||||
message":
|
||||
“有2个一级版本",
|
||||
data":[]
|
||||
响应码
|
||||
返回码
|
||||
描述
|
||||
操作处理成功
|
||||
操作处理失败
|
||||
验证不通过
|
||||
2.更新接口
|
||||
接口地址:M1/(schemaName}
|
||||
请求方法:PUT
|
||||
接口描述:
|
||||
通用数据批量更新,数据解析后,批量更新交换模型对应的数据库表中,遵循同时成功、同时失败的
|
||||
事务原则。
|
||||
请求参数
|
||||
·路径参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
?
|
||||
String
|
||||
交换模型名称
|
||||
·请求头
|
||||
参数名称
|
||||
参数值
|
||||
是否必须
|
||||
备注
|
||||
Token
|
||||
鉴权Toker
|
||||
Content-Type
|
||||
application/jison
|
||||
请求体数据类型
|
||||
女长赠!·
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
version
|
||||
String
|
||||
1.0.0
|
||||
交换模型版本
|
||||
Integer
|
||||
act
|
||||
;0忽略;1覆盖,原
|
||||
数据主键不变;2采用新数据,旧数据删除
|
||||
Integer
|
||||
创建新版本,-1覆盖与当前
|
||||
原数据主
|
||||
键不变,0修改数据1、2. 创建新版本的版本层级
|
||||
List<String>
|
||||
版本控制字段,优先以versionKey根据版本
|
||||
树定位创建新版本层级
|
||||
data
|
||||
Array
|
||||
·入参样例
|
||||
act":
|
||||
'bsflag":
|
||||
"wellCol
|
||||
测试1
|
||||
"wellId":"测试1",
|
||||
"dataRegion":"测试1
|
||||
"bsflag": 1,
|
||||
响应数据格式
|
||||
'code": 0,
|
||||
操作处理成功"
|
||||
"data": true
|
||||
sage":
|
||||
"验证不通过",
|
||||
"data":[
|
||||
11
|
||||
ne":"必填字段不能为空
|
||||
message":"wellId、dataRe
|
||||
gion不能为空"
|
||||
违反约束",
|
||||
data":[
|
||||
33
|
||||
"namel:"提交数据与数据库对比有违反约
|
||||
message":"有1条数据重复",
|
||||
373
|
||||
data":[
|
||||
38
|
||||
"message:""有2条数据重复",
|
||||
data":[
|
||||
wellId":"xxx
|
||||
wellId":
|
||||
63
|
||||
45
|
||||
提交的数据包含多个
|
||||
message":"有2个一级版本",
|
||||
响应码
|
||||
返回码
|
||||
描述
|
||||
操作处理成功
|
||||
操作处理失败
|
||||
验证不通过
|
||||
3.删除接口
|
||||
单主键
|
||||
接口地址:M1/(schemaName}
|
||||
请求方法:
|
||||
DELETE
|
||||
通用数据批量删除,批量删除对应的业务数据,数据进行逻辑删除
|
||||
接口描述:
|
||||
请求参数
|
||||
·路径参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
String
|
||||
交换模型名称
|
||||
·请求头
|
||||
参数名称
|
||||
参数值
|
||||
是否必须
|
||||
备注
|
||||
Authorization
|
||||
Token
|
||||
鉴权Token
|
||||
是
|
||||
Content-Type
|
||||
aplication/json
|
||||
请求体数据类型
|
||||
·请求体
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
version
|
||||
String
|
||||
是
|
||||
1.0.0
|
||||
交换模型版本
|
||||
data
|
||||
List<String>
|
||||
是
|
||||
主键id数据集,最大15000条数据
|
||||
·入参样例
|
||||
1am//2am-swp/
|
||||
version":"1.0.0"
|
||||
响应数据格式
|
||||
de":0,
|
||||
"data": true
|
||||
5]
|
||||
响应码
|
||||
返回码
|
||||
描述
|
||||
操作处理成功
|
||||
0
|
||||
操作处理失败
|
||||
多主键
|
||||
接口地址:/v1/<schemaName}
|
||||
请求方法:DELETE
|
||||
接口描述:数据批量删除/逻辑删除/适用多主键
|
||||
请求参数
|
||||
·路径参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
String
|
||||
交换模型名称
|
||||
·请求头
|
||||
参数名称
|
||||
参数值
|
||||
是否必须
|
||||
Authorization
|
||||
Token
|
||||
Content-Type
|
||||
application/jison
|
||||
是
|
||||
·请求体
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
version
|
||||
String
|
||||
1.0.0
|
||||
交换模型版本
|
||||
data
|
||||
List<Mal
|
||||
主键id数据集,最大15000条数据
|
||||
·入参样例
|
||||
1am/T/11am-swp/ de/
|
||||
ersion": "1.0.0"
|
||||
响应数据格式
|
||||
响应码
|
||||
返回码
|
||||
描述
|
||||
操作处理成功
|
||||
操作处理失败
|
||||
4.列表查询
|
||||
接口地址: /M1/[schemaName)/{version}
|
||||
请求方法:POST
|
||||
接口描述:列表数据查询,通过通用SDK,提供数据列表查询功能
|
||||
请求参数
|
||||
·路径参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
string
|
||||
交换模型名称
|
||||
version
|
||||
String
|
||||
1.0.0
|
||||
交换模型版本
|
||||
·请求头
|
||||
参数名称
|
||||
参数值
|
||||
是否必须
|
||||
备注
|
||||
Authorization
|
||||
Content-Type
|
||||
application/ison
|
||||
·查询参数
|
||||
名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
苗
|
||||
pageNo
|
||||
Integer
|
||||
1
|
||||
页码(从1开始)
|
||||
pagesize
|
||||
Integer
|
||||
否
|
||||
分页大小(最大值200)
|
||||
String
|
||||
量纲转换编码
|
||||
·请求体
|
||||
可参照文档目统一
|
||||
查询SDK设计
|
||||
参数名称
|
||||
类型
|
||||
是否必须
|
||||
默认值
|
||||
描述
|
||||
isSearchCount
|
||||
boolean
|
||||
false
|
||||
是否统计总条
|
||||
数,example(true)
|
||||
query
|
||||
object
|
||||
查询条件
|
||||
array
|
||||
False
|
||||
fiter
|
||||
筛选条件
|
||||
logic
|
||||
string
|
||||
alse
|
||||
可选值为:
|
||||
string
|
||||
条件项
|
||||
symbol
|
||||
string
|
||||
运算符,可选值为:>、
|
||||
>=、<、<=、>、<、=
|
||||
IS时,条件值只能为
|
||||
NULL或NOT NULL
|
||||
-realValue
|
||||
array
|
||||
false
|
||||
条件值
|
||||
ubFilter
|
||||
aray
|
||||
False
|
||||
子条件
|
||||
objet
|
||||
alse
|
||||
object
|
||||
排序属性,key=属性名
|
||||
-groupFields
|
||||
array
|
||||
分组属性group by
|
||||
groupFilte
|
||||
object
|
||||
alse
|
||||
筛选器
|
||||
string
|
||||
string
|
||||
条件项
|
||||
string
|
||||
可选值为:
|
||||
<>、I=、IN、NOTIN、
|
||||
LIKE、IS;当运算符为
|
||||
NULL或NOT NULL
|
||||
realValue
|
||||
array
|
||||
false
|
||||
条件值
|
||||
ubFilter
|
||||
array
|
||||
False
|
||||
子条件
|
||||
,入参样例
|
||||
isSearchcount": true,
|
||||
elds":[
|
||||
'real
|
||||
key": "well
|
||||
兴华1"
|
||||
"subFilter": [
|
||||
"subFilter": [
|
||||
dsid": "ASC
|
||||
响应数据格式
|
||||
"code":"o,
|
||||
"操作处理成功"
|
||||
data:
|
||||
:136
|
||||
"dsid": "1007024
|
||||
001283",
|
||||
'wellbo
|
||||
"qqqq",
|
||||
'runNo": "15"
|
||||
下防冲蚀管*
|
||||
'steelGd
|
||||
'wallThk": 0,
|
||||
'upBuckleType"
|
||||
BuckleType"
|
||||
'tubularQuantity": 1
|
||||
: 69.54
|
||||
27
|
||||
eSize": null,
|
||||
28 29
|
||||
nstren
|
||||
null,
|
||||
'tubularM
|
||||
"jobtype""
|
||||
"createDate": "2022-04
|
||||
"updateDate": null,
|
||||
"updateUserId": null,
|
||||
'checkDate": null
|
||||
: null,
|
||||
565 75758966627456
|
||||
"celLName":"油管挂",
|
||||
'steelGd": null,
|
||||
'wallThk": 0,
|
||||
"upBuckleType": "4_1/2"FOx"
|
||||
owerBuckleType": "4_1/2"FOx"
|
||||
ippingInDepth
|
||||
10.83,
|
||||
89
|
||||
"holesize": null,
|
||||
'joinStrength": null
|
||||
188
|
||||
updateDate": null,
|
||||
288 4568
|
||||
checkDat
|
||||
'bsflag": 1
|
||||
sourceCr
|
||||
version"
|
||||
88
|
||||
响应码
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
@@ -0,0 +1,206 @@
|
||||
文昕
|
||||
RESTful接口设计要求
|
||||
1.使用范围
|
||||
本设计要求旨在基于标准的 RESTul 协议, 对部分内容的使用加以约束,指导 RESTu接口的设计人员设计出相对统
|
||||
一的接口,提高接口的可复用性,增强系统的扩展性。
|
||||
2.参考文档
|
||||
RESTful官方文档
|
||||
HTTP官方文档
|
||||
3.基本规范
|
||||
3.1命名规约
|
||||
【推荐】RESTful接口采用以下格式进行命名:[协议]:/[域名]/[项目代码]/[模块名称]/[版本][资源路径]。模块名称可
|
||||
以有多级,使用斜线()分开,根据项目的情况确定。
|
||||
-ia 明 /asn/sas//ne/woeade/s
|
||||
注意:一个产品无论后端有多少个服务组成也应该只有一个API入口,示例中的API入口为:
|
||||
https://api.example.com/
|
||||
3.2 域名
|
||||
【推荐】在不会引起跨域问题的前提下,应该尽量将 API部署在专用域名之下。
|
||||
正例:http:/api.example.com
|
||||
3.3模块
|
||||
【强制】模块命名尽量采用全小写单词,如果需要连接多个单词,则采用中划线(),如果要把
|
||||
成一个具有描述性的名称则使用下划线()连接。
|
||||
3.4资源路径
|
||||
1。【强制】资源的路径应该从根到子依次如下:
|
||||
{resources)/{resource_id/(sub_resources)/<sub_resource_id)/(sub_resource_property}
|
||||
2.【强制】URL中不采用大小写混合的驼峰命名方式,尽量采用全小写单词,如果需要连接多个单词,则采用连接
|
||||
符,不能出现。
|
||||
正例:/api/task_groups
|
||||
反例:/api/task-groups
|
||||
3.【强制】接口路径使用资源名词而非动词,动作应由 HTTP Method 体现,资源组可以进行逻辑嵌套
|
||||
正例:POST/api/tasks或/api/task_groups/1/tasks 表示在id为1的任务组下创建任务
|
||||
反例: POST /api/create_task
|
||||
②
|
||||
4.接口路径中的获取复数资源的时候使接口路径中的获取复数资源的时候使用复数
|
||||
正例:/api/tasks
|
||||
反例:/api/task/list
|
||||
3.5请求参数
|
||||
1.
|
||||
【强制】如果有请求参数,请求参数使用小驼峰。
|
||||
2.【推荐】header中要加入一个唯一的追踪标识符“X-Trace-ID”(Trace ID),用于请求的跟踪和对账。
|
||||
3.POST请求参数放入body中,使用json 编码方式。
|
||||
正例:
|
||||
5 ["title":"test","subvValue":[1,2,3]}
|
||||
3.6过滤信息
|
||||
【推荐】在请求时推荐使用过滤,排序和分页,减轻服务器的负担和网络通信的数据量。
|
||||
1.分页参数
|
||||
。Limit:指定每页显示的资源数量。
|
||||
。offset:指定从哪里开始获取资源。
|
||||
。或者使用page参数
|
||||
2. 排序参数
|
||||
指定排序的字段。
|
||||
巩order :
|
||||
:指定排序的方向 (升序或降序)。
|
||||
3. 筛选参数
|
||||
。filter:根据特定条件筛选资源。
|
||||
可以使用多个筛选参数来细化条件。
|
||||
4. 搜索参数
|
||||
。search :对资源进行搜索。
|
||||
1 GET /api/items?s
|
||||
5.日期范围
|
||||
。 date_from 和 date_to : 指定日期范围进行筛选。
|
||||
4.响应
|
||||
(message)、响应数据(data)。
|
||||
4.1 状态码(code)
|
||||
【推荐】状态码分成三类,业务逻辑错误(1xxx)、数据验证错误(2xxx)和其它(3xx)
|
||||
·业务逻辑错误
|
||||
错误代码
|
||||
错误消息
|
||||
Invalidoperation
|
||||
请求的操作无效或未被支持。
|
||||
00
|
||||
请求的资源不存在
|
||||
003
|
||||
请求创建的资源已经存
|
||||
1004
|
||||
1005
|
||||
PermissionDenied
|
||||
用户没有足够的权限执行请求的操作
|
||||
1006
|
||||
QuotaExceeded
|
||||
1007
|
||||
ServiceUnavailable
|
||||
服务当前不可用,可能是临时的
|
||||
1008
|
||||
1009
|
||||
PaymentRequired
|
||||
请求的操作
|
||||
旦未提供支付信息
|
||||
·数据验证错误
|
||||
错误代码
|
||||
错误消息
|
||||
描述
|
||||
2001
|
||||
ValidationErr
|
||||
2002
|
||||
请求中缺少必要的字段
|
||||
2003
|
||||
InvalidField
|
||||
请求中的
|
||||
字段值无效
|
||||
2004
|
||||
2005
|
||||
2006
|
||||
2007
|
||||
·其他错误
|
||||
错误代码
|
||||
错误消息
|
||||
描述
|
||||
3001
|
||||
Timeout
|
||||
请求处理超时。
|
||||
3002
|
||||
NetworkError
|
||||
网络错误,如DNS查询失败或连接拒绝。
|
||||
ConfigurationError
|
||||
服务配置错误,如数据库连接失败。
|
||||
3004
|
||||
系统正在维护中,暂时无法提供服务。
|
||||
ystemMaintenance
|
||||
UnknownError
|
||||
4.2信息描述(message)
|
||||
【强制】信息描述填写项目定义的状态值。
|
||||
正例:
|
||||
object类型数据
|
||||
2
|
||||
eep
|
||||
51
|
||||
4.3 响应数据(data)
|
||||
1. 【强制】 array 类型数据。通过 list字段,
|
||||
a的Object结构
|
||||
正例
|
||||
ay类型数据。
|
||||
"code":100000,
|
||||
"ist":[]
|
||||
2.【强制】空数组使用,而不是 null。
|
||||
正例:
|
||||
反例
|
||||
"role_ids": null
|
||||
5.异步策略
|
||||
RESTul接口的异步策略是指在设计和实现 RESTful API时采用的一种方法,它允许服务器在处理请求时不必立即返
|
||||
回结果,而是可以在处理完成后通过某种机制将结果通知给客户端。这种策略适用于那些处理时间较长或者需要等待
|
||||
其他操作完成的请求,如大量数据的处理、远程服务的调用等。
|
||||
5.1 复杂业务逻辑
|
||||
在业务逻辑比较复杂,不能第一时间获取到结果的接口,建议使用异步的策略,另外设计一个查询结果的接口,或者
|
||||
利用webhooks、事件源(Server-Send Event)、websocket等技术。
|
||||
5.2大文件上传下载
|
||||
【推荐】 对于大文件的上传下载建议使用异步策略,接口快速返回,文件参与的事务分别进行处理,在返回结果中携
|
||||
带可查询进度的接口地址。
|
||||
【推荐】文件上传成功返回文件ID,避免暴露内部路径。
|
||||
【推荐】设计独立的文件上传和下载接口,并独立部署避免和其它服务使用相同的网关,造成其它服务的延迟。
|
||||
说明文性
|
||||
接口描述
|
||||
详细解释接口的用途,包括业务场景、处理逻辑等。例如:
|
||||
此接口用于获取系统中已注册用户的基本信息,包括用户名、年龄、性别等,以及它的处理逻辑和可能的业务场
|
||||
景。
|
||||
请求头
|
||||
·列出必须包含的请求头信息,如Content-Type:appLication/json 用于表示请求体的格式为JSON。
|
||||
:对于需要身份验证的接口,说明认证相关的请求头,如Authorization:Bearer[token]。
|
||||
请求体
|
||||
·如果请求方式允许有请求体(如POST、PUT),详细说明请求体的结构。
|
||||
给出请求体数据类型,并给出示例数据。例如:
|
||||
1{
|
||||
4}
|
||||
响应头
|
||||
【强制】列出可能包含的响应头信息,如“Content-Type: appiationjson"表示响应体为JSON格式。
|
||||
响应体&状态码
|
||||
·根据不同的状态码,详细说明响应体的结构。
|
||||
给出成功和失败情况下的示例数据。例如,对于获取用户信息成功的响应
|
||||
4f"age: 25,
|
||||
·对于错误情况,给出错误返回的示例数据:
|
||||
数据格式
|
||||
【推荐】参数或者返回值如果有表示状态的字段,要用枚举类型定义出来。
|
||||
【推荐】时间字段以ISO 8601格式返回:YYYY-MM-DDTHH:MM:SS+08:00
|
||||
【推荐】 如果时间的精度要求到毫秒级别,使用 UNIX 时间戳。
|
||||
格式
|
||||
含义
|
||||
YYYY
|
||||
是公历中0000到9999年的十进制数字,
|
||||
“((连字符)在字符串中实际出现两次。
|
||||
是一年中从01(1月)到12(12月)的月份。
|
||||
是一个月中从01到31的日期。
|
||||
“出现在字符串中,表示时间元素的开始。
|
||||
是自午夜以来经过的完整小时数,以00到24的两位小数表示。
|
||||
“(冒号)在字符串中实际出现两次。
|
||||
是自小时开始以来的完整分钟数,从00到59的两位小数。
|
||||
是自分钟开始以来的完整秒数,从00到59的两位小数。
|
||||
”(点)按字面意思出现在字符串中。
|
||||
是指定为
|
||||
正例:
|
||||
1#原时间
|
||||
2 Updated Date:2017-12-04T18:07:57+08:00
|
||||
Registry Expiry Date:2018-12-04T18:07:4
|
||||
#换算成北京时间:
|
||||
8 Creation Date:2017-12-05 02:07:44
|
||||
9Registry Expiry Date:2018-12-0502:07:44
|
||||
7.安全
|
||||
7.1 网络环境划分
|
||||
【推荐】将网络环境划分为三种,即互联网环境、石油内部网络环境以及系统内部微隔离网络环境。接口设计人员要
|
||||
依据使用环境来确定接口设计时所采用的安全策略。
|
||||
·互联网环境:与外部互联的环境。
|
||||
·石油内部网络环境:中石油的内部网络。
|
||||
·系统内部微隔离网络环境:使用微隔离技术为一组微服务隔离出来的独立环境。
|
||||
7.2认证和授权
|
||||
应使用安全的身份验证和授权机制来验证客户端的身份,并确定其是否有权访问特定的资源。
|
||||
7.2.1 API Key
|
||||
【推荐】API Key通常用于简单的API访问控制,
|
||||
,适用于不需要用户授权的场景,服务器根据APIKey识别客户端并允
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.7 MiB |
@@ -0,0 +1,423 @@
|
||||
文昕
|
||||
开发指南-后端
|
||||
2024年7月4日创建
|
||||
1.环境介绍
|
||||
1.应用对外域名https://www.dev.ic
|
||||
deas.cnpo
|
||||
2.应用线上部署环境是瑞道云容器平台,点击这里访问
|
||||
3.JDK版本要求:jdk17,点击这里下载
|
||||
5.本地开
|
||||
需要将kt-co
|
||||
nect启动,才可以访问数据库
|
||||
redis等线上中间件,同时也可以访问线上部署的微
|
||||
服务。下图是访问应用的3种方式,第一种适合服务间相互调用,第二种适合前后端联调,第三种适合最终用户
|
||||
瑞道云(容器平台)
|
||||
例后端应用
|
||||
本机开发环境
|
||||
端道云域名网关
|
||||
2.私服地址
|
||||
<settings
|
||||
(mlns:xsi="http: //www.w3.org/2001/XMLSch
|
||||
xsi:schema
|
||||
<mirrorof>cent
|
||||
梦想云Maven私服地址:https://dev.epaio/nexus/content/groups/public/
|
||||
阿里云Maven私服地址:https:/maven.aliyun.com/repository/public/
|
||||
3.常用服务
|
||||
名称
|
||||
地址
|
||||
说明
|
||||
配置中心服务
|
||||
htt:/springclo
|
||||
配置中心地址
|
||||
http://gitea:3000
|
||||
配置中心存储仓库,存放配置文件
|
||||
注册用户需要开启二次认证
|
||||
网关地址
|
||||
http://gateway:4000
|
||||
这个是在kt-connect环境下访问的地
|
||||
外部网关地址
|
||||
4.脚手架
|
||||
4.1生成项目代码
|
||||
etype:generate
|
||||
Di
|
||||
DarchetypeGroupId=cnpc.ide
|
||||
DarchetypeArtifactId=ideas-arch
|
||||
8 -DartifactId=example \
|
||||
chetype:
|
||||
nerate\
|
||||
-Dgrou
|
||||
on=1.0.0
|
||||
-Scan应及时修改为正确的mapper目录,如下图
|
||||
4.2非WEB运行
|
||||
一些应用只是用于执行一次性任务,不需要启动WEB监听端口,则可以将Appjava的代码更改为如下格式;
|
||||
cnpc.ideas.example.serv
|
||||
vice.ConfigService;
|
||||
org.springframework.boot.au
|
||||
11 @slf4j
|
||||
public static void main(String[] args) [
|
||||
15
|
||||
ApplicationType.NONE);
|
||||
builder.run(args);
|
||||
19
|
||||
ru(写t业逻
|
||||
Foo() ;
|
||||
5.输入输出
|
||||
5.1响应结构
|
||||
code":0,// 业务响应码。默认值为0,表示正常。
|
||||
处理成功"
|
||||
"data":null // 业务数据
|
||||
5
|
||||
5.2响应编码
|
||||
值说明
|
||||
示例
|
||||
请求被正常处理
|
||||
{"code": 0,"me
|
||||
"操作处理成功",,"data":null
|
||||
通用异常值,在异常信息没有被明确归类
|
||||
:"这是一个测试错误","data":nul
|
||||
5.3分页请求
|
||||
参数名称
|
||||
参数值
|
||||
pageNo
|
||||
页码,从1开始
|
||||
pageSize
|
||||
每页显示记录数
|
||||
是否检索总记录数,如果是 false,则 totai 为 null,在全量同步数据时,建议设置为 false,以加快检索速度
|
||||
5.4分页响应
|
||||
'message":"操作处理成功",//结果描述信息
|
||||
码,从1开始
|
||||
pageSize": 2,
|
||||
total":3220,//总记录数
|
||||
List":[],//
|
||||
业务数据
|
||||
6.命名规则
|
||||
6.1后端应用
|
||||
假如要开发后端 example 应用,那么命名中涉及到:数字编码、应用名称、系统编码、lapi 前缀
|
||||
分类
|
||||
应用名称
|
||||
示例应用后端
|
||||
说明
|
||||
开发平台
|
||||
应用编码
|
||||
4201example
|
||||
数字编码+应用名称,数字编码规则参考
|
||||
系统
|
||||
ideas2
|
||||
开发的应用所属子系统的编码
|
||||
负戴名称
|
||||
mx-4201example
|
||||
格式为:系统编码+应用编码
|
||||
瑞道云-服务名称
|
||||
mx-4201example
|
||||
服务名称不带数字
|
||||
后端服务访问地址
|
||||
http://mx
|
||||
微服务互访使用的地址,本质就是通过
|
||||
4201example:8080/api/example
|
||||
k8s的serviceName访问
|
||||
前端用户访问地址
|
||||
http://wv
|
||||
路径格式:"/api"+服务名称
|
||||
应用
|
||||
路径前缀
|
||||
代码仓库
|
||||
ttp://der
|
||||
示例后端
|
||||
下载4201example.zip
|
||||
代码示例中有两个分支:
|
||||
分支
|
||||
此分支不依赖外部服务,可以下载后可以直接启动,以便快速体验代码效果
|
||||
6.2前端应用
|
||||
假如要开发前端example 应用
|
||||
那么命名中涉及到:数字编码、应用名称、系统编码、-front后缀
|
||||
分类
|
||||
应用名称
|
||||
示例应用后端
|
||||
说明
|
||||
开发平台
|
||||
应用编码
|
||||
5201example-front
|
||||
数字编码规贝
|
||||
参考目工程命名规范
|
||||
系统编码
|
||||
ideas2
|
||||
开发的应用所属子系统的编码
|
||||
瑞道云
|
||||
负载编码
|
||||
mx-5201example-front
|
||||
格式为:系统编码+应用编码
|
||||
服务名称
|
||||
服务名称不带数字
|
||||
用户访问地址
|
||||
http://www.
|
||||
路径格式:服务名称去除-front 后缀
|
||||
路径前缀
|
||||
应用
|
||||
/example/*
|
||||
路径格式:服务名称去除-front 后缀
|
||||
代码仓库
|
||||
->协同开发子系统->应
|
||||
01exampl
|
||||
6.3单体应用
|
||||
当前的“单体应用”是相对狭义的,指的是前后的都在一
|
||||
体应用的命名规则如下:
|
||||
分类
|
||||
应用名称
|
||||
示例应用后端
|
||||
说明
|
||||
应用编码
|
||||
4201example-app
|
||||
后缀必须是-app 结尾,
|
||||
数字编码规则
|
||||
参考目工程命名规范
|
||||
系统编码
|
||||
开发的应用所属子系统的编码
|
||||
瑞道云
|
||||
负载编码
|
||||
ideas2-5201example-app
|
||||
格式为:系统编码+应用编码
|
||||
服务名称
|
||||
example-app
|
||||
服务名称不带数字
|
||||
用户访问地址
|
||||
http://ww.c
|
||||
pc/exmaple
|
||||
路径格式:服务名称去除-app 后缀
|
||||
?
|
||||
应用
|
||||
路径前缀
|
||||
路径格式:服务名称去除-app 后缀
|
||||
后端地址通常为:/example/api/**
|
||||
前端地址通常为:/exam
|
||||
6.4 GIT
|
||||
在简单场景下,可以只有两个分支:develop和 master
|
||||
以下是环境和代码分支的关系,制品晋级方式参考目应用部署手册:
|
||||
环境
|
||||
分支
|
||||
说明
|
||||
开发环境
|
||||
develop、feature/xxx、 hotfxxx
|
||||
不稳定分支
|
||||
测试环境
|
||||
master、标签 V1.x.X
|
||||
稳定分支或标签
|
||||
预生成环境
|
||||
从测试制品库晋级过来
|
||||
生产环境
|
||||
从预生产制品库晋级过来
|
||||
全局配置
|
||||
6.5数据库
|
||||
1.常用的数据库字段命名参考
|
||||
字段编码
|
||||
字段类型
|
||||
描述
|
||||
create_ time
|
||||
update_time
|
||||
timestamp
|
||||
##date
|
||||
date
|
||||
日期相关命名,格式:yy-M-dd
|
||||
create_user_id
|
||||
varchar
|
||||
创建用户Id
|
||||
varchar
|
||||
创建用户姓名
|
||||
Varchar
|
||||
创建用户##
|
||||
p!lisn-ajepdn
|
||||
varchar
|
||||
最后更新用户Id
|
||||
aweu lasn-alepdn
|
||||
varchar
|
||||
最后更新用户姓名
|
||||
###JasnTajepdn
|
||||
varchar
|
||||
最后更新用户##
|
||||
2.常用的字段取值参考
|
||||
字段名
|
||||
字段类型
|
||||
参考值
|
||||
启用状态
|
||||
int
|
||||
启用=0
|
||||
字典启用状态
|
||||
停用=1
|
||||
管理员类型
|
||||
int
|
||||
应用管理员=0
|
||||
文件服务管理员类型
|
||||
系统管理员=1
|
||||
6.6 Redis命名
|
||||
Redis 的键必须添加应用前缀标识,比如 4205govern 项目要缓存用户信息到 Redis,则命名规则如下:
|
||||
应用名
|
||||
Redis 的键前缓
|
||||
键示例
|
||||
4205govern:
|
||||
4205gov
|
||||
Isers:(用户ID}
|
||||
6.7API参数命名
|
||||
参数名
|
||||
说明
|
||||
##Like
|
||||
模糊查询时使用,比如 nameLike
|
||||
keyword
|
||||
进行多个字段检索时使用,比如使用keywrd同时检索名称和编码
|
||||
7.配置中心
|
||||
详细说明文档 目udp-config-encryption-startr 配置文件加解密(已经合并到web-starter)
|
||||
7.1配置中心
|
||||
配置中心的技术栈是 springcloudconfig+git,使用这个技术栈的原因可以参考目配置中心选型,项目使用配置中
|
||||
心进行开发,需要以下步骤:
|
||||
1.启动安全桌面
|
||||
2.启动 kt-connect
|
||||
3.访问配置中心 http://itea:3000
|
||||
4.注册账号
|
||||
7.2加密数据
|
||||
: static void main(String[] args) throw
|
||||
String base64Key = "xx"
|
||||
System.out.println(m
|
||||
7.3密文配置
|
||||
配置文件中心配置加密后的敏感
|
||||
包取
|
||||
q:5672
|
||||
wpe :aweu
|
||||
password: KLldCipher[这里写密文]
|
||||
7.4 IDEA配置
|
||||
将密钥信息添加到 JVM Options中, 格式为: -Dkld.cofigalgrithm=sma -Dkld.configkey×x
|
||||
在启动kt-connect 后,可以从系统环境变量KLD_cONFIG_KEY中获取到 kld.config.key
|
||||
密钥配置方式如下图:
|
||||
1.编辑配置
|
||||
spriAgtiv
|
||||
3.输入密钥信息
|
||||
Run/Debug Configurations
|
||||
ApP
|
||||
CApP
|
||||
Run on:
|
||||
Local
|
||||
Manage trgets.
|
||||
8.健康检查
|
||||
健康检查一般用于应用滚动更新,具体配置参考 目容器探针设计
|
||||
9.常见问题
|
||||
9.1 容器中访问HTTPS域名
|
||||
1. 针对 springboot 项目,将此 Dockefile文件放到项目根目录下
|
||||
注意:执行 import-jidk-certs.sh 必须使用 root 权限,不要添加 USER app 指令
|
||||
a. JDK17
|
||||
ENV JAVA_OPTS=-XX:+UseCon
|
||||
ENV
|
||||
RUN_ARGS="
|
||||
duse
|
||||
6.JKD8
|
||||
ENV JAVA_OPTS=
|
||||
ENV RUN_ARGS=I
|
||||
COPY ta
|
||||
CMD ["sh",
|
||||
-c 'java -jar ${
|
||||
2.编辑负载配置,添加JDK_CERT_URLS变量,指向证书下载地址,多个地址使用逗号分割,比如
|
||||
JDKCERU=htp//:0/share/mis/deapccrt,t:/s:0/share/is/devidea
|
||||
9.2 本地开发访问HTTPS域名
|
||||
1.下载以下三个证书文件到任意目录
|
||||
集成开发应用支撑系统的HTTPS域名证书
|
||||
说明
|
||||
dev.ideas.cnpc.crt
|
||||
这个是开发环境的证书
|
||||
ideas.cnpc.crt
|
||||
测试、预生产、生产环境使用的是同一
|
||||
_.ideas.cnpc.crt
|
||||
这个是MinlO的证书
|
||||
2.在证书下载目录下执行导入命令-JDK17
|
||||
"d:\jdki7\lib\security\cacerts" -storepass changeit -noprompt
|
||||
4导入集成开发应用支撑系统的测试、预生产、生产环境证书
|
||||
5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt
|
||||
"d:\jdk17\lib)security\cacerts" -storepass changeit -noprompt
|
||||
注意:1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录
|
||||
2、d:jidk17是本文档编辑人本机的JDK地址,实际操作时使用你本地的JDK地址
|
||||
3、JDK 密钥库口令是 changeit
|
||||
3. 在证书下载目录下执行导入命令 - JDK8
|
||||
"d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt
|
||||
4#导入集成开发应用支撑系统的测试、预生产、生产环境证书
|
||||
5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt
|
||||
"d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt
|
||||
注意:1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录
|
||||
2、d:Vidk8是本文档编辑人本机的JDK地址,实际操作时使用你本地的JDK地址
|
||||
3、libsecuritylcacerts 是jdk下的jre目录,不是单独的jre
|
||||
4、JDK 密钥库口令是 changeit
|
||||
9.3 git报ssl错误
|
||||
?
|
||||
禁用 ssl验证
|
||||
9.4变更git地址
|
||||
:通过更新配置文件变更指向的远程git仓库地址
|
||||
第一
|
||||
种方式:
|
||||
第二种方式:通过命令行变更
|
||||
9.5配置数据库schema
|
||||
pguse
|
||||
nection-in
|
||||
Kt-connect 启动后,会自动将配置文件密钥信息写入到系统环境变量中,变量名称是:
|
||||
KLD_CONFIG_ALGORITHM、KLD_CONFIG_KEY,变量写入后,IDE需要重启,才能读取到环境变量,如果不想重
|
||||
启,可以将密钥信息添加到 JVMOptions 中,格式为:-Dkld.cofigalgorthm=x-Dkd.configkey=x,如下图:
|
||||
编辑配置
|
||||
?
|
||||
2.显示 VM Optoins 输入框
|
||||
√ Active
|
||||
3.输入密钥信息
|
||||
ApP
|
||||
Local
|
||||
Manage targets.
|
||||
Build and run
|
||||
9.7 redis 连接失败
|
||||
问:在jvm中设置kt的socks代理,连接依然失败
|
||||
答:springcloud中的redis默认不会使用jvm中设置的代理,需要手动读取,以下是4201example 中配置的代码
|
||||
io.lettuce
|
||||
io.lettuce.core
|
||||
11l import javanet.InetSocketAddess;
|
||||
16
|
||||
@0verride
|
||||
public void customize(ClientResources.Builder builder)
|
||||
socksProxyPort = Integer
|
||||
channel.pipeline();
|
||||
pipeline .addFirst(handler);
|
||||
需要在 pom.xml中添加这个依赖,Socks5ProxyHandler在此依赖中:
|
||||
versi
|
||||
5 </dependency>
|
||||
9.8找不到这样的主机:redis或sql-proxy
|
||||
问:连接了kt,并在jvm中设置了kt的socks代理,但是启动时找不到这样的主机:redis或sql-proxy
|
||||
答:修改本地host文件,增加以下配置
|
||||
211.96.135.145 sql-pre
|
||||
9.9 信任 nexus 证书
|
||||
安全桌面访问htps:/dvcloud.cnpc:8081私服下载不了jar包的一个解决办法,自己测试有效
|
||||
注意:所有操作都在安全桌面外操作!!
|
||||
(1)首先浏览器访问htp:/devcloud.cnpc:8081,参看下图点击浏览器安全设置图标,找到【导出】按钮,导出
|
||||
devcloud.cnpc.crt证书文件
|
||||
(2)将证书导入jdk的证书库
|
||||
会提示输入密钥库
|
||||
默认changeit
|
||||
会提示是否信任此证书,输入是
|
||||
9.10 maven 忽略https验证
|
||||
环境变量方式
|
||||
命令行方式
|
||||
9.11maven构建报错
|
||||
可以尝试以下几个步骤修复:
|
||||
1.通过环境变量忽略 https 验证
|
||||
2.设置.m2/settings.xml 文件
|
||||
3.在命令行执行n
|
||||
nvn cleanpackage-e-U
|
||||
ERROR
|
||||
import POM:The
|
||||
o.prc
|
||||
ERROR
|
||||
org.sp
|
||||
for cnpc.kld.fr
|
||||
10.相关文档
|
||||
目后端高码框架用户手册说明文档
|
||||
目应用部署手册
|
||||
目工程命名规范
|
||||
回工程台账
|
||||
目数据变更通知服务
|
||||
建设中。。。
|
||||
建设中。
|
||||
建设中。.。
|
||||
建设中。。。
|
||||
反向引用(2)@
|
||||
本文引用(9)
|
||||
需求调研清单
|
||||
需求调研清单
|
||||
?
|
||||
Reference in New Issue
Block a user