首页 综合布线 路由和接口-路由接口是什么意思

路由和接口-路由接口是什么意思

以下就是我们整理的路由和接口,一起来看看,希望能帮助到您。

路由和接口

前言无论是web server框架还是rpc框架,接口作为服务的外部入口,背后可能包含复杂的后端流程,不仅限于业务逻辑处理和数据处理操作、基础能力调用等。因此,接口和“后端流程”之间必须存在映射交付关系。

路由机制
以下都是web框架的例子。rpc框架比web更直接,就是指定方法调用。

路由和接口-路由接口是什么意思

本质上,http api请求和rpc调用通过网络完成双方的交互。我们不局限于行业内平台和微服务的应用。事实上,我们可以概括和理解,所有的“互动”都有以下要素:

  • 草案
  • 双方同意的通信规则。
    统一的沟通规则可以保证沟通的准确性,避免歧义;
    根据交互场景和限制选择合适的协议,如app中前端交互常用的http/https,物联网场景可能使用MQTT/CoAP,可以提高通信效率,降低通信成本;

  • 通信内容
  • 通信的任务是传递信息,信息无非是数据。结构化数据和非结构化数据都有相应的表示,并辅以众多的协议,可以有效地组织起来进行传输。比如最常见的http请求get参数,json格式参数,rpc protobuf等。

  • 沟通目标
  • 数据交付到哪里?
    这也是接口概念的关键。在计算机网络中,可以定位网络中的主机和进程。您如何交付网络请求进行处理?那么接口就是网络请求的入口,常见框架中的路由匹配规则都差不多。

    注册RoutesRouting注册实现接口和控制器的映射,然后完成后续的处理流程
    。同时可以注册中间件,构建请求处理的执行链接
    。路由注册的方式有很多种,原则上可以总结如下:

    基于配置(静态)

  • 解析配置文件
  • //比如PHP框架用Arrayclass ActionControllerConfig扩展actionbase config {public static controller config = gt;array(array(' action _ id ' = gt;' action_name' // action的唯一标识,将用作路由器映射键' pattern ' = >;'/^/rest/2.0/module/operation/?Params'//框架规则不同。这个例子是正则表达式+请求参数组合匹配' path ' = >;控制器类路径'' controller _ class ' = gt;controller1.class.php'),...)}

  • 手动注册路线
  • //代码源https://github.com/go-chi/chir . route("/parent/pattern ",Func(r router){r . use(middleware 2 . setcontextuser)//设置中间件 r.mount ("/xxx1 ",new xxx1 router())r . Mount("/xxx2 ",new xxx2 router(boot))r . Mount("/xxx3 ",new xxx3 router(boot))r . Mount("/xxx4 ",NewXxx4Router(boot))

    基于反射、注释、动态代理(动态)

  • 再理解一下“反射”:
    Golang/Java之类的编译语言,具体的实现在编译之后就已经存在了,但是程序是怎么知道的呢?使用反射来获取特定的类型和值
  • 工作流程:
    创建新的route实例
    在编码阶段配置router的处理程序
    服务启动时初始化注册,反射得到router.type Router。值(各种方式,但不限于此)
    梳理一下“路由器”所持有的“路由表”,路由表的本质是URL <— gt;处理函数地址的映射表。
  • 常见框架路由注册案例:spring MVC Annotation Go Web framework
  • 路由规则的精确匹配

    模式匹配

    参数辅助匹配


    维护最终路线注册的输出结果主要有以下两种形式(求知情伙伴补充~)

    路由列表

    路由树

    公共最左边前缀匹配

    综上所述,介绍路由和接口-路由接口是什么意思就到这里结束了,注意,选择正确的方式,才能解决根本问题,希望我们的介绍能帮助到您,更多请关注本网站。

    热门文章