topfans/backend/swagger/proto/asset-chain.swagger.json
2026-04-07 22:29:48 +08:00

507 lines
13 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"swagger": "2.0",
"info": {
"title": "proto/asset-chain.proto",
"version": "version not set"
},
"tags": [
{
"name": "AssetChainService"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/api/v1/assets": {
"get": {
"summary": "资产查询",
"operationId": "AssetChainService_GetUserAssets",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/assetGetUserAssetsResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "user_id",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "star_id",
"description": "核心隔离键",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "status",
"description": "可选按状态筛选0=全部)\n\n - ASSET_STATUS_PENDING: 待上链\n - ASSET_STATUS_ACTIVE: 已上链激活\n - ASSET_STATUS_FAILED: 上链失败",
"in": "query",
"required": false,
"type": "string",
"enum": [
"ASSET_STATUS_UNSPECIFIED",
"ASSET_STATUS_PENDING",
"ASSET_STATUS_ACTIVE",
"ASSET_STATUS_FAILED"
],
"default": "ASSET_STATUS_UNSPECIFIED"
},
{
"name": "type",
"description": "可选按类型筛选0=全部)\n\n - ASSET_TYPE_COLLECTIBLE: 藏品\n - ASSET_TYPE_BLIND_BOX: 盲盒",
"in": "query",
"required": false,
"type": "string",
"enum": [
"ASSET_TYPE_UNSPECIFIED",
"ASSET_TYPE_COLLECTIBLE",
"ASSET_TYPE_BLIND_BOX"
],
"default": "ASSET_TYPE_UNSPECIFIED"
},
{
"name": "page.page",
"description": "页码从1开始",
"in": "query",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "page.page_size",
"description": "每页数量",
"in": "query",
"required": false,
"type": "integer",
"format": "int32"
}
],
"tags": [
"AssetChainService"
]
}
},
"/api/v1/assets/mint": {
"post": {
"summary": "资产铸造(异步)",
"operationId": "AssetChainService_MintAsset",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/assetMintResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/assetMintRequest"
}
}
],
"tags": [
"AssetChainService"
]
}
},
"/api/v1/assets/{asset_id}": {
"get": {
"operationId": "AssetChainService_GetAsset",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/assetGetAssetResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "asset_id",
"in": "path",
"required": true,
"type": "string",
"format": "int64"
},
{
"name": "star_id",
"description": "核心隔离键(用于数据隔离验证)",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
}
],
"tags": [
"AssetChainService"
]
}
},
"/api/v1/assets/{asset_id}/status": {
"get": {
"operationId": "AssetChainService_CheckAssetStatus",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/assetCheckAssetStatusResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "asset_id",
"in": "path",
"required": true,
"type": "string",
"format": "int64"
},
{
"name": "star_id",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
}
],
"tags": [
"AssetChainService"
]
}
}
},
"definitions": {
"assetAsset": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "int64"
},
"owner_uid": {
"type": "string",
"format": "int64",
"title": "当前持有人"
},
"star_id": {
"type": "string",
"format": "int64",
"title": "核心隔离键"
},
"name": {
"type": "string",
"title": "藏品名称"
},
"minio_url": {
"type": "string",
"title": "Web2: 图片地址"
},
"file_hash": {
"type": "string",
"title": "Web3: 文件指纹SHA-256"
},
"tx_hash": {
"type": "string",
"title": "Web3: 链上交易哈希"
},
"token_id": {
"type": "string",
"title": "Web3: 链上Token ID"
},
"status": {
"$ref": "#/definitions/assetAssetStatus",
"title": "状态"
},
"type": {
"$ref": "#/definitions/assetAssetType",
"title": "类型"
},
"attributes": {
"$ref": "#/definitions/assetAssetAttributes",
"title": "动态属性"
},
"created_at": {
"type": "string",
"format": "int64"
}
},
"title": "数字资产"
},
"assetAssetAttributes": {
"type": "object",
"properties": {
"rarity": {
"type": "string",
"title": "稀有度Common, Rare, Epic, Legendary"
},
"background_color": {
"type": "string",
"title": "背景色"
},
"custom_attrs": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"title": "自定义属性buff加成等"
}
},
"title": "资产属性动态元数据使用JSONB存储"
},
"assetAssetStatus": {
"type": "string",
"enum": [
"ASSET_STATUS_UNSPECIFIED",
"ASSET_STATUS_PENDING",
"ASSET_STATUS_ACTIVE",
"ASSET_STATUS_FAILED"
],
"default": "ASSET_STATUS_UNSPECIFIED",
"description": "- ASSET_STATUS_PENDING: 待上链\n - ASSET_STATUS_ACTIVE: 已上链激活\n - ASSET_STATUS_FAILED: 上链失败",
"title": "资产状态"
},
"assetAssetType": {
"type": "string",
"enum": [
"ASSET_TYPE_UNSPECIFIED",
"ASSET_TYPE_COLLECTIBLE",
"ASSET_TYPE_BLIND_BOX"
],
"default": "ASSET_TYPE_UNSPECIFIED",
"description": "- ASSET_TYPE_COLLECTIBLE: 藏品\n - ASSET_TYPE_BLIND_BOX: 盲盒",
"title": "资产类型"
},
"assetCheckAssetStatusResponse": {
"type": "object",
"properties": {
"base": {
"$ref": "#/definitions/commonBaseResponse"
},
"status": {
"$ref": "#/definitions/assetAssetStatus"
},
"tx_hash": {
"type": "string",
"title": "如果已上链,返回交易哈希"
},
"error_message": {
"type": "string",
"title": "如果失败,返回错误信息"
}
},
"title": "查询资产上链状态响应"
},
"assetGetAssetResponse": {
"type": "object",
"properties": {
"base": {
"$ref": "#/definitions/commonBaseResponse"
},
"asset": {
"$ref": "#/definitions/assetAsset"
}
},
"title": "获取资产详情响应"
},
"assetGetUserAssetsResponse": {
"type": "object",
"properties": {
"base": {
"$ref": "#/definitions/commonBaseResponse"
},
"assets": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/assetAsset"
}
},
"page": {
"$ref": "#/definitions/commonPageResponse"
}
},
"title": "获取用户资产列表响应"
},
"assetMintRequest": {
"type": "object",
"properties": {
"user_id": {
"type": "string",
"format": "int64"
},
"star_id": {
"type": "string",
"format": "int64",
"title": "核心隔离键"
},
"type": {
"$ref": "#/definitions/assetAssetType",
"title": "资产类型1=藏品2=盲盒)"
},
"name": {
"type": "string",
"title": "藏品名称可选AI生成时可留空"
}
},
"title": "铸造请求"
},
"assetMintResponse": {
"type": "object",
"properties": {
"base": {
"$ref": "#/definitions/commonBaseResponse"
},
"asset_id": {
"type": "string",
"format": "int64",
"title": "资产ID状态为Pending"
},
"task_id": {
"type": "string",
"title": "异步任务ID可选用于追踪上链进度"
}
},
"title": "铸造响应异步返回只返回任务ID"
},
"commonBaseResponse": {
"type": "object",
"properties": {
"code": {
"$ref": "#/definitions/commonStatusCode"
},
"message": {
"type": "string"
},
"timestamp": {
"type": "string",
"format": "int64",
"title": "Unix时间戳毫秒"
}
},
"title": "通用响应结构"
},
"commonPageRequest": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32",
"title": "页码从1开始"
},
"page_size": {
"type": "integer",
"format": "int32",
"title": "每页数量"
}
},
"title": "分页请求"
},
"commonPageResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32"
},
"page_size": {
"type": "integer",
"format": "int32"
},
"total": {
"type": "string",
"format": "int64",
"title": "总记录数"
},
"total_pages": {
"type": "integer",
"format": "int32",
"title": "总页数"
}
},
"title": "分页响应"
},
"commonStatusCode": {
"type": "string",
"enum": [
"STATUS_UNSPECIFIED",
"STATUS_OK",
"STATUS_BAD_REQUEST",
"STATUS_UNAUTHORIZED",
"STATUS_FORBIDDEN",
"STATUS_NOT_FOUND",
"STATUS_INTERNAL_ERROR"
],
"default": "STATUS_UNSPECIFIED",
"title": "通用响应状态码"
},
"protobufAny": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"additionalProperties": {}
},
"rpcStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/protobufAny"
}
}
}
}
}
}