接口列表
1.令牌模块
1.1. 获取令牌
接口功能:生成访问受限资源时(比如:新建节点、文件存证、非公开文件下载等)需要提供的访问令牌。
接口规范:
- Method: GET
- URI: /token
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
secret | string | true | query | 服务安全码 |
serviceId | string | true | query | 服务编码 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
string | 令牌字符串 |
说明
服务编码
和服务安全码
从契链e证的服务中心
里获取。另外,令牌的有效期是30分钟,超时后需要重新申请。
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/token?secret=mNiPywFfpsRWVm3F&serviceId=9251067423a9467baa991eb53052c05d"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIzYWVjZGRhYTgzNTA0YzZkODBkMTA1ZWNkODhiNDk5NyIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU4NTY1MDA1N30.gw7a5GT3KDtwuPHwbL8b_GW9vBVIHQrz-okjPpYl5Wg"
}
1.2. 验证令牌
接口功能:对指定令牌的有效性进行验证。
接口规范:
- Method: POST
- URI: /token
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
token | string | true | query | 待验证令牌 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
bool | 令牌是否有效 |
- 访问示例:
Request>_
curl -X POST "https://api.qlen.cn/v1/token?token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIzYWVjZGRhYTgzNTA0YzZkODBkMTA1ZWNkODhiNDk5NyIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU4NTY1MDA1N30.gw7a5GT3KDtwuPHwbL8b_GW9vBVIHQrz-okjPpYl5Wg"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": true
}
1.3. 删除令牌
接口功能:使激活的令牌失效。
接口规范:
- Method: DELETE
- URI: /token
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
token | string | true | query | 待删除令牌 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
null | 无 |
- 访问示例:
Request>_
curl -X DELETE "https://api.qlen.cn/v1/token?token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIzYWVjZGRhYTgzNTA0YzZkODBkMTA1ZWNkODhiNDk5NyIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU4NTY1MDA1N30.gw7a5GT3KDtwuPHwbL8b_GW9vBVIHQrz-okjPpYl5Wg"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": null
}
2. 存证模块
2.1. 文件上传
接口功能:将需要契链提取哈希或者永久保存的文件上传。
接口规范:
- Method: POST
- URI: /file
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
file | file | true | formdata | 上传文件 |
token | string | true | query | 访问令牌 |
isEscrow | boolean | true | query | 是否存证 |
isPublic | boolean | false | query | 是否公开 |
title | string | false | query | 标题 |
note | string | false | query | 注释 |
userId | string | false | query | 用户编码 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
string | 文件编码 |
说明
是否存证
:是指上传的文件是否在契链永久保存。
是否公开
:是指存证文件是否允许所有人访问。
用户编码
:是指存证文件属于哪个契链用户。向契链e证上传文件的目的主要有两种:一是仅用于提取文件哈希,二是提取哈希并永久保存文件原文。
如果是第一种情况,则只需提交前三个必需的参数,并将isEscrow设为false即可,无需提交后面四个非必需参数。
如果是第二种情况,则后面的四个非必需参数视情况选择性提交。返回
文件编码
:该上传文件的唯一标识。可以传递给新建节点
接口,用于提取文件哈希;如果是存证文件,则可以传递给文件下载
接口,用于获取存证文件。
- 访问示例:
Request>_
curl -X POST "https://api.qlen.cn/v1/file?token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4YTMzMDgzODU5NzQ0MWFlOTIzMjJkYjlkY2YxNzcwNiIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU4NTcwOTE5MH0.eDDmjwwaS2Xor1EjGQ3HOFah9WnZtvoMTSF0Lt974Go" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "file=@EasyRecover.pdf;type=application/pdf"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": "3e262f715ca14af4832c323d00a9ecc6"
}
2.2. 文件下载
接口功能:下载已经存证的文件。
接口规范:
- Method: GET
- URI: /file/{fileName}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
fileName | string | true | path | 文件编码 |
token | string | false | query | 访问令牌 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
file | 文件内容 |
说明
如果存证的是公开文件,则无需传入token,即可通过链接直接获取文件。
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/file/5c600749ea774b2a87c6f4966c3d083b?token=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyOGU0MGNmMTI0OTk0ZDZhOTU2OTJiZjBiZGMyZTRkNCIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU4ODE2NDM5OX0.O3p0cHbeJW9UXAoHBA6uQpSOf6KOXmT_aYrOgn9K6Ds" --output tempfile.pdf
Response>_
tempfile.pdf
2.3. 文件验证
接口功能:验证上传文件是否在契链中存证,返回和上传文件特征一致的所有节点。
接口规范:
- Method: POST
- URI: /file/check
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
file | file | true | file | 上传文件 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回和验证文件特征一致的节点 |
- 访问示例:
Request>_
curl -X POST "https://api.qlen.cn/v1/file/check" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "file=@EasyRecover.pdf;type=application/pdf"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "50d174746f31b5ec143bb86dd7ade5f57abac3bcafd4814f5c2f7d4b0c73d428",
"nodeSeq": 103,
"timestamp": 1594738633390,
"nonce": 406150410,
"lastHash": "5654e6aacc61fa006823ea78eb2c8c14069757abca2c2fcbd6679ad776cd6cd3",
"referHash": "d79539994bcae1112fd6b94c42978e47a2d4bfd8c6f2d79aa07c924fe079c7a0",
"userId": "173c1185707a4dc98eb9a277f6dc47aa",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 128,
"infoHash": "61dfd7d15e42d96c61466a0c79fe93c8518e3c06bf39b719fd4484ab5f806e35",
"infoId": "111"
}
}
3. 公证模块
3.1. 新建节点
接口功能:在契链中添加新节点,将电子信息哈希进行公证。
接口规范:
- Method: POST
- URI: /node
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
token | string | true | json | 访问令牌 |
userId | string | true | json | 用户编码(可为空) |
referHash | string | true | json | 引用哈希(可为空) |
referType | int | true | json | 引用关系类型 |
hashVendor | int | true | json | 哈希提取者 |
hashAlgorithm | int | true | json | 哈希提取算法 |
infoHash | string | true | json | 信息哈希或文件编码 |
infoId | string | true | json | 信息标识 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回刚创建的节点 |
说明
用户编码
:公证信息所属用户的契链用户编码,如果没有则为空;
引用哈希
:和新建节点存在某种关联关系的节点的节点哈希,如果没有则为空;
引用关系类型
:与被引用哈希所在节点的关系类型,取值为0~7:0:通用关联(内联),1:废除,指示被关联的节点的信息已经作废,2:替换,指示被关联节点的信息已被本节点的信息代替,3:扩展,指示被关联节点的信息不完整,本节点信息作为对被关联节点信息的补充或扩展,4:通用关联(外联)。0~3,为内联关系,即只能和信息提供者自己的节点关联,契链创建节点时会对信息提供者身份做比对,不是自己的节点将会创建失败;4~7,为外联关系,可以关联所有已存在的节点。
哈希提取者
:表示信息的哈希值是由谁提取的,0:表示由契链平台提取,1:表示由信息提供者提取。
哈希提取算法
:表示信息的哈希值的提取算法,0:SHA-256,1:SM3(国密)。
信息哈希或文件编码
:如果哈希提取者
为0(由契链平台提取),则必须在这里提供上传文件编码
,上传文件编码
来源于文件上传
接口;如果哈希提取者
为1(由信息提供者提取),则必须在这里提供由信息提供者使用哈希提取算法
提取出的哈希值。
信息标识
:是指在信息提供者的系统中,能够唯一标识出该信息的编码。契链将来可以利用该编码和信息提供者系统进行对接,用于跟踪信息的状态;信息提供者也可以在自身系统未记录节点信息的情况下,利用该编码反向检索出信息和节点的关系。
- 访问示例:
请求参数的JSON结构如下:
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJmY2E0M2FmZmUwNzM0OTYxODU1MTBmZDVlOTc5ODk4ZSIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU5MjQwMzQyNn0.Es8c8MWKhWEHfvzPQqYG__2I-792HZ1z3FSlLsc8bO4",
"userId": "173c1185707a4dc98eb9a277f6dc47aa",
"referHash": "",
"referType": 0,
"hashVendor": 0,
"hashAlgorithm": 0,
"infoHash": "0edd3d844ade48f5b93a90b004c3c96f",
"infoId": "111"
}
Request>_
curl -X POST "https://api.qlen.cn/v1/node" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"token\": \"eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJmY2E0M2FmZmUwNzM0OTYxODU1MTBmZDVlOTc5ODk4ZSIsInN1YiI6ImFjY2VzcyIsImV4cCI6MTU5MjQwMzQyNn0.Es8c8MWKhWEHfvzPQqYG__2I-792HZ1z3FSlLsc8bO4\", \"userId\": \"173c1185707a4dc98eb9a277f6dc47aa\", \"referHash\": \"\", \"referType\": 0, \"hashVendor\": 0, \"hashAlgorithm\": 0, \"infoHash\": \"0edd3d844ade48f5b93a90b004c3c96f\", \"infoId\": \"111\"}"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "7f6ff23d9f0c7a875be056f58a32780c5ca8255d93676e8538272a26c1b78c45",
"nodeSeq": 432,
"timestamp": 1592402020961,
"nonce": 1755554462,
"lastHash": "bfb2c09224d8dbd4f3195e91c4dd49807206eb4c071c4fa5dd9fb7e58d93c032",
"referHash": "",
"userId": "173c1185707a4dc98eb9a277f6dc47aa",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "0a37e3df4d5cd2640a6e4e9ee701d88a5152d21c1ba8e1ef050b2a5ed6f56cae",
"infoId": "111"
}
}
3.2. 获取最新节点
接口功能:获取契链中的最新节点。
接口规范:
- Method: GET
- URI: /node
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回最新节点 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/node"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "2a39ef8aabea6e2ae7726aa1edf46ed77390bd35fe78d42ad6a65e9821adcc56",
"nodeSeq": 109,
"timestamp": 1588163368220,
"nonce": 857375586,
"lastHash": "b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": ""
}
}
3.3. 通过节点哈希获取节点
接口功能:获取指定节点哈希的节点。
接口规范:
- Method: GET
- URI: /node/nhs/{nodeHash}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
nodeHash | string | true | path | 节点哈希 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回指定节点哈希的节点 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/node/nhs/b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544",
"nodeSeq": 108,
"timestamp": 1588163236328,
"nonce": 415878769,
"lastHash": "e36d34bfccd40568af83ad369324675001e29c719051d83ccdaeebd35d425d8b",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "46600bc4116e415fb415cc01cf9a97d9"
}
}
3.4. 通过节点序号获取节点
接口功能:获取指定节点序号的节点。
接口规范:
- Method: GET
- URI: /node/seq/{nodeSeq}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
nodeSeq | long | true | path | 节点序号 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回指定节点序号的节点 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/node/seq/108"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544",
"nodeSeq": 108,
"timestamp": 1588163236328,
"nonce": 415878769,
"lastHash": "e36d34bfccd40568af83ad369324675001e29c719051d83ccdaeebd35d425d8b",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "46600bc4116e415fb415cc01cf9a97d9"
}
}
3.5. 通过信息哈希获取节点
接口功能:获取与指定信息哈希相符的节点。
接口规范:
- Method: GET
- URI: /node/ihs/{infoHash}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
infoHash | string | true | path | 信息哈希 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
node | 返回指定节点哈希的节点 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/node/ihs/5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"version": -2,
"nodeHash": "b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544",
"nodeSeq": 108,
"timestamp": 1588163236328,
"nonce": 415878769,
"lastHash": "e36d34bfccd40568af83ad369324675001e29c719051d83ccdaeebd35d425d8b",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "46600bc4116e415fb415cc01cf9a97d9"
}
}
3.6. 获取所有节点
接口功能:如果不指定任何参数,则返回最新的20个节点数据,通过组合使用分页和排序参数,可以遍历整个契链的所有节点。
接口规范:
- Method: GET
- URI: /nodes
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
ps | int | false | query | 每页节点数,默认:20 |
pn | int | false | query | 页码,默认:0 |
re | bool | false | query | 是否反向,默认:false |
- 响应结果(data部分):
类型 | 说明 |
---|---|
pager[node] | 包含多个节点的pager对象 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/nodes?pn=3&ps=20&re=true"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"pageSize": 20,
"pageNumber": 0,
"totalElements": 110,
"totalPages": 6,
"elements": [
{
"version": -2,
"nodeHash": "2a39ef8aabea6e2ae7726aa1edf46ed77390bd35fe78d42ad6a65e9821adcc56",
"nodeSeq": 109,
"timestamp": 1588163368220,
"nonce": 857375586,
"lastHash": "b0ccadc6a938aca67aa4cbe27ff6405c6e90ef893c5536c7d9945853231da544",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 0,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": ""
},
......,
{
"version": -2,
"nodeHash": "55c73ef448e912abdb06802cdc4d064169b52c0e1253e8c2fbec4bd18790c40e",
"nodeSeq": 90,
"timestamp": 1587544096796,
"nonce": 2091981268,
"lastHash": "6e3b164fcb73ec4a4293cde1c8cd2547bb9fc1aaccaa23eccde367e7d50926a6",
"referHash": "",
"userId": "",
"serviceId": "54444444111111112222222233333333",
"label": 1,
"infoHash": "aa21a9edf48a1ab40c8dba86dc1dfe4d708c62f0e2ddcfc36c200f12cfe5b59f",
"infoId": "dfef22dss"
}
]
}
}
3.7. 通过引用哈希获取节点
接口功能:返回与指定引用哈希相符的所有节点。如果不指定任何参数,则返回最新的20个节点数据,通过组合使用分页和排序参数,可以遍历符合要求的所有节点。
接口规范:
- Method: GET
- URI: /nodes/rfh/{referHash}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
referHash | string | true | path | 引用哈希 |
ps | int | false | query | 每页节点数,默认:20 |
pn | int | false | query | 页码,默认:0 |
re | bool | false | query | 是否反向,默认:false |
- 响应结果(data部分):
类型 | 说明 |
---|---|
pager[node] | 包含多个节点的pager对象 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/nodes/rfh/a80ba4fdf86a5532df50db22cd3ed0c334794082c65320ef4ad82f83a08bdaa1"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"pageSize": 20,
"pageNumber": 0,
"totalElements": 1,
"totalPages": 1,
"elements": [
{
"version": -2,
"nodeHash": "33f43480b726badd4ce8d4e41ddf0c63f1996af13600a35b8f160d36ce000231",
"nodeSeq": 110,
"timestamp": 1588164762189,
"nonce": 553682297,
"lastHash": "2a39ef8aabea6e2ae7726aa1edf46ed77390bd35fe78d42ad6a65e9821adcc56",
"referHash": "a80ba4fdf86a5532df50db22cd3ed0c334794082c65320ef4ad82f83a08bdaa1",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 1,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "id001"
}
]
}
}
3.8. 通过用户编码获取节点
接口功能:返回与指定用户编码相符的所有节点。如果不指定任何参数,则返回最新的20个节点数据,通过组合使用分页和排序参数,可以遍历符合要求的所有节点。
接口规范:
- Method: GET
- URI: /nodes/uid/{userId}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
userId | string | true | path | 用户编码 |
ps | int | false | query | 每页节点数,默认:20 |
pn | int | false | query | 页码,默认:0 |
re | bool | false | query | 是否反向,默认:false |
- 响应结果(data部分):
类型 | 说明 |
---|---|
pager[node] | 包含多个节点的pager对象 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/nodes/uid/7cd101634a234602bb4f462c0be78a2e?pn=0&ps=20&re=false"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"pageSize": 20,
"pageNumber": 0,
"totalElements": 8,
"totalPages": 1,
"elements": [
{
"version": -2,
"nodeHash": "33f43480b726badd4ce8d4e41ddf0c63f1996af13600a35b8f160d36ce000231",
"nodeSeq": 110,
"timestamp": 1588164762189,
"nonce": 553682297,
"lastHash": "2a39ef8aabea6e2ae7726aa1edf46ed77390bd35fe78d42ad6a65e9821adcc56",
"referHash": "a80ba4fdf86a5532df50db22cd3ed0c334794082c65320ef4ad82f83a08bdaa1",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 1,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "id001"
},
......,
{
"version": -2,
"nodeHash": "2bab78d4d0fdd030cda082ff37eb44c1cab41662cadcf4ef756362c69902d488",
"nodeSeq": 102,
"timestamp": 1587548001547,
"nonce": 199156001,
"lastHash": "85e07acc44ec2330d63a3bd0b1c59cae4f912714422ef321570691383bc709a8",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 1,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "33"
}
]
}
}
3.9. 通过服务编码获取节点
接口功能:返回与指定服务编码相符的所有节点。如果不指定任何参数,则返回最新的20个节点数据,通过组合使用分页和排序参数,可以遍历符合要求的所有节点。
接口规范:
- Method: GET
- URI: /nodes/vid/{serviceId}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
serviceId | string | true | path | 服务编码 |
ps | int | false | query | 每页节点数,默认:20 |
pn | int | false | query | 页码,默认:0 |
re | bool | false | query | 是否反向,默认:false |
- 响应结果(data部分):
类型 | 说明 |
---|---|
pager[node] | 包含多个节点的pager对象 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/nodes/vid/9251067423a9467baa991eb53052c05d?pn=0&ps=20&re=false"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"pageSize": 20,
"pageNumber": 0,
"totalElements": 8,
"totalPages": 1,
"elements": [
{
"version": -2,
"nodeHash": "33f43480b726badd4ce8d4e41ddf0c63f1996af13600a35b8f160d36ce000231",
"nodeSeq": 110,
"timestamp": 1588164762189,
"nonce": 553682297,
"lastHash": "2a39ef8aabea6e2ae7726aa1edf46ed77390bd35fe78d42ad6a65e9821adcc56",
"referHash": "a80ba4fdf86a5532df50db22cd3ed0c334794082c65320ef4ad82f83a08bdaa1",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 1,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "id001"
},
......,
{
"version": -2,
"nodeHash": "2bab78d4d0fdd030cda082ff37eb44c1cab41662cadcf4ef756362c69902d488",
"nodeSeq": 102,
"timestamp": 1587548001547,
"nonce": 199156001,
"lastHash": "85e07acc44ec2330d63a3bd0b1c59cae4f912714422ef321570691383bc709a8",
"referHash": "",
"userId": "7cd101634a234602bb4f462c0be78a2e",
"serviceId": "9251067423a9467baa991eb53052c05d",
"label": 1,
"infoHash": "5a51b7bd14a47ada7a06b35f4cf38021f96a43c856ebaf2fcd73fd394c51b53f",
"infoId": "33"
}
]
}
}
4. 辅助模块
4.1. 获取节点统计信息
接口功能:获取节点、用户、服务的统计信息
接口规范:
- Method: GET
- URI: /ass/nsum
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|
- 响应结果(data部分):
类型 | 说明 |
---|---|
nsum | 返回节点统计信息 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/ass/nsum"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"nodeCount": 90033,
"userCount": 5,
"vendorCount": 4
}
}
4.2. 获取服务统计信息
接口功能:获取各服务的节点数的统计信息
接口规范:
- Method: GET
- URI: /ass/vsum
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|
- 响应结果(data部分):
类型 | 说明 |
---|---|
pager[vsum] | 返回多个服务对应的统计信息 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/ass/vsum"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": {
"pageSize": 4,
"pageNumber": 0,
"totalElements": 4,
"totalPages": 1,
"elements": [
{
"vendorId": "11111111222222223333333344444444",
"count": 70001
},
{
"vendorId": "54444444111111112222222233333333",
"count": 20003
},
{
"vendorId": "9251067423a9467baa991eb53052c05d",
"count": 28
},
{
"vendorId": "51694c69616e546563686e6f6c6f6779",
"count": 1
}
]
}
}
4.3. 判断用户编码是否有效
接口功能:如果服务商系统中需要将自己的账号和契链用户的用户编码绑定,通过本接口可以判断用户自己输入的契链用户编码是否有效。
接口规范:
- Method: GET
- URI: /ass/uid/{userId}
- 请求参数表:
参数名 | 数据类型 | 必需 | 传参方式 | 说明 |
---|---|---|---|---|
userId | string | true | path | 用户编码 |
- 响应结果(data部分):
类型 | 说明 |
---|---|
bool | 用户编码是否有效 |
- 访问示例:
Request>_
curl -X GET "https://api.qlen.cn/v1/ass/uid/7cd101634a234602bb4f462c0be78a2e"
Response>_
{
"status": true,
"code": 0,
"message": "OK",
"data": true
}