微信截圖_17412478771344.png)
Yahoo Finance API – 完整指南
MQTT 是一種廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)領(lǐng)域的輕量級(jí)通信協(xié)議。它采用發(fā)布-訂閱模型,允許設(shè)備通過特定主題發(fā)布消息,其他設(shè)備通過訂閱相關(guān)主題接收消息。這種機(jī)制支持物聯(lián)網(wǎng)設(shè)備之間的實(shí)時(shí)數(shù)據(jù)交換,具有高效、可靠的特點(diǎn)。
REST(Representational State Transfer)是一種用于構(gòu)建 Web 應(yīng)用程序接口的架構(gòu)風(fēng)格。REST API 遵循一系列設(shè)計(jì)原則,旨在降低開發(fā)復(fù)雜性并提升系統(tǒng)的可擴(kuò)展性。
REST API 使用 HTTP 協(xié)議進(jìn)行通信,支持多種 HTTP 方法,例如:
這種設(shè)計(jì)使 REST API 能夠輕松與現(xiàn)有的 Web 技術(shù)集成。
REST API 以資源為中心,每個(gè)資源都有唯一的 URI。例如,用戶資源的 URI 可以是 /users/{userId}
,通過該 URI 可以執(zhí)行獲取用戶信息、更新用戶信息等操作。
REST API 通常使用 JSON 或 XML 格式傳輸數(shù)據(jù):
一個(gè)典型的 JSON 響應(yīng)示例:
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
}
REST API 支持 HTTPS 數(shù)據(jù)傳輸,并提供多種身份驗(yàn)證機(jī)制(如 OAuth、API Key),確保數(shù)據(jù)的安全性和完整性。
REST API 的設(shè)計(jì)靈活,能夠輕松添加新資源和操作,例如新增端點(diǎn) /users/{userId}/posts
用于檢索用戶的帖子,而不會(huì)影響現(xiàn)有接口。
將 MQTT 和 REST API 集成,可以為數(shù)據(jù)交換和通信提供高效、靈活的解決方案,廣泛應(yīng)用于工業(yè)自動(dòng)化、智能家居等領(lǐng)域。以下是一些典型的集成場(chǎng)景:
現(xiàn)場(chǎng)設(shè)備通過 MQTT 發(fā)布實(shí)時(shí)數(shù)據(jù),中心服務(wù)器通過 REST API 接收并處理這些數(shù)據(jù),結(jié)合了 MQTT 的實(shí)時(shí)性與 REST API 的靈活性。
中心服務(wù)器通過 REST API 發(fā)送控制命令,現(xiàn)場(chǎng)設(shè)備通過 MQTT 接收并執(zhí)行命令,充分利用了 REST API 的易用性和 MQTT 的高效性。
現(xiàn)場(chǎng)設(shè)備通過 MQTT 發(fā)布報(bào)警信息,中心服務(wù)器通過 REST API 將報(bào)警推送給用戶,結(jié)合了 MQTT 的實(shí)時(shí)性與 REST API 的兼容性。
現(xiàn)場(chǎng)設(shè)備通過 MQTT 發(fā)布實(shí)時(shí)數(shù)據(jù),中心服務(wù)器通過 REST API 將數(shù)據(jù)同步到其他系統(tǒng),支持跨平臺(tái)數(shù)據(jù)共享。
用戶通過 REST API 發(fā)送配置命令,現(xiàn)場(chǎng)設(shè)備通過 MQTT 接收并應(yīng)用配置,實(shí)現(xiàn)遠(yuǎn)程設(shè)備管理。
在智能家居系統(tǒng)中,溫濕度傳感器作為 MQTT 客戶端,實(shí)時(shí)采集環(huán)境數(shù)據(jù)并通過 MQTT 協(xié)議發(fā)送至 EMQX 消息代理。EMQX 通過規(guī)則引擎將數(shù)據(jù)提取并存儲(chǔ)到 MySQL 數(shù)據(jù)庫(kù)中。
用戶通過 Web 客戶端訪問 REST API 查詢最新的溫濕度數(shù)據(jù),服務(wù)器從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并返回 JSON 格式的響應(yīng),最終在用戶界面上以圖表或數(shù)字形式展示。
克隆項(xiàng)目代碼
使用以下命令將項(xiàng)目代碼克隆到本地:
git clone https://github.com/emqx/mqtt-api-to-mysql
cdmqtt-api-to-mysql
啟動(dòng)服務(wù)
使用 Docker Compose 啟動(dòng) EMQX、MySQL 和 MQTTX:
docker-compose-fdocker-compose.ymlup
數(shù)據(jù)發(fā)布與存儲(chǔ)
MQTTX 模擬設(shè)備客戶端,定期發(fā)布溫濕度數(shù)據(jù)至主題 mqttx/simulate/temp-data/{device_id}
。EMQX 通過規(guī)則引擎將數(shù)據(jù)寫入 MySQL 數(shù)據(jù)庫(kù)。
數(shù)據(jù)查詢
用戶通過 REST API 查詢最新數(shù)據(jù),服務(wù)器從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)并返回。
數(shù)據(jù)可視化
使用 Grafana 監(jiān)控平臺(tái)展示實(shí)時(shí)溫濕度變化趨勢(shì)。
配置 REST API
在 Flask 應(yīng)用中,通過 HTTP 請(qǐng)求調(diào)用 EMQX 的 REST API 發(fā)布消息。例如:
API_URL = 'http://127.0.0.1:18083/api/v5/publish'
USERNAME = 'your_username'
PASSWORD = 'your_password'
運(yùn)行 Flask 應(yīng)用
啟動(dòng) Flask 服務(wù):
pythonrun.py
消息發(fā)布與接收
使用 test_pub.py
腳本通過 HTTP POST 請(qǐng)求向 Flask 應(yīng)用發(fā)送數(shù)據(jù),F(xiàn)lask 應(yīng)用調(diào)用 EMQX 的 REST API 發(fā)布消息。使用 MQTT 客戶端訂閱主題 mqttx/simulate/temp-data/response/
,接收并處理消息。
通過將 MQTT 的高效發(fā)布/訂閱模型與 REST API 的靈活請(qǐng)求/響應(yīng)模式相結(jié)合,開發(fā)人員可以構(gòu)建適用于多種場(chǎng)景的高效解決方案。無(wú)論是智能家居、工業(yè)自動(dòng)化還是遠(yuǎn)程監(jiān)控,MQTT 和 REST API 的協(xié)作都能顯著提升系統(tǒng)性能和用戶體驗(yàn)。
原文鏈接: https://www.emqx.com/en/blog/connecting-mqtt-and-rest-api
Yahoo Finance API – 完整指南
WordPress REST API 內(nèi)容注入漏洞分析
四款A(yù)I大模型API價(jià)格對(duì)比:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
四款A(yù)I大模型API基礎(chǔ)參數(shù)、核心性能的區(qū)別:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
2025年多模態(tài)大模型API基礎(chǔ)參數(shù)、核心性能:Deepseek、ChatGPT、文心一言
2025年最新推理大模型API價(jià)格對(duì)比:通義千問Max vs 豆包1.5 Pro vs 混元Lite
大模型新基座,基于FastAPI,利用Python開發(fā)MCP服務(wù)器
DeepSeek+ima:打造高效個(gè)人知識(shí)庫(kù),提升學(xué)習(xí)與工作效率
快速接入騰訊地圖MCP Server
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)