跳到主要内容
版本:2.1.1

API 前言

本文档详细介绍 FluxMQ 2.1.1 版本中所有 HTTP API 接口,按照功能模块进行分类。

基础信息

  • 基础路径: 根据模块不同,基础路径不同
  • 认证方式: 支持 HTTP Basic Auth 和 Token 认证
  • 内容类型: application/json
  • 字符编码: UTF-8

API 模块分类

FluxMQ 提供了丰富的 HTTP API 接口,涵盖以下功能模块:

核心文档

API 功能分类

完整的 API 接口按功能分为以下模块,详细信息请查看 完整 API 参考

  • 端点管理 API - 动态管理 MQTT 端点
  • 连接管理 API - 管理 MQTT 客户端连接
  • 主题管理 API - 管理 MQTT 主题
  • 订阅管理 API - 管理 MQTT 订阅
  • 规则引擎 API - 管理规则引擎规则
  • 数据源管理 API - 管理数据源配置
  • 认证管理 API - 管理认证策略
  • ACL 管理 API - 管理访问控制列表
  • 系统管理 API - 系统配置和管理
  • 日志管理 API - 日志查询和管理
  • 监控 API - 系统监控和指标
  • 脚本管理 API - 管理脚本
  • 指令管理 API - 管理指令配置
  • 扩展管理 API - 管理扩展功能
  • 会话管理 API - 管理 MQTT 会话
  • 保留消息 API - 管理保留消息

通用说明

认证方式

所有 API 接口(除了公共接口)都需要认证。支持以下认证方式:

  1. HTTP Basic Auth

    curl -u username:password http://localhost:8080/api/endpoint
  2. Token 认证

    curl -H "Authorization: Bearer <token>" http://localhost:8080/api/endpoint

响应格式

所有 API 接口统一使用 JSON 格式响应。

成功响应示例

{
"code": 200,
"message": "success",
"data": {}
}

错误响应示例

{
"code": 400,
"message": "Invalid parameters",
"error": "Missing required field: id"
}

错误码说明

错误码说明解决方案
200成功-
400请求参数错误检查请求参数格式
401认证失败检查认证信息
403权限不足检查用户权限
404资源不存在检查资源ID
409资源冲突检查资源状态
500服务器内部错误查看服务器日志

分页参数

需要分页的接口统一使用以下参数:

{
"page": 1,
"size": 20
}

分页响应格式

{
"data": [],
"total": 100,
"page": 1,
"size": 20
}

快速开始

cURL 示例

# 发布消息
curl -X POST http://localhost:8080/api/publish \
-H "Content-Type: application/json" \
-d '{
"topic": "sensor/temperature",
"payload": "25.5",
"qos": 1
}'

# 查询连接
curl -X POST http://localhost:8080/mqtt/connection \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"size": 20
}'

JavaScript 示例

// 发布消息
const publishMessage = async (topic, payload) => {
const response = await fetch('/api/publish', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
topic: topic,
payload: payload,
qos: 1
})
});

return await response.json();
};

Python 示例

import requests

# 发布消息
def publish_message(topic, payload):
url = "http://localhost:8080/api/publish"
data = {
"topic": topic,
"payload": payload,
"qos": 1
}

response = requests.post(url, json=data)
return response.json()

相关文档