前后端分離項目中的接口設計與調用流程——以高仙機器人集成為例

一、背景介紹

在前后端分離項目開發中,前端頁面需要頻繁調用后端接口獲取數據。在高仙機器人對接項目中,我們采用了若依(RuoYi)框架,前端通過統一的 API 封裝與后端進行數據交互,而后端再對接高仙官方的 OPENAPI 實現數據獲取。這里梳理一下接口調用鏈路和關鍵點,作為開發經驗記錄。


二、前后端接口調用的鏈路

1. 前端請求(以獲取機器人地圖列表為例)

// src/api/gsrobot.js
export function getMapList(robotSn) {return request({url: '/external/gs/map/robotMap/list',method: 'post',data: { robotSn }})
}
  • 前端只需要調用 /external/gs/map/robotMap/list 這個約定好的 URL,無需關心數據來源細節。


2. 后端實現

  • 后端監聽 /external/gs/map/robotMap/list,收到請求后,作為中間層調用高仙的 OPENAPI,獲取機器人地圖數據,并將數據轉為前端所需格式后返回。

  • 后端的這個 URL 是對外暴露的“數據入口”,前后端通過它達成約定。


3. 與高仙 OPENAPI 對接

  • 后端通過 HTTP 客戶端調用高仙平臺的 OPENAPI,完成實際數據獲取。

  • 這一層對前端透明,前端無須關心高仙 API 的調用、鑒權等問題。


