type
status
date
slug
summary
tags
category
icon
password
admin api
admin 注册
在 admin/init.lua 中,通过
init_worker
初始化 admin route ,并将本地插件配置同步到etcd中,并注册了插件重启事件,当触发"/apisix/admin/plugins/reload"
触发同步本地插件列表到 etcdadmin 路由
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
就可以执行到对应的函数.