{ "swagger": "2.0", "info": { "title": "聚玩打手服务", "description": "聚玩用户服务处理打手信息管理、服务发布及订单相关接口。ID 字段(int64)以 string 传输", "version": "1.0" }, "schemes": [ "http", "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/api/v1/players": { "get": { "summary": "获取打手列表", "operationId": "ListPlayers", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerListResp" } } }, "parameters": [ { "name": "offset", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "0" }, { "name": "limit", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "20" }, { "name": "gameId", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "gender", "in": "query", "required": false, "type": "integer", "format": "int64" } ], "tags": [ "player" ], "consumes": [ "multipart/form-data" ] } }, "/api/v1/players/me": { "get": { "summary": "获取当前用户的打手资料", "operationId": "GetMyPlayer", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerProfile" } } }, "tags": [ "player" ] }, "post": { "summary": "初始化当前用户的打手资料", "operationId": "InitPlayer", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerProfile" } } }, "parameters": [ { "name": "body", "description": " 空响应", "in": "body", "required": true, "schema": { "$ref": "#/definitions/EmptyResp" } } ], "tags": [ "player" ] } }, "/api/v1/players/me/status": { "put": { "summary": "更新接单状态", "operationId": "UpdatePlayerStatus", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/EmptyResp" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdatePlayerStatusReq" } } ], "tags": [ "player" ] } }, "/api/v1/players/{id}": { "get": { "summary": "获取打手详情", "operationId": "GetPlayer", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerProfile" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "player" ] } }, "/api/v1/players/{id}/services": { "get": { "summary": "获取指定打手的服务列表", "operationId": "ListPlayerServices", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerServiceListResp" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "offset", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "0" }, { "name": "limit", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "20" } ], "tags": [ "player" ] } }, "/api/v1/services": { "get": { "summary": "获取所有服务列表", "operationId": "ListServices", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerServiceListResp" } } }, "parameters": [ { "name": "offset", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "0" }, { "name": "limit", "in": "query", "required": true, "type": "integer", "format": "int64", "default": "20" } ], "tags": [ "player" ], "consumes": [ "multipart/form-data" ] }, "post": { "summary": "创建服务", "operationId": "CreateService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerService" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateServiceReq" } } ], "tags": [ "player" ] } }, "/api/v1/services/{id}": { "get": { "summary": "获取服务详情", "operationId": "GetService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerService" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "player" ] }, "delete": { "summary": "删除服务", "operationId": "DeleteService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/EmptyResp" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/DeleteServiceReq" } } ], "tags": [ "player" ] }, "put": { "summary": "更新服务", "operationId": "UpdateService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PlayerService" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateServiceReq" } } ], "tags": [ "player" ] } } }, "definitions": { "CreateServiceReq": { "type": "object", "properties": { "gameId": { "type": "integer", "format": "int64" }, "title": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "number", "format": "double" }, "unit": { "type": "string" }, "rankRange": { "type": "string" }, "availability": { "type": "array", "items": { "type": "string" } } }, "title": "CreateServiceReq", "required": [ "price", "unit" ] }, "DeleteServiceReq": { "type": "object", "title": "DeleteServiceReq" }, "EmptyResp": { "type": "object", "title": "EmptyResp" }, "GetPlayerReq": { "type": "object", "title": "GetPlayerReq" }, "GetServiceReq": { "type": "object", "title": "GetServiceReq" }, "ListPlayerServicesReq": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int64", "default": "0" }, "limit": { "type": "integer", "format": "int64", "default": "20" } }, "title": "ListPlayerServicesReq" }, "PageMeta": { "type": "object", "properties": { "total": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" }, "limit": { "type": "integer", "format": "int64" } }, "title": "PageMeta", "required": [ "total", "offset", "limit" ] }, "PageReq": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int64", "default": "0" }, "limit": { "type": "integer", "format": "int64", "default": "20" } }, "title": "PageReq", "required": [ "offset", "limit" ] }, "PlayerListReq": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int64", "default": "0" }, "limit": { "type": "integer", "format": "int64", "default": "20" }, "gameId": { "type": "integer", "format": "int64" }, "gender": { "type": "integer", "format": "int64" } }, "title": "PlayerListReq" }, "PlayerListResp": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/PlayerProfile" } }, "meta": { "$ref": "#/definitions/PageMeta" } }, "title": "PlayerListResp", "required": [ "items", "meta" ] }, "PlayerProfile": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "user": { "$ref": "#/definitions/UserProfile" }, "rating": { "type": "number", "format": "double" }, "totalOrders": { "type": "integer", "format": "int64" }, "completionRate": { "type": "number", "format": "double" }, "status": { "type": "string" }, "games": { "type": "array", "items": { "type": "string" } }, "services": { "type": "array", "items": { "$ref": "#/definitions/PlayerService" } }, "shopId": { "type": "string" }, "shopName": { "type": "string" }, "gender": { "type": "boolean", "format": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } } }, "title": "PlayerProfile", "required": [ "id", "user", "rating", "totalOrders", "completionRate", "status", "games", "services", "gender", "tags" ] }, "PlayerService": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "playerId": { "type": "integer", "format": "int64" }, "gameId": { "type": "integer", "format": "int64" }, "gameName": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "number", "format": "double" }, "unit": { "type": "string" }, "rankRange": { "type": "string" }, "availability": { "type": "array", "items": { "type": "string" } } }, "title": "PlayerService", "required": [ "playerId", "gameId", "gameName", "title", "description", "price", "unit", "availability" ] }, "PlayerServiceListResp": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/PlayerService" } }, "meta": { "$ref": "#/definitions/PageMeta" } }, "title": "PlayerServiceListResp", "required": [ "items", "meta" ] }, "SimpleUser": { "type": "object", "properties": { "id": { "type": "string" }, "nickname": { "type": "string" }, "avatar": { "type": "string" } }, "title": "SimpleUser", "required": [ "id", "nickname", "avatar" ] }, "UpdatePlayerStatusReq": { "type": "object", "properties": { "status": { "type": "string" } }, "title": "UpdatePlayerStatusReq", "required": [ "status" ] }, "UpdateServiceReq": { "type": "object", "properties": { "gameId": { "type": "integer", "format": "int64" }, "title": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "number", "format": "double" }, "unit": { "type": "string" }, "rankRange": { "type": "string" }, "availability": { "type": "array", "items": { "type": "string" } } }, "title": "UpdateServiceReq", "required": [ "availability" ] }, "UserProfile": { "type": "object", "properties": { "id": { "type": "string" }, "username": { "type": "string" }, "nickname": { "type": "string" }, "avatar": { "type": "string" }, "role": { "type": "string", "description": " consumer, player, owner, admin" }, "verifiedRoles": { "type": "array", "items": { "type": "string" } }, "verificationStatus": { "type": "object" }, "phone": { "type": "string" }, "bio": { "type": "string" }, "createdAt": { "type": "string" } }, "title": "UserProfile", "required": [ "id", "username", "nickname", "avatar", "role", "verifiedRoles", "verificationStatus", "createdAt" ] } }, "securityDefinitions": { "apiKey": { "type": "apiKey", "description": "Enter JWT Bearer token **_only_**", "name": "Authorization", "in": "header" } } }