2024-11-14 14:55:43 +00:00
|
|
|
swagger: '2.0'
|
|
|
|
info:
|
|
|
|
title: 授权验证管理平台 API
|
|
|
|
version: '1.0.0'
|
|
|
|
description: 授权验证管理平台的所有 API 接口文档
|
|
|
|
host: localhost:8080
|
|
|
|
basePath: /api
|
|
|
|
schemes:
|
|
|
|
- http
|
|
|
|
- https
|
|
|
|
|
|
|
|
securityDefinitions:
|
|
|
|
BearerAuth:
|
|
|
|
type: apiKey
|
|
|
|
name: Authorization
|
|
|
|
in: header
|
|
|
|
description: 'Bearer {token}'
|
|
|
|
|
|
|
|
tags:
|
|
|
|
- name: 用户认证
|
|
|
|
description: 用户登录和认证相关接口
|
|
|
|
- name: 设备管理
|
|
|
|
description: 设备型号和设备管理相关接口
|
|
|
|
- name: 授权管理
|
|
|
|
description: 授权码管理相关接口
|
|
|
|
|
|
|
|
paths:
|
|
|
|
/login:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 用户认证
|
|
|
|
summary: 用户登录
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
description: 用户名
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
description: 密码
|
|
|
|
captcha:
|
|
|
|
type: string
|
|
|
|
description: 验证码
|
|
|
|
captchaId:
|
|
|
|
type: string
|
|
|
|
description: 验证码ID
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 登录成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
token:
|
|
|
|
type: string
|
|
|
|
|
|
|
|
/captcha:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 用户认证
|
|
|
|
summary: 获取验证码
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 获取成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
captchaId:
|
|
|
|
type: string
|
|
|
|
imageBase64:
|
|
|
|
type: string
|
|
|
|
|
|
|
|
/devices/models:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 获取设备型号列表
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: limit
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: model_name
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
- name: device_type
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 获取成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
count:
|
|
|
|
type: integer
|
|
|
|
data:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/DeviceModel'
|
|
|
|
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 创建设备型号
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/DeviceModel'
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 创建成功
|
|
|
|
|
|
|
|
/devices/registered:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 获取已注册设备列表
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: limit
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: uid
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
- name: device_model
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
- name: status
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 获取成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
count:
|
|
|
|
type: integer
|
|
|
|
data:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Device'
|
|
|
|
|
|
|
|
/devices/{uid}/license:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 绑定授权码
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: uid
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
license_code:
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 绑定成功
|
|
|
|
|
|
|
|
delete:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 解绑授权码
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: uid
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 解绑成功
|
|
|
|
|
|
|
|
/licenses:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 授权管理
|
|
|
|
summary: 获取授权码列表
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: limit
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: status
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
description: 授权码状态(unused/used/expired/revoked)
|
|
|
|
- name: license_type
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
description: 授权类型(time/count/permanent)
|
|
|
|
- name: batch_no
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
description: 批次号
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 获取成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
count:
|
|
|
|
type: integer
|
|
|
|
data:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/LicenseCode'
|
|
|
|
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 授权管理
|
|
|
|
summary: 生成授权码
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
license_type:
|
|
|
|
type: string
|
|
|
|
enum: [time, count, permanent]
|
|
|
|
description: 授权类型
|
|
|
|
duration:
|
|
|
|
type: integer
|
|
|
|
description: 有效期(分钟)
|
|
|
|
max_uses:
|
|
|
|
type: integer
|
|
|
|
description: 最大使用次数
|
|
|
|
count:
|
|
|
|
type: integer
|
|
|
|
description: 生成数量
|
|
|
|
remark:
|
|
|
|
type: string
|
2024-11-16 15:59:15 +00:00
|
|
|
description: 注说明
|
2024-11-14 14:55:43 +00:00
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 生成成功
|
|
|
|
|
|
|
|
/licenses/{id}/logs:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 授权管理
|
|
|
|
summary: 获取授权码操作日志
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: id
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
- name: page
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: limit
|
|
|
|
in: query
|
|
|
|
type: integer
|
|
|
|
- name: action
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
description: 操作类型(create/use/verify/revoke)
|
|
|
|
- name: status
|
|
|
|
in: query
|
|
|
|
type: string
|
|
|
|
description: 状态(success/failed)
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 获取成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
count:
|
|
|
|
type: integer
|
|
|
|
data:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/LicenseLog'
|
|
|
|
|
|
|
|
/licenses/{code}/revoke:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 授权管理
|
|
|
|
summary: 撤销授权码
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- name: code
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 撤销成功
|
|
|
|
|
|
|
|
/licenses/batch/revoke:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 授权管理
|
|
|
|
summary: 批量撤销授权码
|
|
|
|
security:
|
|
|
|
- BearerAuth: []
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
codes:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
description: 授权码列表
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 批量撤销成功
|
|
|
|
|
|
|
|
/devices/register:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 设备注册
|
2024-11-14 15:32:08 +00:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2024-11-14 14:55:43 +00:00
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
required:
|
|
|
|
- uid
|
|
|
|
- device_model
|
|
|
|
properties:
|
|
|
|
uid:
|
|
|
|
type: string
|
|
|
|
description: 设备UID
|
|
|
|
device_model:
|
|
|
|
type: string
|
|
|
|
description: 设备型号
|
|
|
|
license_code:
|
|
|
|
type: string
|
2024-11-14 15:32:08 +00:00
|
|
|
description: 授权码(可选)
|
2024-11-14 14:55:43 +00:00
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 注册成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
2024-11-14 15:32:08 +00:00
|
|
|
example: 0
|
2024-11-14 14:55:43 +00:00
|
|
|
message:
|
|
|
|
type: string
|
2024-11-14 15:32:08 +00:00
|
|
|
data:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
uid:
|
|
|
|
type: string
|
|
|
|
device_model:
|
|
|
|
type: string
|
|
|
|
status:
|
|
|
|
type: string
|
2024-11-14 14:55:43 +00:00
|
|
|
400:
|
2024-11-14 15:32:08 +00:00
|
|
|
description: 请求错误
|
2024-11-14 14:55:43 +00:00
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
2024-11-14 15:32:08 +00:00
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: -1
|
2024-11-14 14:55:43 +00:00
|
|
|
error:
|
|
|
|
type: string
|
|
|
|
|
2024-11-16 15:59:15 +00:00
|
|
|
/devices/{uid}/start:
|
|
|
|
post:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 更新设备启动次数
|
|
|
|
description: 记录设备启动,更新启动次数和最后活跃时间
|
|
|
|
parameters:
|
|
|
|
- name: uid
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
description: 设备UID
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 更新成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: 0
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
data:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
start_count:
|
|
|
|
type: integer
|
|
|
|
description: 当前启动次数
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
description: 设备状态(active/expired/inactive)
|
|
|
|
last_active_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
description: 最后活跃时间
|
|
|
|
400:
|
|
|
|
description: 请求错误
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: -1
|
|
|
|
error:
|
|
|
|
type: string
|
|
|
|
description: 错误信息
|
|
|
|
404:
|
|
|
|
description: 设备不存在
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: -1
|
|
|
|
error:
|
|
|
|
type: string
|
|
|
|
example: "设备未注册"
|
|
|
|
|
|
|
|
/devices/{uid}/validate:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- 设备管理
|
|
|
|
summary: 验证设备状态
|
|
|
|
description: 验证设备是否可用,检查授权状态
|
|
|
|
parameters:
|
|
|
|
- name: uid
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
description: 设备UID
|
|
|
|
responses:
|
|
|
|
200:
|
|
|
|
description: 验证成功
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: 0
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
data:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
description: 设备状态(active/expired/inactive)
|
|
|
|
license_type:
|
|
|
|
type: string
|
|
|
|
description: 授权类型(time/count/permanent)
|
|
|
|
expire_time:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
description: 过期时间(仅time类型)
|
|
|
|
start_count:
|
|
|
|
type: integer
|
|
|
|
description: 当前启动次数(仅count类型)
|
|
|
|
max_uses:
|
|
|
|
type: integer
|
|
|
|
description: 最大使用次数(仅count类型)
|
|
|
|
400:
|
|
|
|
description: 验证失败
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: -1
|
|
|
|
error:
|
|
|
|
type: string
|
|
|
|
description: 错误信息
|
|
|
|
404:
|
|
|
|
description: 设备不存在
|
|
|
|
schema:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
code:
|
|
|
|
type: integer
|
|
|
|
example: -1
|
|
|
|
error:
|
|
|
|
type: string
|
|
|
|
example: "设备未注册"
|
|
|
|
|
2024-11-14 14:55:43 +00:00
|
|
|
definitions:
|
|
|
|
DeviceModel:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
model_name:
|
|
|
|
type: string
|
|
|
|
device_type:
|
|
|
|
type: string
|
|
|
|
company:
|
|
|
|
type: string
|
|
|
|
remark:
|
|
|
|
type: string
|
|
|
|
device_count:
|
|
|
|
type: integer
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
created_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
|
|
|
|
Device:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
uid:
|
|
|
|
type: string
|
|
|
|
device_model:
|
|
|
|
type: string
|
|
|
|
device_type:
|
|
|
|
type: string
|
|
|
|
company:
|
|
|
|
type: string
|
|
|
|
register_time:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
expire_time:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
license_type:
|
|
|
|
type: string
|
|
|
|
license_code:
|
|
|
|
type: string
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
start_count:
|
|
|
|
type: integer
|
|
|
|
last_active_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
|
|
|
|
LicenseCode:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
code:
|
|
|
|
type: string
|
|
|
|
license_type:
|
|
|
|
type: string
|
|
|
|
description: 授权类型(time/count/permanent)
|
|
|
|
duration:
|
|
|
|
type: integer
|
|
|
|
description: 有效期(分钟)
|
|
|
|
max_uses:
|
|
|
|
type: integer
|
|
|
|
description: 最大使用次数
|
|
|
|
used_count:
|
|
|
|
type: integer
|
|
|
|
description: 已使用次数
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
description: 状态(unused/used/expired/revoked)
|
|
|
|
used_by:
|
|
|
|
type: string
|
|
|
|
description: 使用设备UID
|
|
|
|
used_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
created_by:
|
|
|
|
type: integer
|
|
|
|
batch_no:
|
|
|
|
type: string
|
|
|
|
remark:
|
|
|
|
type: string
|
|
|
|
created_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
updated_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
|
|
|
|
LicenseLog:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
license_id:
|
|
|
|
type: integer
|
|
|
|
device_uid:
|
|
|
|
type: string
|
|
|
|
action:
|
|
|
|
type: string
|
|
|
|
description: 操作类型(create/use/verify/revoke)
|
|
|
|
ip:
|
|
|
|
type: string
|
|
|
|
status:
|
|
|
|
type: string
|
|
|
|
description: 状态(success/failed)
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
created_at:
|
|
|
|
type: string
|
|
|
|
format: date-time
|