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 版本控制字段,优先以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 是 主键id数据集,最大15000条数据 ·入参样例 1am//2am-swp/ version":"1.0.0" 响应数据格式 de":0, "data": true 5] 响应码 返回码 描述 操作处理成功 0 操作处理失败 多主键 接口地址:/v1/、 >=、<、<=、>、<、= 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 响应码