🗒️apisix源码分析-admin api 的注册和路由(4)
2023-8-19
| 2023-8-29
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password

admin api

admin 注册

在 admin/init.lua 中,通过 init_worker 初始化 admin route ,并将本地插件配置同步到etcd中,并注册了插件重启事件,当触发"/apisix/admin/plugins/reload"触发同步本地插件列表到 etcd

admin 路由

router = route.new(uri_route) 是一个 redixtree 对象。用来做 admin api 的路由匹配 ,可以通过uri_route 参数看到对不同接口的实现。
run 作为 admin api 的主要实现,通过 uri 和m来执行 resource 中的调用。
有如下两种类型的 api ,分别对应到系统组件,比如 routes ,servers,ssl 等。
/apisix/admin/schema/<seg_res>/<seg_id>
这里的 seg_res 是对应的组件名,seg_id 是组件中对应配置的id
和插件路径
/apisix/admin/schema/plugins/<seg_res>/<seg_id>
这里的seg_res 对应的是插件名,seg_id 对应的是插件配置的id
通过 seg_res 获取对应的执行对象
通过 method 来执行resource 对应的请求函数
 
resources 的定义可以看出,admin 的路由 用来实现 api 的操作, 涉及到 routes services upstreams consumers schema ssl plugins proto global_rules stream_routes plugin_metadata plugin_configs
api 的作用就是用来对 etcd 进行 crud 的操作。 对每个组件的 api ,实现大概如下:
在前面的 resource[method] 通过 method= put | get | post | delete 就可以执行到对应的函数.
 
 
apisix
  • apisix
  • apisix源码分析-处理用户请求(5)apisix源码分析-初始化过程(3)
    目录