716 lines
17 KiB
YAML
716 lines
17 KiB
YAML
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"
|