Files
tools-show/server/docs/openapi.json

1095 lines
24 KiB
JSON
Raw Normal View History

2026-03-27 10:18:26 +08:00
{
"openapi": "3.0.0",
"paths": {
"/api/v1/health": {
"get": {
"operationId": "HealthController_getHealth",
"parameters": [],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"health"
]
}
},
"/api/v1/tools": {
"get": {
"operationId": "ToolsController_getTools",
"parameters": [
{
"name": "query",
"required": false,
"in": "query",
"description": "Search keyword",
"schema": {
"type": "string"
}
},
{
"name": "category",
"required": false,
"in": "query",
"description": "Category id or all",
"schema": {
"default": "all",
"type": "string"
}
},
{
"name": "sortBy",
"required": false,
"in": "query",
"schema": {
"default": "latest",
"type": "string",
"enum": [
"popular",
"latest",
"rating",
"name"
]
}
},
{
"name": "page",
"required": false,
"in": "query",
"schema": {
"default": 1,
"type": "number"
}
},
{
"name": "pageSize",
"required": false,
"in": "query",
"schema": {
"maximum": 50,
"default": 6,
"type": "number"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"summary": "Query tools",
"tags": [
"public-tools"
]
}
},
"/api/v1/tools/{id}": {
"get": {
"operationId": "ToolsController_getToolDetail",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"summary": "Get tool detail",
"tags": [
"public-tools"
]
}
},
"/api/v1/categories": {
"get": {
"operationId": "CategoriesController_getCategories",
"parameters": [],
"responses": {
"200": {
"description": ""
}
},
"summary": "Get categories with tool count",
"tags": [
"public-categories"
]
}
},
"/api/v1/keywords/hot": {
"get": {
"operationId": "KeywordsController_getHotKeywords",
"parameters": [],
"responses": {
"200": {
"description": ""
}
},
"summary": "Get hot keywords",
"tags": [
"public-keywords"
]
}
},
"/api/v1/overview": {
"get": {
"operationId": "OverviewController_getOverview",
"parameters": [],
"responses": {
"200": {
"description": ""
}
},
"summary": "Get site overview KPIs",
"tags": [
"public-overview"
]
}
},
"/api/v1/tools/{id}/launch": {
"post": {
"operationId": "AccessController_launchTool",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LaunchToolDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"summary": "Unified launch endpoint (web/download)",
"tags": [
"public-launch"
]
}
},
"/api/v1/downloads/{ticket}": {
"get": {
"operationId": "DownloadsController_consumeTicket",
"parameters": [
{
"name": "ticket",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"summary": "Consume ticket and stream artifact file",
"tags": [
"public-downloads"
]
}
},
"/api/v1/admin/auth/login": {
"post": {
"operationId": "AdminAuthController_login",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"summary": "Admin login",
"tags": [
"admin-auth"
]
}
},
"/api/v1/admin/auth/refresh": {
"post": {
"operationId": "AdminAuthController_refresh",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RefreshTokenDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"summary": "Refresh admin token",
"tags": [
"admin-auth"
]
}
},
"/api/v1/admin/auth/logout": {
"post": {
"operationId": "AdminAuthController_logout",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin logout",
"tags": [
"admin-auth"
]
}
},
"/api/v1/admin/auth/me": {
"get": {
"operationId": "AdminAuthController_me",
"parameters": [],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Get current admin profile",
"tags": [
"admin-auth"
]
}
},
"/api/v1/admin/tools": {
"get": {
"operationId": "AdminToolsController_getTools",
"parameters": [
{
"name": "query",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "categoryId",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "status",
"required": false,
"in": "query",
"schema": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
]
}
},
{
"name": "accessMode",
"required": false,
"in": "query",
"schema": {
"type": "string",
"enum": [
"web",
"download"
]
}
},
{
"name": "page",
"required": false,
"in": "query",
"schema": {
"default": 1,
"type": "number"
}
},
{
"name": "pageSize",
"required": false,
"in": "query",
"schema": {
"maximum": 50,
"default": 10,
"type": "number"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin query tools",
"tags": [
"admin-tools"
]
},
"post": {
"operationId": "AdminToolsController_createTool",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateToolDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin create tool",
"tags": [
"admin-tools"
]
}
},
"/api/v1/admin/tools/{id}": {
"get": {
"operationId": "AdminToolsController_getToolById",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin get tool detail",
"tags": [
"admin-tools"
]
},
"patch": {
"operationId": "AdminToolsController_updateTool",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateToolDto"
}
}
}
},
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin update tool",
"tags": [
"admin-tools"
]
},
"delete": {
"operationId": "AdminToolsController_deleteTool",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin soft-delete tool",
"tags": [
"admin-tools"
]
}
},
"/api/v1/admin/tools/{id}/status": {
"patch": {
"operationId": "AdminToolsController_updateToolStatus",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateToolStatusDto"
}
}
}
},
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin update tool status",
"tags": [
"admin-tools"
]
}
},
"/api/v1/admin/tools/{id}/access-mode": {
"patch": {
"operationId": "AdminToolsController_updateAccessMode",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateAccessModeDto"
}
}
}
},
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Admin update tool access mode",
"tags": [
"admin-tools"
]
}
},
"/api/v1/admin/tools/{id}/artifacts": {
"post": {
"operationId": "AdminArtifactsController_uploadArtifact",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
},
"version": {
"type": "string",
"example": "1.0.0"
},
"releaseNotes": {
"type": "string",
"example": "Initial release"
},
"isLatest": {
"type": "boolean",
"example": true
}
},
"required": [
"file",
"version"
]
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Upload artifact file for tool",
"tags": [
"admin-artifacts"
]
},
"get": {
"operationId": "AdminArtifactsController_listArtifacts",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "List tool artifacts",
"tags": [
"admin-artifacts"
]
}
},
"/api/v1/admin/tools/{id}/artifacts/{artifactId}/latest": {
"patch": {
"operationId": "AdminArtifactsController_setLatestArtifact",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "artifactId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Set latest artifact",
"tags": [
"admin-artifacts"
]
}
},
"/api/v1/admin/tools/{id}/artifacts/{artifactId}/status": {
"patch": {
"operationId": "AdminArtifactsController_updateArtifactStatus",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "artifactId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateArtifactStatusDto"
}
}
}
},
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Update artifact status",
"tags": [
"admin-artifacts"
]
}
},
"/api/v1/admin/tools/{id}/artifacts/{artifactId}": {
"delete": {
"operationId": "AdminArtifactsController_deleteArtifact",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "artifactId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Delete artifact metadata (soft via status=deleted)",
"tags": [
"admin-artifacts"
]
}
},
"/api/v1/admin/audit-logs": {
"get": {
"operationId": "AdminAuditController_getAuditLogs",
"parameters": [
{
"name": "action",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "adminUserId",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "page",
"required": false,
"in": "query",
"schema": {
"default": 1,
"type": "number"
}
},
{
"name": "pageSize",
"required": false,
"in": "query",
"schema": {
"maximum": 100,
"default": 20,
"type": "number"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"security": [
{
"admin-access-token": []
}
],
"summary": "Query admin audit logs",
"tags": [
"admin-audit"
]
}
}
},
"info": {
"title": "ToolsShow Backend API",
"description": "Generated OpenAPI document for ToolsShow backend.",
"version": "1.0.0",
"contact": {}
},
"tags": [],
"servers": [],
"components": {
"securitySchemes": {
"admin-access-token": {
"scheme": "bearer",
"bearerFormat": "JWT",
"type": "http"
}
},
"schemas": {
"LaunchToolDto": {
"type": "object",
"properties": {
"channel": {
"type": "string",
"example": "official"
},
"clientVersion": {
"type": "string",
"example": "web-1.0.0"
}
}
},
"LoginDto": {
"type": "object",
"properties": {
"username": {
"type": "string",
"example": "admin"
},
"password": {
"type": "string",
"example": "admin123456"
}
},
"required": [
"username",
"password"
]
},
"RefreshTokenDto": {
"type": "object",
"properties": {
"refreshToken": {
"type": "string"
}
},
"required": [
"refreshToken"
]
},
"CreateToolDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"description": {
"type": "string"
},
"rating": {
"type": "number",
"minimum": 0,
"maximum": 5,
"default": 0
},
"tags": {
"description": "Tag ids",
"type": "array",
"items": {
"type": "string"
}
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"accessMode": {
"type": "string",
"enum": [
"web",
"download"
],
"default": "download"
},
"openUrl": {
"type": "string",
"description": "Required when accessMode=web"
},
"openInNewTab": {
"type": "boolean",
"default": true
},
"status": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
],
"default": "draft"
}
},
"required": [
"name",
"categoryId",
"description",
"accessMode"
]
},
"UpdateToolDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"description": {
"type": "string"
},
"rating": {
"type": "number",
"minimum": 0,
"maximum": 5,
"default": 0
},
"tags": {
"description": "Tag ids",
"type": "array",
"items": {
"type": "string"
}
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"accessMode": {
"type": "string",
"enum": [
"web",
"download"
],
"default": "download"
},
"openUrl": {
"type": "string",
"description": "Required when accessMode=web"
},
"openInNewTab": {
"type": "boolean",
"default": true
},
"status": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
],
"default": "draft"
}
}
},
"UpdateToolStatusDto": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
]
}
},
"required": [
"status"
]
},
"UpdateAccessModeDto": {
"type": "object",
"properties": {
"accessMode": {
"type": "string",
"enum": [
"web",
"download"
]
},
"openUrl": {
"type": "string",
"description": "Required when accessMode=web"
},
"openInNewTab": {
"type": "boolean",
"default": true
}
},
"required": [
"accessMode"
]
},
"UpdateArtifactStatusDto": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"active",
"deprecated",
"deleted"
]
}
},
"required": [
"status"
]
}
}
}
}