This commit is contained in:
gongwenxin
2025-06-16 14:49:49 +08:00
parent adc1a0053f
commit df90a5377f
210 changed files with 323584 additions and 12804 deletions
+699
View File
@@ -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"
}
]
}
+1 -1
View File
@@ -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

+206
View File
@@ -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,避免暴露内部路径。
【推荐】设计独立的文件上传和下载接口,并独立部署避免和其它服务使用相同的网关,造成其它服务的延迟。
说明文性
接口描述
详细解释接口的用途,包括业务场景、处理逻辑等。例如:
此接口用于获取系统中已注册用户的基本信息,包括用户名、年龄、性别等,以及它的处理逻辑和可能的业务场
景。
请求头
·列出必须包含的请求头信息,如ContentTypeappLication/json 用于表示请求体的格式为JSON。
:对于需要身份验证的接口,说明认证相关的请求头,如AuthorizationBearer[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

+423
View File
@@ -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)
需求调研清单
需求调研清单
?