{ "swagger": "2.0", "info": { "contact": {} }, "paths": { "/devices": { "get": { "description": "获取系统中所有设备的列表", "produces": [ "application/json" ], "tags": [ "设备管理" ], "summary": "获取设备列表", "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "post": { "description": "根据提供的信息创建一个新设备", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "设备管理" ], "summary": "创建新设备", "parameters": [ { "description": "设备信息", "name": "device", "in": "body", "required": true, "schema": { "$ref": "#/definitions/device.CreateDeviceRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/devices/{id}": { "get": { "description": "根据设备ID获取单个设备的详细信息", "produces": [ "application/json" ], "tags": [ "设备管理" ], "summary": "获取设备信息", "parameters": [ { "type": "string", "description": "设备ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "put": { "description": "根据设备ID更新一个已存在的设备信息", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "设备管理" ], "summary": "更新设备信息", "parameters": [ { "type": "string", "description": "设备ID", "name": "id", "in": "path", "required": true }, { "description": "要更新的设备信息", "name": "device", "in": "body", "required": true, "schema": { "$ref": "#/definitions/device.UpdateDeviceRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "delete": { "description": "根据设备ID删除一个设备(软删除)", "produces": [ "application/json" ], "tags": [ "设备管理" ], "summary": "删除设备", "parameters": [ { "type": "string", "description": "设备ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/plans": { "get": { "description": "获取所有计划的列表", "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "获取计划列表", "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "post": { "description": "创建一个新的计划,包括其基本信息和所有关联的子计划/任务。", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "创建计划", "parameters": [ { "description": "计划信息", "name": "plan", "in": "body", "required": true, "schema": { "$ref": "#/definitions/plan.CreatePlanRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/plans/{id}": { "get": { "description": "根据计划ID获取单个计划的详细信息。", "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "获取计划详情", "parameters": [ { "type": "integer", "description": "计划ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 404, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "put": { "description": "根据计划ID更新计划的详细信息。", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "更新计划", "parameters": [ { "type": "integer", "description": "计划ID", "name": "id", "in": "path", "required": true }, { "description": "更新后的计划信息", "name": "plan", "in": "body", "required": true, "schema": { "$ref": "#/definitions/plan.UpdatePlanRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 404, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } }, "delete": { "description": "根据计划ID删除计划。", "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "删除计划", "parameters": [ { "type": "integer", "description": "计划ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 404, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/plans/{id}/start": { "post": { "description": "根据计划ID启动一个计划的执行。", "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "启动计划", "parameters": [ { "type": "integer", "description": "计划ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 404, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/plans/{id}/stop": { "post": { "description": "根据计划ID停止一个正在执行的计划。", "produces": [ "application/json" ], "tags": [ "计划管理" ], "summary": "停止计划", "parameters": [ { "type": "integer", "description": "计划ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 404, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/users": { "post": { "description": "根据用户名和密码创建一个新的系统用户。", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "用户管理" ], "summary": "创建新用户", "parameters": [ { "description": "用户信息", "name": "user", "in": "body", "required": true, "schema": { "$ref": "#/definitions/user.CreateUserRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 409, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } }, "/users/login": { "post": { "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "用户管理" ], "summary": "用户登录", "parameters": [ { "description": "登录凭证", "name": "credentials", "in": "body", "required": true, "schema": { "$ref": "#/definitions/user.LoginRequest" } } ], "responses": { "200": { "description": "业务失败,具体错误码和信息见响应体(例如400, 401, 500)", "schema": { "$ref": "#/definitions/controller.Response" } } } } } }, "definitions": { "controller.Properties": { "type": "object" }, "controller.Response": { "type": "object", "properties": { "code": { "description": "业务状态码", "type": "integer" }, "data": { "description": "业务数据" }, "message": { "description": "提示信息", "type": "string" } } }, "device.CreateDeviceRequest": { "type": "object" }, "device.DeviceResponse": { "type": "object", "properties": { "created_at": { "type": "string" }, "id": { "type": "integer" }, "location": { "type": "string" }, "name": { "type": "string" }, "parent_id": { "type": "integer" }, "properties": { "$ref": "#/definitions/controller.Properties" }, "sub_type": { "$ref": "#/definitions/models.DeviceSubType" }, "type": { "$ref": "#/definitions/models.DeviceType" }, "updated_at": { "type": "string" } } }, "device.UpdateDeviceRequest": { "type": "object", "required": [ "name", "type" ], "properties": { "location": { "type": "string" }, "name": { "type": "string" }, "parent_id": { "type": "integer" }, "properties": { "$ref": "#/definitions/controller.Properties" }, "sub_type": { "$ref": "#/definitions/models.DeviceSubType" }, "type": { "$ref": "#/definitions/models.DeviceType" } } }, "models.DeviceSubType": { "type": "string", "enum": [ "", "temperature", "humidity", "ammonia", "feed_valve", "fan", "water_curtain" ], "x-enum-varnames": [ "SubTypeNone", "SubTypeSensorTemp", "SubTypeSensorHumidity", "SubTypeSensorAmmonia", "SubTypeValveFeed", "SubTypeFan", "SubTypeWaterCurtain" ] }, "models.DeviceType": { "type": "string", "enum": [ "area_controller", "device" ], "x-enum-varnames": [ "DeviceTypeAreaController", "DeviceTypeDevice" ] }, "plan.CreatePlanRequest": { "type": "object", "required": [ "name" ], "properties": { "description": { "type": "string", "example": "根据温度自动调节风扇和加热器" }, "name": { "type": "string", "example": "猪舍温度控制计划" } } }, "plan.ListPlansResponse": { "type": "object", "properties": { "plans": { "type": "array", "items": { "$ref": "#/definitions/plan.PlanResponse" } }, "total": { "type": "integer", "example": 100 } } }, "plan.PlanResponse": { "type": "object", "properties": { "description": { "type": "string", "example": "根据温度自动调节风扇和加热器" }, "id": { "type": "integer", "example": 1 }, "name": { "type": "string", "example": "猪舍温度控制计划" } } }, "plan.UpdatePlanRequest": { "type": "object", "properties": { "description": { "type": "string", "example": "更新后的描述" }, "name": { "type": "string", "example": "猪舍温度控制计划V2" } } }, "user.CreateUserRequest": { "type": "object", "required": [ "password", "username" ], "properties": { "password": { "type": "string", "minLength": 6, "example": "password123" }, "username": { "type": "string", "example": "newuser" } } }, "user.CreateUserResponse": { "type": "object", "properties": { "id": { "type": "integer", "example": 1 }, "username": { "type": "string", "example": "newuser" } } }, "user.LoginRequest": { "type": "object", "required": [ "password", "username" ], "properties": { "password": { "type": "string", "example": "password123" }, "username": { "type": "string", "example": "testuser" } } }, "user.LoginResponse": { "type": "object", "properties": { "id": { "type": "integer", "example": 1 }, "token": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }, "username": { "type": "string", "example": "testuser" } } } } }