Files
pig-farm-controller/docs/swagger.yaml
2025-09-20 17:11:04 +08:00

716 lines
17 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

definitions:
controller.Response:
properties:
code:
description: 业务状态码
type: integer
data:
description: 业务数据
message:
description: 提示信息
type: string
type: object
device.CreateDeviceRequest:
properties:
location:
type: string
name:
type: string
parent_id:
type: integer
properties:
additionalProperties: true
type: object
sub_type:
$ref: '#/definitions/models.DeviceSubType'
type:
$ref: '#/definitions/models.DeviceType'
required:
- name
- type
type: object
device.UpdateDeviceRequest:
properties:
location:
type: string
name:
type: string
parent_id:
type: integer
properties:
additionalProperties: true
type: object
sub_type:
$ref: '#/definitions/models.DeviceSubType'
type:
$ref: '#/definitions/models.DeviceType'
required:
- name
- type
type: object
git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse:
properties:
created_at:
type: string
id:
type: integer
location:
type: string
name:
type: string
parent_id:
type: integer
properties:
additionalProperties: true
type: object
sub_type:
$ref: '#/definitions/models.DeviceSubType'
type:
$ref: '#/definitions/models.DeviceType'
updated_at:
type: string
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
models.PlanContentType:
enum:
- sub_plans
- tasks
type: string
x-enum-comments:
PlanContentTypeSubPlans: 计划包含子计划
PlanContentTypeTasks: 计划包含任务
x-enum-descriptions:
- 计划包含子计划
- 计划包含任务
x-enum-varnames:
- PlanContentTypeSubPlans
- PlanContentTypeTasks
models.PlanExecutionType:
enum:
- automatic
- manual
type: string
x-enum-comments:
PlanExecutionTypeAutomatic: 自动执行 (包含定时和循环)
PlanExecutionTypeManual: 手动执行
x-enum-descriptions:
- 自动执行 (包含定时和循环)
- 手动执行
x-enum-varnames:
- PlanExecutionTypeAutomatic
- PlanExecutionTypeManual
models.PlanStatus:
enum:
- 0
- 1
- 2
format: int32
type: integer
x-enum-comments:
PlanStatusDisabled: 禁用计划
PlanStatusEnabled: 启用计划
PlanStatusStopeed: 执行完毕
x-enum-descriptions:
- 启用计划
- 禁用计划
- 执行完毕
x-enum-varnames:
- PlanStatusEnabled
- PlanStatusDisabled
- PlanStatusStopeed
models.TaskType:
enum:
- plan_analysis
- waiting
type: string
x-enum-comments:
TaskPlanAnalysis: 解析Plan的Task列表并添加到待执行队列的特殊任务
TaskTypeWaiting: 等待任务
x-enum-descriptions:
- 解析Plan的Task列表并添加到待执行队列的特殊任务
- 等待任务
x-enum-varnames:
- TaskPlanAnalysis
- TaskTypeWaiting
plan.CreatePlanRequest:
properties:
content_type:
allOf:
- $ref: '#/definitions/models.PlanContentType'
example: tasks
cron_expression:
example: 0 0 6 * * *
type: string
description:
example: 根据温度自动调节风扇和加热器
type: string
execute_num:
example: 10
type: integer
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
name:
example: 猪舍温度控制计划
type: string
sub_plan_ids:
items:
type: integer
type: array
tasks:
items:
$ref: '#/definitions/plan.TaskRequest'
type: array
required:
- content_type
- execution_type
- name
type: object
plan.ListPlansResponse:
properties:
plans:
items:
$ref: '#/definitions/plan.PlanResponse'
type: array
total:
example: 100
type: integer
type: object
plan.PlanResponse:
properties:
content_type:
allOf:
- $ref: '#/definitions/models.PlanContentType'
example: tasks
cron_expression:
example: 0 0 6 * * *
type: string
description:
example: 根据温度自动调节风扇和加热器
type: string
execute_count:
example: 0
type: integer
execute_num:
example: 10
type: integer
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
id:
example: 1
type: integer
name:
example: 猪舍温度控制计划
type: string
status:
allOf:
- $ref: '#/definitions/models.PlanStatus'
example: 0
sub_plans:
items:
$ref: '#/definitions/plan.SubPlanResponse'
type: array
tasks:
items:
$ref: '#/definitions/plan.TaskResponse'
type: array
type: object
plan.SubPlanResponse:
properties:
child_plan:
$ref: '#/definitions/plan.PlanResponse'
child_plan_id:
example: 2
type: integer
execution_order:
example: 1
type: integer
id:
example: 1
type: integer
parent_plan_id:
example: 1
type: integer
type: object
plan.TaskRequest:
properties:
description:
example: 打开1号风扇
type: string
execution_order:
example: 1
type: integer
name:
example: 打开风扇
type: string
parameters:
additionalProperties: true
type: object
type:
allOf:
- $ref: '#/definitions/models.TaskType'
example: waiting
type: object
plan.TaskResponse:
properties:
description:
example: 打开1号风扇
type: string
execution_order:
example: 1
type: integer
id:
example: 1
type: integer
name:
example: 打开风扇
type: string
parameters:
additionalProperties: true
type: object
plan_id:
example: 1
type: integer
type:
allOf:
- $ref: '#/definitions/models.TaskType'
example: waiting
type: object
plan.UpdatePlanRequest:
properties:
content_type:
allOf:
- $ref: '#/definitions/models.PlanContentType'
example: tasks
cron_expression:
example: 0 0 6 * * *
type: string
description:
example: 更新后的描述
type: string
execute_num:
example: 10
type: integer
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
name:
example: 猪舍温度控制计划V2
type: string
sub_plan_ids:
items:
type: integer
type: array
tasks:
items:
$ref: '#/definitions/plan.TaskRequest'
type: array
type: object
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:
contact: {}
paths:
/api/v1/devices:
get:
description: 获取系统中所有设备的列表
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
items:
$ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse'
type: array
type: object
summary: 获取设备列表
tags:
- 设备管理
post:
consumes:
- application/json
description: 根据提供的信息创建一个新设备
parameters:
- description: 设备信息
in: body
name: device
required: true
schema:
$ref: '#/definitions/device.CreateDeviceRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse'
type: object
summary: 创建新设备
tags:
- 设备管理
/api/v1/devices/{id}:
delete:
description: 根据设备ID删除一个设备软删除
parameters:
- description: 设备ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.Response'
summary: 删除设备
tags:
- 设备管理
get:
description: 根据设备ID获取单个设备的详细信息
parameters:
- description: 设备ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse'
type: object
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: OK
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse'
type: object
summary: 更新设备信息
tags:
- 设备管理
/api/v1/plans:
get:
description: 获取所有计划的列表
produces:
- application/json
responses:
"200":
description: 业务码为200代表成功获取列表
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/plan.ListPlansResponse'
type: object
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: 业务码为201代表创建成功
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/plan.PlanResponse'
type: object
summary: 创建计划
tags:
- 计划管理
/api/v1/plans/{id}:
delete:
description: 根据计划ID删除计划。
parameters:
- description: 计划ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 业务码为200代表删除成功
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: 业务码为200代表成功获取
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/plan.PlanResponse'
type: object
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: 业务码为200代表更新成功
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/plan.PlanResponse'
type: object
summary: 更新计划
tags:
- 计划管理
/api/v1/plans/{id}/start:
post:
description: 根据计划ID启动一个计划的执行。
parameters:
- description: 计划ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 业务码为200代表成功启动计划
schema:
$ref: '#/definitions/controller.Response'
summary: 启动计划
tags:
- 计划管理
/api/v1/plans/{id}/stop:
post:
description: 根据计划ID停止一个正在执行的计划。
parameters:
- description: 计划ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 业务码为200代表成功停止计划
schema:
$ref: '#/definitions/controller.Response'
summary: 停止计划
tags:
- 计划管理
/api/v1/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: 业务码为201代表创建成功
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/user.CreateUserResponse'
type: object
summary: 创建新用户
tags:
- 用户管理
/api/v1/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":
description: 业务码为200代表登录成功
schema:
allOf:
- $ref: '#/definitions/controller.Response'
- properties:
data:
$ref: '#/definitions/user.LoginResponse'
type: object
summary: 用户登录
tags:
- 用户管理
swagger: "2.0"