Files
pig-farm-controller/docs/swagger.yaml

450 lines
11 KiB
YAML
Raw Normal View History

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