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等,渲染页面
