Kong 快速入门

一、 使用管理 API 添加服务

1.注册services

 curl -i -X POST \
  --url http://localhost:8001/services/ \
  --data 'name=example-service' \
  --data 'url=http://mockbin.org'

查看service注册情况

curl http://localhost:8001/services | jq

在这里插入图片描述
删除指定service:

curl -i -X DELETE http://localhost:8001/services/bhc-mainnet-api

2. 为服务添加路由

官方接口文档
#执行命令(name用于标识routes名称,url地址中需要填写services名称,host为允许用户访问的域名,其余用法参考接口文档)

curl -i -X POST \
--url http://localhost:8001/services/example-service/routes \
--data 'hosts[]=example.com' 

查询routes注册情况:

curl http://localhost:8001/routes  | jq

删除指定route:

curl -i -X DELETE http://localhost:8001/routes/example-service

3. 添加插件

官方接口文档
#执行命令(name用于指定使用的插件名称,url地址中需要填写services名称,请求体中config.xxxx开头的为插件参数,其余用法参考接口文档)

curl -i -X POST \
  --url http://localhost:8001/services/example-service/plugins/ \
  --data 'name=key-auth'

查询plugin注册情况:

curl http://localhost:8001/plugins | jq

删除指定plugin:

curl -i -X DELETE http://localhost:8001/plugins/example-service

二、插件开发

1.开发规范

官方参考文档
插件约束
①位置约束
插件的位置必须在kong/plugins目录下,插件名为该目录下的文件名。
如存在目录:kong/plugins/hello-world/…,则当前插件名为hello-world。每个插件目录之间相互独立
②模块约束
在每个插件目录下,kong默认提供了不同模块文件,以扩展不同的功能。
所有的Kong插件都位于kong/plugins目录下, 如在plugins目录我们创建一个名为hello-world插件, 至少需要包含2个文件,如下所示:

plugins
├── hello-world
│ ├── handler.lua
│ └── schema.lua
└── other-plugin

handler.lua:核心接口 ,可拓展每个请求的生命周期
schema.lua:配置参数定义,定义校验规则以便用户只能输入有效的配置值

完全版目录结构
hello-world
├── api.lua
├── daos.lua
├── handler.lua
├── migrations
│ ├── cassandra.lua
│ └── postgres.lua
└── schema.lua

api.lua:非必须,扩展Admin API,在需要对外暴露接口时候
daos.lua:非必须,数据访问层,对插件自定义实体的抽象,并存储在数据存储区中
migrations/*.lua:非必须, 数据库迁移(例如,创建表),仅当插件应用daos.lua进行存储时才需要进行迁移

2.手动插件开发

2.1参考链接

参考链接:
https://www.lijiaocn.com/%E9%A1%B9%E7%9B%AE/2018/11/09/kong-features-07-write-plugins.html
https://zhuanlan.zhihu.com/p/52402537
https://blog.csdn.net/whos2016/article/details/103034883

2.2.对插件进行手动化的部署

a.将编写好的插件存储在自定义的位置 注意:所有的Kong插件都位于kong/plugins目录下
b.在kong.conf中指定lua扫描的路径
如果你配置了多个插件,这些插件又放置在多个路径上:

lua_package_path = /<path-to-plugin-location>/kong/plugins;/<path-to-plugin-location2>/kong/plugins/?.lua;;

c.在kong.conf中加载插件
如果你不需要kong自带的插件,可以取消掉 bundled

plugins = bundled,<plugin-name>

在这里插入图片描述
注意:在编写yaml文件时,要记得挂载自定义插件
在这里插入图片描述
最后效果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值