当前位置: 首页 > news >正文

web后端----接口文档

这里写目录标题

  • 前后端
    • 接口文档
      • 简介
      • 前后端视角
        • 对于前端
        • 对于后端
          • 代码
          • 注册路由
          • 路由处理函数
      • 关于http
        • GET/POST
        • 底层网络
        • 关于前端的获取

前后端

接口文档

简介

接口文档,是对一个接口的功能、参数、返回值、调用方式等进行详细描述的文档

例如:

前后端视角

对于前端



前端相当于接口的调用者
后端会注册处理函数在文档中规定的URL地址,当后端解析到对应的URL之后,就会先前的注册,根据URL路由到对应的业务处理函数
前端会去向接口文档中提供的URL发送请求,向指定的后端服务发送数据,拿到返回值(通常是JOSN类型的数据)

发送的数据包括:
GET:完整的URL(含请求方法、参数)
POST:大部分数据在请求体,同时也会讲URL发送到后端
发送URL一方面可以携带数据,一方面可以检查确认没有发错人

fetch(‘https://example.com/api/getUserInfo?userId=1’) 这部分向指定的接口 URL 发送了一个 GET 请求,并传递了参数 userId=1 。
然后通过 .then(response => response.json()) ,将服务器返回的响应转换为 JSON 格式的数据。如果转换成功,就会进入下一个 .then 回调,通过 data => console.log(data) 将数据打印到控制台。
如果在这个过程中任何一个环节出现错误,比如网络问题或者服务器返回了错误状态码,就会被 .catch 捕获,然后通过 console.error 打印出错误信息。

对于后端
代码


在上述代码中,handleGetRequest 函数用于处理 GET 请求,分析请求中的参数,并根据参数情况返回相应的响应。main 函数中创建 http_listener 对象来监听指定端口和路径的请求,并关联处理函数。

步骤解释:
1、使用http_listener对象,来进行一些操作,包括:
指定监听URL、注册路由(注册当URL收到请求,且请求为GET/POST时,进入到某个“路由处理函数”进行业务处理)

在路由处理函数中:
2、参数在URL中,所以要对URL进行分割,拿到参数

3、拼接好JOSN数据对象之后,直接使用relay方法发送给前端

4、这个是后端在监听对应的URL路径上收到的前端请求

注册路由

上述的listener.support()就是注册路由
注册路由主要有以下几个重要作用:
组织和管理请求:通过注册路由,可以将不同的请求 URL 和对应的处理逻辑清晰地关联起来,使后端服务能够有条不紊地处理各种类型的请求。
提高代码可读性和可维护性:将请求与处理函数明确对应,使得其他开发者在阅读和理解代码时更容易知道每个请求的处理流程。
分离关注点:让开发者能够专注于每个路由对应的具体业务逻辑,而不必担心请求的分发和匹配。
方便扩展和修改:当需要添加新的功能或修改现有功能时,只需在注册路由的部分进行相应的调整,而不会影响到其他不相关的部分。
增强安全性:可以对不同的路由进行访问权限的控制和设置,保障系统的安全性。

其他例子:

1、在上述代码中,通过 listener.support 方法注册了两个路由 /home 和 /about,并分别关联了 handleHomeRequest 和 handleAboutRequest 两个处理函数。

2、在上述代码中,注册的路由及其对应的 URL 分别是:
handleHomeRequest 对应的 URL 是 http://localhost:3000/home
handleAboutRequest 对应的 URL 是 http://localhost:3000/about

3、在实际开发中,只要前后端对 URL 的理解和使用保持一致即可,不一定要求资源实际存在于 URL 所指示的物理路径下。
URL 更多的是一种逻辑上的标识符和约定,前后端通过遵循相同的规则来进行通信和交互。
然而,从良好的架构和设计角度来说,将相关的处理逻辑和资源按照有意义的方式组织在与 URL 结构相对应的代码结构中,有助于提高代码的可维护性和可读性。
但关键还是前后端的一致性,只要双方都明确并遵循相同的 URL 规则,系统就能正常运行。

路由处理函数

上述的handleGetRequest 就是路由处理函数
路由处理函数呢,简单来说就是当特定的路由(也就是 URL 路径)被访问,并且使用了特定的 HTTP 方法(比如 GET、POST 等)时,会被调用执行的函数。
之所以叫 “路由”,是因为它就像网络中的路由器一样。路由器根据数据包的目标地址来决定数据包的流向,而在 Web 开发中,路由根据客户端请求的 URL 和方法,决定将请求引导到对应的处理函数去进行处理,从而实现不同的功能。
打个比方,您可以把整个 Web 应用想象成一个大的办公楼,每个房间就是一个功能模块。而路由就像是办公楼里的指示牌,告诉来访者(客户端的请求)根据不同的目的地(URL 路径)找到对应的房间(处理函数)去处理相关事务。

关于http

GET/POST


GET是查询
POST是提交,用于实质作用于后端或者数据库

底层网络

1、http的传输层是TCP:

浏览器会首先向后端建立TCP连接,之后再访问后续的URL请求

2、前后端使用http的话,主要是使用URL进行网络数据交互:

URL负责通信方的指定(IP+port),同时还指定请求的方法(GET/POST),同时还携带GET方法的参数
(POST的数据在请求体里面)
不需要实现创建socket进行连接

关于前端的获取

当我们输入一个网址后,浏览器会使用DNS解析域名获取后端IP

之后建立TCP连接

之后,向后端发送URL,后端收到后,向前端发挥实质的html等页面文件

浏览器解析这些html css等,渲染页面

http://www.cnnetsun.cn/news/1384008.html

相关文章:

  • DLSS Swapper:3倍帧率提升的深度学习超级采样版本管理工具,解放玩家双手的显卡性能优化神器
  • AI 产品岗转技术岗:零基础学习路径与面试避坑指南
  • Cesium生态盘点:超图、火星3D等15个二次开发框架对比
  • SpringBoot3与Kafka深度整合:高效消息生产与消费实践
  • 霜儿-汉服-造相Z-Turbo助力传统文化IP数字化:生成系列化角色与场景
  • kohya_ss训练成本计算:GPU小时费用与优化策略终极指南
  • SuperMap iServer漏洞修复实战:从Tomcat升级到第三方库替换的完整指南
  • 到底听谁的?这里有款精准“BI灭火器“
  • Windows下快速搭建Kettle开发环境:基于9.4.0.0版本的保姆级教程
  • 视觉SLAM翻车现场自救手册:用深度强化学习解决特征点丢失的5个技巧
  • Plasmo框架扩展性能预算:控制资源使用的最佳实践
  • Qwen3-0.6B-FP8在微信小程序开发中的集成指南
  • GPT Server 配置实战:从零到一构建企业级多模态AI服务集群
  • ROS2 Humble 零拷贝性能调优实战
  • 如何优化网盘下载体验:LinkSwift直链助手完整指南
  • OBS多平台直播革命:obs-multi-rtmp插件全攻略
  • 智能任务编排:突破型游戏自动化工具的全流程效能重构方案
  • 如何解决ESP32-S3 ADC DMA中断卡死问题:终极调试指南
  • 终极Cobalt视频下载工具:创作者必备的素材管理与备份完整指南
  • 终极Cobalt数字极简主义指南:如何用Cobalt打造精简高效的数字生活
  • Unity游戏开发:DoTween回调函数全解析(附实战代码示例)
  • PM2 实战手册:Node.js 应用进程管理与性能优化全解析
  • Quake III Arena材质动画终极指南:序列帧与Procedural动画实现详解
  • PureLayout约束验证终极指南:静态代码分析与自动化测试
  • 如何快速掌握正则表达式生成?grex工具的终极指南
  • ChatGPT Plus会员额度翻倍后,如何最大化利用你的100次/周o3模型?
  • 终极指南:AWS-Shell跨平台使用技巧——Windows与macOS差异全解析
  • 如何使用Instruments工具检测KVOController内存泄漏:完整指南
  • DLSS Swapper:终极免费工具,让每款游戏都获得最佳DLSS版本支持
  • 春联生成模型中文版在C++项目中的集成方法