基础用法
身份认证
在调用企业节点商业版OpenAPI接口前需要首先完成身份认证,企业节点身份认证使用挑战应答方式。
前置条件
操作步骤
身份认证流程如下:
挑战
该接口用于获取挑战信息,为一随机nonce值。
请求示例
GET 'http://127.0.0.1:3000/api/v1/doip/public/challengehandle=88.608.24061301/App_scxt0716'
返回结果
json
{
"code": 1,
"message": "成功",
"data": "1816"
}
应答
该接口用于验证使用nonce值生成的signature,验证成功则颁发token。
请求示例
POST http://127.0.0.1:3000/api/v1/doip/public/verify-response
-d '{
"handle":"handle=88.608.24061301/App_scxt0716",
"signature":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42M"
}'
返回结果
json
{
"code": 1,
"message": "成功",
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42MDguODg4L0FwcF96ajAxIiwiZXhwIjoxNzAyNTQyMTM0LCJpYXQiOjE3MDI0NTU3MzQsImp0aSI6IjMxMzlmNDVkLTA5YzAtNDljZS04MTdkLWE4NDRhZmFlZTFjMyJ9.9Akw3pAwMM-tHZ6WOB6OI4E_ZMvDKyRn6CPYD1TWahc"
}
}
后续操作
通过挑战应答接口,应用可以获取token,用于后续创建元数据, 标识注册等。
元数据模版创建
应用开发者调用元数据模板创建接口,在企业节点A中完成产品元数据模板创建。
前置条件
已完成生产系统的标识身份认证。
操作步骤
创建产品元数据
请求示例
POST http://127.0.0.1:3000/api/v1/open/meta/create
--H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42MDguODg4OS9BcHBfY2VzaGkiLCJpYXQiOjE3MTU5MjYzMDgsImp0aSI6ImJkYWI4MjkxLWNkYjUtNDA4MS04MzgwLTQzNGQ2NGU5MDQwZCJ9.rnCQYLclQspOR5WOnu4Ssg5gH11zFLNyRMhxlB55by8'
-d '{
"classifyCode": "assign",
"metaName": "箱酒",
"metaCode": "box",
"standard": "",
"metaDesc": "",
"industryCategory": "M",
"industrySpecific": "75",
"industryTrade": "751",
"industrySubclass": "7517",
"metaItemCreateDTOS": [
{
"itemCode": "code",
"englishName": "code",
"chineseName": "箱码",
"required": 0,
"uniqueField": 0,
"inputNecessary": 1,
"listItemNecessary": 0,
"itemSchemaCreateDTO": {
"minLength": 0,
"maxLength": 4000,
"dataType": "1"
}
},
{
"itemCode": "product",
"englishName": "product",
"chineseName": "产品",
"required": 0,
"uniqueField": 0,
"inputNecessary": 1,
"listItemNecessary": 0,
"itemSchemaCreateDTO": {
"minLength": 0,
"maxLength": 4000,
"dataType": "1"
}
},
{
"itemCode": "raw",
"englishName": "raw",
"chineseName": "原料",
"required": 0,
"uniqueField": 0,
"inputNecessary": 1,
"listItemNecessary": 0,
"itemSchemaCreateDTO": {
"minLength": 0,
"maxLength": 4000,
"dataType": "1"
}
},
{
"itemCode": "size",
"englishName": "size",
"chineseName": "规格",
"required": 0,
"uniqueField": 0,
"inputNecessary": 1,
"listItemNecessary": 0,
"itemSchemaCreateDTO": {
"dataType": "1"
}
},
{
"itemCode": "date",
"englishName": "date",
"chineseName": "生产日期",
"required": 0,
"uniqueField": 0,
"inputNecessary": 1,
"listItemNecessary": 0,
"itemSchemaCreateDTO": {
"dateFormat": "yyyy-MM-dd",
"dataType": "3"
}
}
]
}'
返回示例
json
{
"code": 1,
"message": "成功",
"data": {
"metaId": 61
}
}
发布产品元数据
应用开发者调用元数据发布接口对创建的产品元数据进行发布操作,发布后的产品元数据可以进行注册标识等操作。
请求示例
PUT http://127.0.0.1:3000/api/v1/open/meta/publish-or-withdraw
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42MDguODg4OS9BcHBfY2VzaGkiLCJpYXQiOjE3MTU5MjYzMDgsImp0aSI6ImJkYWI4MjkxLWNkYjUtNDA4MS04MzgwLTQzNGQ2NGU5MDQwZCJ9.rnCQYLclQspOR5WOnu4Ssg5gH11zFLNyRMhxlB55by8'
-d ' {
"metaHandleList": [
"88.608.24161301/META_PRODUCT"
],
"opType": "publish"
}'
返回示例
json
{
"code": 10000,
"message": "成功",
"data": [
{
"metaHandle": "88.608.24161301/META_PRODUCT",
"state": "success"
}
]
}
后续操作
- 依据已创建的产品元数据模板进行产品标识注册。
高阶用法
- 元数据模板创建成功后,权限默认为“指定范围”。若需对全网(标识网络)公开,则可通过元数据模板授权将权限变更为“公开”;否则,需通过元数据模板授权,配置元数据模板的访问权限。
- 当应用开发者需使用标识关联服务打通上下游企业时,需进行元数据模板关联。
标识注册
应用开发者调用标识注册接口,基于产品元数据模板,将生产系统的产品数据注册到企业节点A中。
前置条件
已完成产品元数据模版注册。
操作步骤
生产系统使用发布后的元数据模板进行产品标识注册。
请求示例
POST http://127.0.0.1:3000/api/v1/doip?targetId=88.608.24061301/META_8fc3752a80CASE001&operationId=0.DOIP/Op.Create
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42MDguODg4OS9BcHBfY2VzaGkiLCJpYXQiOjE3MTU5MjYzMDgsImp0aSI6ImJkYWI4MjkxLWNkYjUtNDA4MS04MzgwLTQzNGQ2NGU5MDQwZCJ9.rnCQYLclQspOR5WOnu4Ssg5gH11zFLNyRMhxlB55by8'
-d '{
"type": "88.608.24061301/META_8fc3752a80",
"attributes": {
"content": {
"code": "CASE001",
"product": "酿酒52%vol",
"size": "1*6*500ml",
"raw": "优质高粱",
"date": "2024-06-22",
}
}
}'
返回示例
json
{
"code": 10000,
"message": "成功",
"data": {
"type": "88.608.24161301/META_PRODUCT",
"attributes": {
"content": {
"code": "CASE001",
"product": "酿酒52%vol",
"size": "1*6*500ml",
"raw": "优质高粱",
"date": "2024-06-22",
}
}
}
}
后续步骤
解析产品标识
高阶用法
- 产品标识注册成功后,该标识的数据权限默认为“指定范围”,若需变更权限,则执行以下操作:
单个标识数据授权
:若每条产品标识,其数据授权策略均不相同,则可通过实例标识单个授权,针对每一条标识进行单独的数据授权
标识解析
应用开发者调用标识解析接口,解析产品标识。
前置条件
已完成产品产品标识注册。
操作步骤
生产系统解析产品标识。
请求示例
GET http://127.0.0.1:3000/api/v1/doip?targetId=88.608.24061301/META_8fc3752a80CASE001&operationId=0.DOIP/Op.Retrieve
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4OC42MDguODg4OS9BcHBfY2VzaGkiLCJpYXQiOjE3MTU5MjYzMDgsImp0aSI6ImJkYWI4MjkxLWNkYjUtNDA4MS04MzgwLTQzNGQ2NGU5MDQwZCJ9.rnCQYLclQspOR5WOnu4Ssg5gH11zFLNyRMhxlB55by8'
返回示例
json
{
"code": 1,
"message": "成功",
"data": {
"id": "88.608.24061301/META_8fc3752a80CASE001",
"type": "88.608.24061301/META_8fc3752a80",
"attributes": {
"attributes": {
"metaData": {
"createTime": "2024-06-22 14:13:24",
"updateTime": "2024-06-22 14:13:37",
"creator": "88.608.24061301/App_scxt071",
"updater": "88.608.24061301/App_scxt071"
}
},
"elements": [
{
"index": 2000,
"type": "code",
"name": "箱码",
"data": "CASE001",
"dataType": 1
},
{
"index": 2001,
"type": "product",
"name": "产品",
"data": "酿酒52%vol",
"dataType": 1
},
{
"index": 2002,
"type": "size",
"name": "规格",
"data": "1*6*500ml",
"dataType": 1
},
{
"index": 2003,
"type": "raw",
"name": "原料",
"data": "优质高粱",
"dataType": 1
},
{
"index": 2004,
"type": "date",
"name": "生产日期",
"data": "2024-06-22",
"dataType": 3
}
]
}
}
}
后续步骤
应用开发者已完成一个简单的标识注册,并解析该标识。当应用开发者需打通供应链上、下游企业时,可通过使用标识关联服务,实现上下游数据贯通。