功能介绍
发布数据集并创建已授权的订单。水印功能只支持“华北-北京四”区域
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/datashare/dataset/share
请求参数
表1 请求Body参数
参数 |
是否必选 |
参数类型 |
描述 |
orgID |
是 |
String |
组织id |
channelID |
是 |
String |
通道id |
cryptoMethod |
是 |
String |
加密方法,目前固定为SW |
cert |
是 |
String |
证书 |
sk |
是 |
String |
私钥 |
timestamp |
是 |
String |
时间戳 |
provider |
是 |
String |
数据发布者身份标识 |
providerName |
否 |
String |
数据发布者名称 |
productName |
是 |
String |
产品名称 |
productID |
是 |
String |
产品ID |
sampleUrl |
是 |
String |
样例数据存放地址 |
sampleSize |
否 |
String |
样例数据大小 |
sampleType |
否 |
String |
样例数据类型 |
sampleName |
否 |
String |
样例数据名称 |
fileType |
否 |
String |
数据文件类型 |
dataUrl |
是 |
String |
数据存放地址 |
dataHash |
否 |
String |
数据哈希 |
dataSize |
否 |
String |
数据大小 |
dataName |
否 |
String |
数据名称 |
description |
否 |
String |
数据集描述信息,在使用abe加密时,需要对加密策略进行详细描述 |
plainData |
是 |
String |
base64编码的明文数据 |
consumer |
是 |
String |
订单申请者身份标识 |
orderSeq |
否 |
String |
订单序列号,为空则随机生成 |
watermarkType |
否 |
String |
水印类型,visible明水印,blind暗水印,嵌入水印时,必须填写;不填写时默认不嵌入水印。嵌入的水印内容为:发布人did_productID。 |
file |
否 |
String |
加水印的文件,当对文件加水印时,plainData无效果 |
productIDKeywords |
否 |
Array of productIDKeywordsJson objects |
产品ID包含的索引关键字,用于按条件查询订单时使用,需要为设定的json格式 |
onChainStore |
否 |
String |
是否在链上存储加密后的数据,可设置为“true”或“false”,默认为“false”。当为“true”时,sampleUrl和dataUrl可以自动填充,不需要填写。水印功能暂不支持链上存储。 |
consumerName |
否 |
String |
使用者名称 |
creatorDID |
否 |
String |
数据集分享流程的创建者DID,action为“new”时,不需要填入 |
processID |
否 |
String |
数据集分享流程的流程ID,action为"new"时,不需要输入 |
stageName |
否 |
String |
本次数据集分享阶段的阶段名称 |
action |
否 |
String |
流程动作,新建:"new"、追加:"append"、不涉及:"",该字段不输入时视为不涉及 |
category |
否 |
String |
加密类型,symmetric/abe,默认为symmetric,如果使用abe加密,则policy必填 |
policy |
否 |
policy object |
abe策略 |
表2 productIDKeywordsJson
参数 |
是否必选 |
参数类型 |
描述 |
value |
否 |
String |
关键字值 |
表3 policy
参数 |
是否必选 |
参数类型 |
描述 |
Threshold |
是 |
Integer |
策略需要满足的属性阈值 |
Children |
是 |
Array of policy-children objects |
子属性列表 |
表4 policy-children
参数 |
是否必选 |
参数类型 |
描述 |
name |
是 |
String |
属性名 |
type |
是 |
String |
属性类型(plain,comparable和policy) |
value |
是 |
policy-children-comparablevalue object |
属性值,根据type确定具体参数。 当type为plain时,value为string类型属性值。 当type为policy时,value为子policy。 当type为comparable时,value包含了op、value和maxValue三部分。 |
表5 policy-children-comparablevalue
参数 |
是否必选 |
参数类型 |
描述 |
op |
否 |
String |
type为comparable时填写,比较类型符号(>,<或=) |
value |
是 |
String |
比较类型属性值,必须为整数 |
maxValue |
否 |
String |
type为comparable时填写,比较类型中value上限值 |
响应参数
状态码: 200
表6 响应Body参数
参数 |
参数类型 |
描述 |
consumer |
String |
订单消费者身份标识 |
consumerName |
String |
订单消费者名称 |
orderSeq |
String |
订单序列号 |
provider |
String |
订单提供者身份标识 |
providerName |
String |
订单提供者名称 |
productID |
String |
数据集产品id |
productName |
String |
数据集产品名称 |
price |
String |
订单价钱 |
applyTime |
String |
订单申请时间 |
encryptedAesKey |
String |
密钥 |
status |
String |
订单状态 |
reason |
String |
订单申请原因 |
lockProof |
String |
订单锁定证明 |
creatorDID |
String |
流程创建者DID,如果没有加入任何流程,为“” |
processID |
String |
当前订单所属流程ID,如果没有加入任何流程,为“” |
encryptData |
String |
base64编码的数据密文 |
状态码: 500
表7 响应Body参数
参数 |
参数类型 |
描述 |
errorCode |
String |
错误码 |
errorMsg |
String |
错误描述 |
请求示例
{
"orgID" : "ce0ac69b0c8648cd25b44a551780409767c8890b",
"channelID" : "mychannel",
"cryptoMethod" : "SW",
"cert" : "-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",
"sk" : "-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----",
"timestamp" : "2020-10-27T17:28:16+08:00",
"provider" : "did:example:DHkJjyD5wZwya6sd6BNBnG",
"providerName" : "test",
"productName" : "prodname",
"productID" : "product2",
"sampleUrl" : "http://hwcloud.com/sample.com/prodname2",
"sampleSize" : "10KB",
"sampleType" : "csv",
"sampleName" : "data_sub1",
"fileType" : "csv",
"dataUrl" : "http://hwcloud.com/prodname2",
"dataHash" : "2282ba7a1a2ef5700609214a997d3d4237a03bfd3632c6d089e57e7b6f467969",
"dataSize" : "100MB",
"dataName" : "mydata1",
"description" : "this is my second prod",
"plainData" : "base64 encoding string",
"consumer" : "did:example:3TMWx8owKHARgNwbj4ywmG",
"orderSeq" : "1",
"watermarkType" : "string",
"file" : "string",
"productIDKeywords" : "[{\"value\":\"taiyuan\"},{\"value\":\"renmin_hospital\"},{\"value\":\"medicine\"}]",
"onChainStore" : "string",
"consumerName" : "string"
}
响应示例
状态码: 200
订单信息
{
"consumer" : "did:example:3TMWx8owKHARgNwbj4ywmG",
"consumerName" : "Tyler",
"orderSeq" : "1",
"provider" : "did:example:DHkJjyD5wZwya6sd6BNBnG",
"providerName" : "hw",
"productID" : "product1",
"productName" : "prodname1",
"price" : "0",
"applyTime" : "1607332359",
"encryptedAesKey" : "BNGhPwjaTgpM+V7czzw1i4mH21KKN+XLKXHLqVsRIfybUCncqZNfomkRfzX4WEHj+oty1X9oCd4h6xMnRvs8BWE5Tvg6BJ6QTW/km9EO/FSYqzJf2GqQzAleAcLJrTBZ3LRbPaF87CgJ114ae7R+VK9VvfXQ8exuH2KMRD305dXieGpM4VPVv9u1BbL15Jpd/g==",
"status" : "ready",
"reason" : "I want product1",
"lockProof" : "",
"encryptData" : "base64 encoding string"
}
状态码: 500
失败响应
{
"errorCode" : "BCS.5002046",
"errorMsg" : "Incorrect number of arguments"
}