You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spiderman/docs/docs.go

740 lines
25 KiB

// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "API Support",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/assets": {
"get": {
"description": "Retrieve all assets from the blockchain ledger",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"assets"
],
"summary": "Get all assets",
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Asset"
}
}
}
}
]
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
},
"post": {
"description": "Create a new asset on the blockchain ledger with auto-generated UUID if ID not provided",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"assets"
],
"summary": "Create a new asset",
"parameters": [
{
"description": "Asset data (ID is optional and will be auto-generated)",
"name": "asset",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.CreateAssetRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"asset": {
"$ref": "#/definitions/models.Asset"
},
"transactionId": {
"type": "string"
}
}
}
}
}
]
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/assets/{id}": {
"get": {
"description": "Retrieve a specific asset by its ID from the blockchain ledger",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"assets"
],
"summary": "Get asset by ID",
"parameters": [
{
"type": "string",
"description": "Asset ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.Asset"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
},
"put": {
"description": "Update an existing asset's information on the blockchain",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"assets"
],
"summary": "Update an existing asset",
"parameters": [
{
"type": "string",
"description": "Asset ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated asset data",
"name": "asset",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.CreateAssetRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.Asset"
}
}
}
]
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/assets/{id}/transfer": {
"put": {
"description": "Transfer ownership of an asset to a new owner",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"assets"
],
"summary": "Transfer asset ownership",
"parameters": [
{
"type": "string",
"description": "Asset ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Transfer request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.TransferAssetRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/blockchain/height": {
"get": {
"description": "Get the current block height of the blockchain",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"blockchain"
],
"summary": "Get block height",
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.BlockHeightResponse"
}
}
}
]
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/blockchain/info": {
"get": {
"description": "Get detailed information about the blockchain including block height",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"blockchain"
],
"summary": "Get chain information",
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.ChainInfoResponse"
}
}
}
]
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/health": {
"get": {
"description": "Check the health status of the API",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"health"
],
"summary": "Health check",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.HealthResponse"
}
}
}
}
},
"/ledger/init": {
"post": {
"description": "Initialize the blockchain ledger with a set of assets",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"ledger"
],
"summary": "Initialize ledger",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
},
"/transactions/{txid}": {
"get": {
"description": "Retrieve detailed information about a specific transaction by its ID",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"transactions"
],
"summary": "Get transaction details by ID",
"parameters": [
{
"type": "string",
"description": "Transaction ID",
"name": "txid",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.TransactionDetail"
}
}
}
]
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/models.ErrorResponse"
}
}
}
}
}
},
"definitions": {
"models.Asset": {
"type": "object",
"properties": {
"ID": {
"type": "string",
"example": "asset123"
},
"appraisedValue": {
"type": "string",
"example": "2000"
},
"color": {
"type": "string",
"example": "red"
},
"owner": {
"type": "string",
"example": "Alice"
},
"size": {
"type": "string",
"example": "10"
}
}
},
"models.BlockHeightResponse": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"example": 12345
}
}
},
"models.ChainInfoResponse": {
"type": "object",
"properties": {
"blockHash": {
"type": "string",
"example": "a1b2c3d4e5f6..."
},
"chainName": {
"type": "string",
"example": "mychannel"
},
"height": {
"type": "integer",
"example": 12345
}
}
},
"models.CreateAssetRequest": {
"type": "object",
"properties": {
"appraisedValue": {
"type": "string",
"example": "2000"
},
"color": {
"type": "string",
"example": "red"
},
"id": {
"description": "Optional - will be auto-generated if not provided",
"type": "string",
"example": "asset123"
},
"owner": {
"type": "string",
"example": "Alice"
},
"size": {
"type": "string",
"example": "10"
}
}
},
"models.ErrorResponse": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"models.HealthResponse": {
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "healthy"
}
}
},
"models.Response": {
"type": "object",
"properties": {
"data": {},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"models.TransactionDetail": {
"type": "object",
"properties": {
"arguments": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"asset1",
"red",
"10",
"Alice",
"1000"
]
},
"blockHash": {
"type": "string",
"example": "a1b2c3d4e5f6..."
},
"blockNumber": {
"type": "integer",
"example": 123
},
"chaincodeId": {
"type": "string",
"example": "basic"
},
"channelId": {
"type": "string",
"example": "mychannel"
},
"creatorId": {
"type": "string",
"example": "User1@org1.example.com"
},
"creatorMspId": {
"type": "string",
"example": "Org1MSP"
},
"endorsers": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"peer0.org1.example.com",
"peer0.org2.example.com"
]
},
"function": {
"type": "string",
"example": "CreateAsset"
},
"rawTransaction": {
"type": "object",
"additionalProperties": true
},
"response": {
"$ref": "#/definitions/models.TransactionResponse"
},
"timestamp": {
"type": "string",
"example": "2024-01-15T10:30:00Z"
},
"transactionId": {
"type": "string",
"example": "f973e40540e3b629b7dffd0b91b87aa3474bc31de89e11b01f749bbc5e6d5add"
},
"validationCode": {
"type": "string",
"example": "VALID"
}
}
},
"models.TransactionResponse": {
"type": "object",
"properties": {
"message": {
"type": "string",
"example": "Transaction completed successfully"
},
"payload": {
"type": "string",
"example": ""
},
"status": {
"type": "integer",
"example": 200
}
}
},
"models.TransferAssetRequest": {
"type": "object",
"properties": {
"newOwner": {
"type": "string",
"example": "Bob"
}
}
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "localhost:8888",
BasePath: "/api/v1",
Schemes: []string{"http", "https"},
Title: "Hyperledger Fabric Asset Transfer API",
Description: "RESTful API for managing assets on Hyperledger Fabric blockchain",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}