{ "swagger": "2.0", "info": { "description": "MengStack 平台 API 文档", "title": "MengStack API", "contact": {}, "version": "0.1.0" }, "host": "localhost:2222", "basePath": "/api/v1", "paths": { "/auth/login": { "post": { "description": "使用邮箱和密码登录,返回 JWT token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "用户登录", "parameters": [ { "description": "登录信息", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.LoginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.TokenPair" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } }, "/auth/refresh": { "post": { "description": "使用 refresh_token 获取新的 token 对", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "刷新 Token", "parameters": [ { "description": "{ \\", "name": "request", "in": "body", "required": true, "schema": { "type": "object" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.TokenPair" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } }, "/auth/register": { "post": { "description": "使用邮箱、用户名和密码注册新用户,返回 JWT token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "用户注册", "parameters": [ { "description": "注册信息", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.RegisterRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.TokenPair" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } }, "/health": { "get": { "description": "检查 PostgreSQL 和 Redis 连接状态", "produces": [ "application/json" ], "tags": [ "System" ], "summary": "健康检查", "responses": { "200": { "description": "OK", "schema": { "type": "object", "properties": { "database": { "type": "string" }, "redis": { "type": "string" }, "status": { "type": "string" }, "timestamp": { "type": "integer" }, "trace_id": { "type": "string" }, "version": { "type": "string" } } } } } } }, "/password": { "post": { "security": [ { "Bearer": [] }, { "TenantID": [] } ], "description": "使用旧密码验证后设置新密码", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "修改密码", "parameters": [ { "description": "密码修改请求", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.ChangePasswordRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } }, "/ping": { "get": { "security": [ { "Bearer": [] }, { "TenantID": [] } ], "description": "返回 pong,用于验证认证和多租户中间件是否正常", "produces": [ "application/json" ], "tags": [ "System" ], "summary": "健康探测", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } }, "/profile": { "get": { "security": [ { "Bearer": [] }, { "TenantID": [] } ], "description": "返回当前认证用户的个人资料", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "获取当前用户信息", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/mengstack_internal_modules_auth_domain.UserDTO" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/mengstack_internal_kernel_response.Response" } } } } } }, "definitions": { "mengstack_internal_kernel_response.Response": { "type": "object", "properties": { "code": { "type": "integer" }, "data": {}, "message": { "type": "string" }, "trace_id": { "type": "string" } } }, "mengstack_internal_modules_auth_domain.ChangePasswordRequest": { "type": "object", "required": [ "new_password", "old_password" ], "properties": { "new_password": { "type": "string", "maxLength": 128, "minLength": 8 }, "old_password": { "type": "string" } } }, "mengstack_internal_modules_auth_domain.LoginRequest": { "type": "object", "required": [ "email", "password" ], "properties": { "email": { "type": "string" }, "password": { "type": "string" } } }, "mengstack_internal_modules_auth_domain.RegisterRequest": { "type": "object", "required": [ "email", "password", "username" ], "properties": { "email": { "type": "string" }, "nickname": { "type": "string" }, "password": { "type": "string", "maxLength": 128, "minLength": 8 }, "username": { "type": "string", "maxLength": 64, "minLength": 3 } } }, "mengstack_internal_modules_auth_domain.TokenPair": { "type": "object", "properties": { "access_token": { "type": "string" }, "expires_in": { "type": "integer" }, "refresh_token": { "type": "string" } } }, "mengstack_internal_modules_auth_domain.UserDTO": { "type": "object", "properties": { "avatar": { "type": "string" }, "email": { "type": "string" }, "id": { "type": "integer" }, "nickname": { "type": "string" }, "status": { "type": "integer" }, "tenant_id": { "type": "string" }, "username": { "type": "string" } } } }, "securityDefinitions": { "Bearer": { "description": "Bearer \u003ctoken\u003e", "type": "apiKey", "name": "Authorization", "in": "header" }, "TenantID": { "description": "租户 ID(受保护接口必填)", "type": "apiKey", "name": "X-Tenant-ID", "in": "header" } } }