LicenseManger/api-docs.yaml

519 lines
11 KiB
YAML

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
description: 备注说明
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: 设备注册
parameters:
- in: body
name: body
required: true
schema:
type: object
required:
- uid
- device_model
- license_code
properties:
uid:
type: string
description: 设备UID
device_model:
type: string
description: 设备型号
license_code:
type: string
description: 授权码
responses:
200:
description: 注册成功
schema:
type: object
properties:
code:
type: integer
message:
type: string
400:
description: 注册失败
schema:
type: object
properties:
error:
type: string
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