企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
这里我们首先介绍一下,目前市面上绝大部分web框架,一次 request -> response 的生命周期具体经过了哪些节点。 1.路由 当客户端的请求到达服务器之后,后端服务首先需要对请求的路径进行匹配,当客户端请求的路径与后端服务中已存在的路径匹配成功后,进入下一步。 路由就是通过相关算法专门对请求路径精确匹配的模块。 2.中间件 中间件根据需要进行加载,例如: token 中间件,就是负责对需要鉴权的接口进行校验,只有鉴权通过后,才能进入下一步,否则就直接在中间件向客户端响应,不再执行后续逻辑。 中间件本质上仍然是一个回调函数,在函数内部决定逻辑是否继续向后执行。 3.表单参数验证器 负责接口参数校验,你可以把它编写为一个中间件调用,也可以作为请求过程中的一个节点使用,在ginskeleton 中是作为一次请求过程中的节点去使用,主要负责对表单请求的参数进行校验,只有验证通过后,才能进入下一个环节——控制器。 4.控制器 控制器理解为调度器更为合理,它作为业务开始分发的一个中枢节点,在这里开始对业务的处理方式进行分块处理,如果是简单逻辑可以直接调用 model 层中的方法完成,获取返回结果,直接给客户端响应。如果业务复杂,那么调用 service 层中的逻辑,将复杂的业务分步骤处理,根据需要继续调用 model 层共同完成,最后将结果返回给控制器,由控制器汇总处理结果,将最终结果给客户返回。 5.model 层 该层专门负责将业务落地到数据库,curd 代码块的重灾区。 6.service 层 处理复杂业务逻辑的代码块重灾区,不管是原始的请求数据需要复杂处理后落地到数据库,还是数据库查询出原始数据需要二次加工后才能响应,service 层专门负责解决各种疑难杂症。 7.最后贴一张图说明一下整个过程 后续我带大家进入整个请求到响应的全生命周期过程学习,ginskeleton 只是在每个环境做了一些兼容逻辑、处理,使开发业务更加顺畅,后面的学习本质上都是对 gin 的学习,ginskeleton 自身几乎没有新的知识点,没有学习负担. ![](https://img.kancloud.cn/fb/91/fb91ecf9f4216b9b00946c22efffeef5_1059x271.png)