web前-JAVA后端 数据API接口交互协议

简介: 目前热门的主流web前端和Java后端数据技术架构:设备端和后台服务端,两者之间主要有两类的数据流和一类的控制流进行数据的交互。

前言

目前热门的主流web前端和Java后端数据技术架构:设备端和后台服务端,两者之间主要有两类的数据流和一类的控制流进行数据的交互。其图示可以根据下图的流程图表示:

2345_image_file_copy_180.jpg

这里的WebSocket就不进行详述,可以参考本人的另一篇关于WebSocket的介绍和使用的博客:VUE+websocket编写实现PC web端控制摄像头_丘比特惩罚陆的博客-CSDN博客

  上图的解析是,数据流1是某一功能的数据进行流动上报等操作,这一类饿交互关系采用的是http协议中的post请求,经过这一个请求报文可以将数据发送到平台上。数据流2是实时流的媒体数据,是由设备端将数据进行推流,推流到的地址可以是自己买的、拥有公网IP的媒体流转发服务器;第三个我们的控制流WebSocket意思是命令交互一类的数据,这一类的控制流数据采用的法式WebSocket长连接进行双向的交互模式,这个操作是由设备端发起进行连接的。

2345_image_file_copy_182.jpg

 WebSocket运行流程图

数据流1由设备端向平台web端主动发起数据请求,web平台在进行数据响应数据流1的数据后将状态上报接口时告知数据流2是否已经进行了数据连接,如果需要进行数据请求的话,那设备就会发起WebSocket数据长连接请求,进行如上的WebSocket运行流程过程。如果需要的话,那么设备端就可以发起请求,创建一个WebSocket的控制流通道,所以作为命令交互相互使用。数据流2可以由平台通过控制流通道线设备发送命令创建。

数据格式

http数据格式要求

http请求报文中通常包含请求行(requestline)、请求头(header)、空行、和请求数据(请求实体)这是个部分组成的,响应报文包含状态行、消息报头、空行、响应正文四样。

2345_image_file_copy_183.jpg

http协议对http交互中的请求行(接口地址)和请求数据/响应正文进行定义,约定请求数据和响应正文需要严格的json数据格式。

请求数据格式:

{
"id":"你写的东西",
"sessionId":"你要写的授权token",
"command":"你要请求命令(需要执行的动作)",
"params":{具体接口参数定义}
}

说明:

以上http所涉及到的所有请求接口都要必须遵循的格式定义,即所有http接口传输的请求数据都必须包含以上定义内容;

以上定义的请求数据统称“参数头”,具体赋值根据具体接口的要求进行组织;

“参数头”内params的值统称“参数体”,内容根据不同的接口具体定义不同,如“参数头”内需传输二进制内容,则需要先转为base64。

调用要求

1、http头必须设置Content-Type并取值application/json;

2、http必须post形式提交;

3、接口请求/响应实体放入http-body提交;

4、接口请求/响应实体使用标准json数据格式;

5、接口请求/响应实体必须按约定格式组织;

6、接口请求实体中参数体params赋值必须按接口约定赋值;

7、接口请求/响应实体统一使用UTF-8字符集。

响应代码定义表

响应代码定义表

image.png

image.png

WebSocket数据格式

Websocket是为了实现设备或浏览器(客户端)和平台(服务器)之间的高效双向全双工通信,连接建立后主要用于服务器主动向客户端推送命令进行实时远程控制(包括升级)。

WebSocket协议中最小的通信单位是帧,一帧中包含标识、操作代码、掩码、数据、数据长度和数据组成,数据部分可以由操作代码表明是文本还是二进制。

2345_image_file_copy_184.jpg

二进制帧请求格式

2345_image_file_copy_185.jpg

2345_image_file_copy_186.jpg

说明:

  1. 每一次数据发送,都采用固定12字节的头信息+消息体+数据体进行发送;
  2. 接收亦同,先接收12个字节头信息,根据头信息获取接下来的消息体和数据体;
  3. 其中消息体一般为JSON,协议格式同样的文本数据帧格式,数据体一般为二进制数据(图或文件);
  4. 发送和接收异步进行。

数据流http接口定义

接口参数(这里以控制流WebSocket的接口为例)

请求头

image.png

实例

{
"id":"0803502895724DBD9C49CA58C7D7DCC2",
"command":"GetParam",
"params":{}
}


相关文章
|
9月前
|
JSON API 网络安全
通用邮箱邮件获取API教程:支持IMAP/POP3协议
本文介绍如何通过接口盒子的免费API获取邮箱邮件,支持IMAP/POP3协议,适用于QQ邮箱、网易邮箱等主流服务。内容包括接口基本信息、请求参数、返回参数、调用示例及注意事项,帮助开发者快速实现邮件读取功能。
1188 7
|
人工智能 JSON API
0代码将存量 API 适配 MCP 协议
本文主要讲述通过 Nacos+Higress 的方案实现0代码改造将 Agent 连接到存量应用,能够显著降低存量应用的改造成本。
1450 44
0代码将存量 API 适配 MCP 协议
|
网络协议 API 开发者
深入解密 :Postman、Apipost和Apifox API 协议与工具选择
作为全栈开发者,每天与API打交道是常态。本文总结了多年经验,深入解析常见API协议(HTTP(s)、SSE、gRPC、WebSocket、Socket.IO)及其适用场景,并对比三款主流调试工具(Postman、Apipost、ApiFox)。从基础特性到高级应用,帮助开发者根据需求选择最优方案,提升效率,让开发更顺畅!
1017 21
|
12月前
|
人工智能 搜索推荐 IDE
突破网页数据集获取难题:Web Unlocker API 助力 AI 训练与微调数据集全方位解决方案
本文介绍了Web Unlocker API、Web-Scraper和SERP API三大工具,助力解决AI训练与微调数据集获取难题。Web Unlocker API通过智能代理和CAPTCHA绕过技术,高效解锁高防护网站数据;Web-Scraper支持动态内容加载,精准抓取复杂网页信息;SERP API专注搜索引擎结果页数据抓取,适用于SEO分析与市场研究。这些工具大幅降低数据获取成本,提供合规保障,特别适合中小企业使用。粉丝专属体验入口提供2刀额度,助您轻松上手!
692 2
|
人工智能 运维 安全
网络安全公司推荐:F5荣膺IDC全球Web应用与API防护领导者
网络安全公司推荐:F5荣膺IDC全球Web应用与API防护领导者
351 4
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
监控 前端开发 Java
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
695 9
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。