336 lines
10 KiB
JSON
336 lines
10 KiB
JSON
{
|
|
"components": {
|
|
"schemas": {
|
|
"BreadthDataDto": {
|
|
"properties": {
|
|
"advancing": { "type": "number" },
|
|
"declining": { "type": "number" },
|
|
"unchanged": { "nullable": true, "type": "number" }
|
|
},
|
|
"required": ["advancing", "declining"],
|
|
"type": "object"
|
|
},
|
|
"BreadthResponseDto": {
|
|
"properties": {
|
|
"asOf": { "format": "date-time", "type": "string" },
|
|
"data": {
|
|
"allOf": [{ "$ref": "#/components/schemas/BreadthDataDto" }],
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"snapshotId": { "type": "string" },
|
|
"source": { "enum": ["tdx"], "type": "string" },
|
|
"status": {
|
|
"enum": ["fresh", "delayed", "partial", "unavailable"],
|
|
"type": "string"
|
|
},
|
|
"warnings": { "items": { "type": "string" }, "type": "array" }
|
|
},
|
|
"required": ["snapshotId", "asOf", "source", "status", "warnings", "data"],
|
|
"type": "object"
|
|
},
|
|
"DependencyHealthDto": {
|
|
"properties": {
|
|
"detail": { "type": "string" },
|
|
"status": {
|
|
"enum": ["healthy", "unavailable", "disabled"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["status", "detail"],
|
|
"type": "object"
|
|
},
|
|
"FundDataDto": {
|
|
"properties": {
|
|
"changePercent": { "type": "number" },
|
|
"currentAmount": { "type": "number" },
|
|
"previousAmount": { "type": "number" },
|
|
"unit": { "example": "亿元", "type": "string" }
|
|
},
|
|
"required": ["currentAmount", "previousAmount", "changePercent", "unit"],
|
|
"type": "object"
|
|
},
|
|
"FundsResponseDto": {
|
|
"properties": {
|
|
"asOf": { "format": "date-time", "type": "string" },
|
|
"data": {
|
|
"allOf": [{ "$ref": "#/components/schemas/FundDataDto" }],
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"snapshotId": { "type": "string" },
|
|
"source": { "enum": ["tdx"], "type": "string" },
|
|
"status": {
|
|
"enum": ["fresh", "delayed", "partial", "unavailable"],
|
|
"type": "string"
|
|
},
|
|
"warnings": { "items": { "type": "string" }, "type": "array" }
|
|
},
|
|
"required": ["snapshotId", "asOf", "source", "status", "warnings", "data"],
|
|
"type": "object"
|
|
},
|
|
"HealthDependenciesDto": {
|
|
"properties": {
|
|
"mysql": { "$ref": "#/components/schemas/DependencyHealthDto" },
|
|
"redis": { "$ref": "#/components/schemas/DependencyHealthDto" },
|
|
"rocketMq": { "$ref": "#/components/schemas/DependencyHealthDto" }
|
|
},
|
|
"required": ["redis", "mysql", "rocketMq"],
|
|
"type": "object"
|
|
},
|
|
"HealthResponseDto": {
|
|
"properties": {
|
|
"checkedAt": { "format": "date-time", "type": "string" },
|
|
"dependencies": {
|
|
"$ref": "#/components/schemas/HealthDependenciesDto"
|
|
},
|
|
"process": { "enum": ["api"], "type": "string" },
|
|
"status": { "enum": ["healthy", "unavailable"], "type": "string" }
|
|
},
|
|
"required": ["status", "process", "checkedAt", "dependencies"],
|
|
"type": "object"
|
|
},
|
|
"IndexQuoteDto": {
|
|
"properties": {
|
|
"changePercent": { "nullable": true, "type": "number" },
|
|
"code": { "type": "string" },
|
|
"direction": { "enum": ["up", "down", "flat"], "type": "string" },
|
|
"name": { "type": "string" },
|
|
"price": { "type": "number" },
|
|
"tradeDate": { "type": "string" }
|
|
},
|
|
"required": ["code", "name", "price", "direction", "tradeDate"],
|
|
"type": "object"
|
|
},
|
|
"IndicesDataDto": {
|
|
"properties": {
|
|
"items": {
|
|
"items": { "$ref": "#/components/schemas/IndexQuoteDto" },
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": ["items"],
|
|
"type": "object"
|
|
},
|
|
"IndicesResponseDto": {
|
|
"properties": {
|
|
"asOf": { "format": "date-time", "type": "string" },
|
|
"data": {
|
|
"allOf": [{ "$ref": "#/components/schemas/IndicesDataDto" }],
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"snapshotId": { "type": "string" },
|
|
"source": { "enum": ["tdx"], "type": "string" },
|
|
"status": {
|
|
"enum": ["fresh", "delayed", "partial", "unavailable"],
|
|
"type": "string"
|
|
},
|
|
"warnings": { "items": { "type": "string" }, "type": "array" }
|
|
},
|
|
"required": ["snapshotId", "asOf", "source", "status", "warnings", "data"],
|
|
"type": "object"
|
|
},
|
|
"SectorDataDto": {
|
|
"properties": {
|
|
"items": {
|
|
"items": { "$ref": "#/components/schemas/SectorQuoteDto" },
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": ["items"],
|
|
"type": "object"
|
|
},
|
|
"SectorQuoteDto": {
|
|
"properties": {
|
|
"changePercent": { "nullable": true, "type": "number" },
|
|
"code": { "type": "string" },
|
|
"direction": { "enum": ["up", "down", "flat"], "type": "string" },
|
|
"name": { "type": "string" },
|
|
"tradeDate": { "type": "string" }
|
|
},
|
|
"required": ["code", "name", "direction", "tradeDate"],
|
|
"type": "object"
|
|
},
|
|
"SectorsResponseDto": {
|
|
"properties": {
|
|
"asOf": { "format": "date-time", "type": "string" },
|
|
"data": {
|
|
"allOf": [{ "$ref": "#/components/schemas/SectorDataDto" }],
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"snapshotId": { "type": "string" },
|
|
"source": { "enum": ["tdx"], "type": "string" },
|
|
"status": {
|
|
"enum": ["fresh", "delayed", "partial", "unavailable"],
|
|
"type": "string"
|
|
},
|
|
"warnings": { "items": { "type": "string" }, "type": "array" }
|
|
},
|
|
"required": ["snapshotId", "asOf", "source", "status", "warnings", "data"],
|
|
"type": "object"
|
|
},
|
|
"SummaryDataDto": {
|
|
"properties": {
|
|
"drivers": { "items": { "type": "string" }, "type": "array" },
|
|
"marketStatus": { "type": "string" },
|
|
"risks": { "items": { "type": "string" }, "type": "array" },
|
|
"sentimentStatus": { "type": "string" },
|
|
"verdict": { "type": "string" },
|
|
"volumeStatus": { "type": "string" }
|
|
},
|
|
"required": [
|
|
"verdict",
|
|
"marketStatus",
|
|
"volumeStatus",
|
|
"sentimentStatus",
|
|
"drivers",
|
|
"risks"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SummaryResponseDto": {
|
|
"properties": {
|
|
"asOf": { "format": "date-time", "type": "string" },
|
|
"data": {
|
|
"allOf": [{ "$ref": "#/components/schemas/SummaryDataDto" }],
|
|
"nullable": true,
|
|
"type": "object"
|
|
},
|
|
"snapshotId": { "type": "string" },
|
|
"source": { "enum": ["tdx"], "type": "string" },
|
|
"status": {
|
|
"enum": ["fresh", "delayed", "partial", "unavailable"],
|
|
"type": "string"
|
|
},
|
|
"warnings": { "items": { "type": "string" }, "type": "array" }
|
|
},
|
|
"required": ["snapshotId", "asOf", "source", "status", "warnings", "data"],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"contact": {},
|
|
"description": "",
|
|
"title": "A 股市场分析工具 API",
|
|
"version": "0.0.8-draft"
|
|
},
|
|
"openapi": "3.0.0",
|
|
"paths": {
|
|
"/api/v1/health": {
|
|
"get": {
|
|
"operationId": "HealthController_getHealth",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/HealthResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
},
|
|
"503": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/HealthResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["health"]
|
|
}
|
|
},
|
|
"/api/v1/market-overview/breadth": {
|
|
"get": {
|
|
"operationId": "MarketOverviewController_getBreadth",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/BreadthResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["market-overview"]
|
|
}
|
|
},
|
|
"/api/v1/market-overview/funds": {
|
|
"get": {
|
|
"operationId": "MarketOverviewController_getFunds",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/FundsResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["market-overview"]
|
|
}
|
|
},
|
|
"/api/v1/market-overview/indices": {
|
|
"get": {
|
|
"operationId": "MarketOverviewController_getIndices",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/IndicesResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["market-overview"]
|
|
}
|
|
},
|
|
"/api/v1/market-overview/sectors": {
|
|
"get": {
|
|
"operationId": "MarketOverviewController_getSectors",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/SectorsResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["market-overview"]
|
|
}
|
|
},
|
|
"/api/v1/market-overview/summary": {
|
|
"get": {
|
|
"operationId": "MarketOverviewController_getSummary",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { "$ref": "#/components/schemas/SummaryResponseDto" }
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
},
|
|
"tags": ["market-overview"]
|
|
}
|
|
}
|
|
},
|
|
"servers": [],
|
|
"tags": []
|
|
}
|