三、接口 URL 是否會混亂?

  • 前端和后端使用相同的 URL(如 /external/gs/map/robotMap/list并不會混亂

  • 前端是請求方,后端是服務方,職責清晰。

  • 前端只需要知道“向哪個地址要數據”,后端負責實現這個地址的處理邏輯。

  • 高仙OPENAPI只是后端訪問的外部服務,對前端不可見。


四、為什么要通過后端中轉?

  1. 安全性:避免將第三方 API 的密鑰和簽名暴露給前端。

  2. 靈活性:后端可統一處理異常、格式轉換、權限控制、緩存等業務邏輯。

  3. 解耦合:前端無需直接適配第三方 API,只需適配自家后端接口,降低維護難度。


五、整體流程圖

前端|| 1. 請求 /external/gs/map/robotMap/listv
后端|| 2. 調用高仙OPENAPI獲取數據v
高仙OPENAPI|| 3. 返回數據給后端v
后端|| 4. 返回整理后的數據給前端v
前端

六、總結

前后端分離項目中,建議采用統一的接口約定、分層設計,前端調用自家后端接口,后端根據需要再與第三方平臺(如高仙)對接。這種方式有效提升了安全性、可維護性和系統靈活性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89261.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89261.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89261.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【第五節】部署http接口到ubuntu server上的docker內

描述清楚需求,讓deepseek幫我們寫一個demo,文件結構如下 FLASK_API_001 ├── app.py └── Dockerfile └── requirements.txtapp.pyfrom flask import Flask, jsonify, requestapp Flask(__name__)# 根路由 app.route(/) def home():return "…

在 IntelliJ IDEA 中添加框架支持的解決方案(沒有出現Add Framework Support)

在 IntelliJ IDEA 中添加框架支持的解決方案 問題背景 版本變化:在 IntelliJ IDEA 2023.2 及更高版本中,項目右鍵菜單中的 “Add Framework Support” 選項已被移除。 常見需求:為 Java 項目添加框架支持(如 Maven、Spring 等&am…

北京-4年功能測試2年空窗-報培訓班學測開-第五十天

咦,昨天路上寫一半就到家了,后來想早點睡就忘了還要發了,現在趕緊補上昨天是最后一節課(我們將一整天的課稱為一節),這就結課了昨天講了簡歷編寫,面試要準備的內容,還有redis和docker也沒有什么…

華為鴻蒙HarmonyOpenEye項目:開眼App的鴻蒙實現之旅

華為鴻蒙HarmonyOpenEye項目:開眼App的鴻蒙實現之旅 引言 在當今移動應用開發的浪潮中,鴻蒙系統憑借其獨特的分布式能力和高效的開發框架,吸引了眾多開發者的目光。今天要給大家介紹的是一個基于華為鴻蒙系統開發的開眼App項目——HarmonyO…

代碼隨想錄day36dp4

文章目錄1049.最后一塊石頭的重量II494.目標和474.一和零1049.最后一塊石頭的重量II 題目鏈接 文章講解 class Solution { public:int lastStoneWeightII(vector<int>& stones) {// 1. 確定 DP 數組及下標的含義&#xff1a;// dp[i][j] 表示考慮前 i 塊石頭&#…

Python 爬蟲實戰指南:按關鍵字搜索商品

在電商領域&#xff0c;按關鍵字搜索商品并獲取其詳情信息是一項常見的需求。無論是進行市場調研、競品分析還是用戶體驗優化&#xff0c;能夠快速準確地獲取商品信息都至關重要。1688 作為國內領先的 B2B 電商平臺&#xff0c;提供了豐富的商品資源。本文將詳細介紹如何使用 P…

【源力覺醒 創作者計劃】百度AI的開放新篇章:文心4.5本地化部署指南與未來生態戰略展望

百度AI的開放新篇章&#xff1a;文心4.5本地化部署指南與未來生態戰略展望 一起來玩轉文心大模型吧&#x1f449;文心大模型免費下載地址&#xff1a;https://ai.gitcode.com/theme/1939325484087291906 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30…

測試工作中的質量門禁管理

一、前言 測試階段的質量門禁設計要考慮幾個維度,首先是研發流程的階段劃分,每個階段都要有明確的準入準出標準;其次要考慮不同測試類型的特點,比如功能測試和性能測試的驗收標準肯定不同;最后還要平衡質量要求和項目進度。 在單元測試階段,可以設置通過率和覆蓋率的閾值…

線上分享:解碼eVTOL安全基因,構建安全飛行生態

隨著城市空中交通&#xff08;UAM&#xff09;快速發展&#xff0c;電動垂直起降飛行器&#xff08;eVTOL&#xff09;面臨嚴格的安全與可靠性要求&#xff0c;需滿足全球適航標準及全生命周期分析。安全與可靠的飛行系統成為行業關注的焦點。在此背景下&#xff0c;本期線上分…

C回調函數基礎用法

&#x1f4cc; 定義&#xff1a;回調函數是通過函數指針傳遞給另一個函數的函數&#xff0c;這個被傳進去的函數將在某個時刻被“回調”調用。換句話說&#xff1a;你定義一個函數 A把函數 A 的地址&#xff08;即函數指針&#xff09;作為參數傳給函數 B函數 B 在合適的時機調…

手撕設計模式之消息推送系統——橋接模式

手撕設計模式之消息推送系統——橋接模式 1.業務需求 ? 大家好&#xff0c;我是菠菜啊&#xff0c;好久不見&#xff0c;今天給大家帶來的是——橋接模式。老規矩&#xff0c;在介紹這期內容前&#xff0c;我們先來看看這樣的需求&#xff1a;我們現在要做一個消息推送系統&…

Java 大廠面試題 -- JVM 垃圾回收機制大揭秘:從原理到實戰的全維度優化

最近佳作推薦&#xff1a; Java 大廠面試題 – JVM 面試題全解析&#xff1a;橫掃大廠面試&#xff08;New&#xff09; Java 大廠面試題 – 從菜鳥到大神&#xff1a;JVM 實戰技巧讓你收獲滿滿&#xff08;New&#xff09; Java 大廠面試題 – JVM 與云原生的完美融合&#xf…

圖機器學習(9)——圖正則化算法

圖機器學習&#xff08;9&#xff09;——圖正則化算法1. 圖正則化方法2. 流形正則化與半監督嵌入3. 神經圖學習4. Planetoid1. 圖正則化方法 淺層嵌入方法已經證明&#xff0c;通過編碼數據點間的拓撲關系可以構建更魯棒的分類器來處理半監督任務。本質上&#xff0c;網絡信息…

視頻動態范圍技術演進:從SDR到HDR的影像革命

一、動態范圍技術基礎認知 1.1 人眼視覺特性與動態范圍 人眼的動態感知范圍可達106:1&#xff08;0.0001-105 cd/m&#xff09;&#xff0c;遠超傳統顯示設備能力。視網膜通過虹膜調節&#xff08;物理孔徑&#xff09;與光化學反應&#xff08;光敏蛋白分解&#xff09;實現16…

基于LAMP環境的校園論壇項目

1.配置本地倉庫a.修改主機名為自己姓名全拼[rootserver ~]# hostnamectl set-hostname jun [rootserver ~]# bash [rootjun ~]# 運行結果圖如下圖所示&#xff1a;b.光盤掛載到/mnt目錄下[rootjun yum.repos.d]# mount /dev/sr0 /mnt mount: /mnt: WARNING: source write-prote…

在物聯網系統中時序數據庫和關系型數據庫如何使用?

在物聯網系統中&#xff0c;時序數據庫&#xff08;TSDB&#xff09;和關系型數據庫&#xff08;RDBMS&#xff09;的存儲順序設計需要根據數據特性、業務需求和系統架構綜合考慮。以下是典型的設計方案和邏輯順序&#xff1a;1. 常見存儲順序方案 方案一&#xff1a;先寫時序數…

django安裝、跨域、緩存、令牌、路由、中間件等配置

注意&#xff1a;如果是使用 PyCharm 編程工具就不用創建虛擬化&#xff0c;直接打開 PyCharm 選擇新建的目錄直接調過下面的步驟11. 項目初始化如果不是用 PyCharm 編輯器就需要手動創建虛擬環境在項目目錄cmd&#xff0c;自定義名稱的虛擬環境# 激活虛擬環境 python -m venv …

時間的弧線,邏輯的航道——標準單元延遲(cell delay)的根與源

時序弧 在這篇文章中&#xff0c;我們將討論影響標準單元延遲的因素。在開始討論之前&#xff0c;我們需要先了解一下什么是時序弧 (Timing Arcs)&#xff1a; 時序弧 (Timing Arcs)&#xff1a; 時序弧代表了信號從一個輸入流向一個輸出的方向。它存在于組合邏輯和時序邏輯中&…

《透視定軸:CSS 3D魔方中視覺層級的秩序法則》

當CSS的代碼編織出一個能自由旋轉的3D魔方&#xff0c;六個色彩各異的面在空間中翻轉、重疊時&#xff0c;最考驗技術的并非旋轉動畫的流暢度&#xff0c;而是每個面在任意角度下都能保持符合現實邏輯的前后關系。為何有時某個面會突兀地“穿透”另一個面&#xff1f;為何旋轉到…

RTL編程中常用的幾種語言對比

以下是RTL&#xff08;寄存器傳輸級&#xff09;編程中常用的幾種硬件描述語言&#xff08;HDL&#xff09;及其核心差異的對比分析。RTL編程主要用于數字電路設計&#xff0c;通過描述寄存器間的數據傳輸和邏輯操作實現硬件功能。以下內容綜合了行業主流語言的技術特性與應用場…