kong处理path参数

问题

之前要在kong上注册一些API,在处理到拥有path参数的接口时有点犯难了,通过官方文档查询kong支持的插件,发现可以使用request-transformer插件配合正则来重写请求路径,从而可以达到处理path参数的需求。

request-transformer

简单看一下官方对于这个插件的介绍:

The Request Transformer plugin for Kong allows simple transformation of requests before they reach the upstream server. These transformations can be simple substitutions or complex ones matching portions of incoming requests using regular expressions, saving those matched strings into variables, and substituting those strings into transformed requests using flexible templates.

简单翻译过来就是该插件可以对请求路径做一些替换,用正则将请求中的部分参数作为字符串存入到某个变量中,随后可以对它进行替换。详细的说明可以查看官方文档,我这里简单说明一下如何用它处理path参数。

使用

在kong上去给api创建一个带有path参数的route:

curl -i -X POST \
  --url http://localhost:8001/services/test-service/routes \
  --data 'hosts[]=127.0.0.1' \
  --data 'paths[]=/getProducts/(?<id>)\S+)/test$'\
  --data 'methods[]=GET'

原始的path应该是/getProducts/{id}/test,在创建route的时候需要将这里的id使用正则匹配,并用变量id接收,并在path的最后面加上$符号,不管path里有多少参数,都在最后加上$符号!!
创建完route之后,就需要给route添加request-transformer插件:

curl -i -X POST \
  --url http://localhost:8001/routes/{你刚刚创建出来的route}/plugins \
  --data "name=request-transformer"
  --data "config.replace.uri=/getProducts/$(uri_captures[1])/test"

如果不止一个path参数,那么就在对应的地方加上$(uri_captures[2])$(uri_captures[3])、、、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Kong上设置HTTPS,您需要执行以下步骤: 1. 获取SSL证书:您可以通过购买SSL证书或使用免费的证书颁发机构(如Let's Encrypt)来获取SSL证书。确保您获得了证书的公钥和私钥。 2. 将SSL证书添加到Kong:将证书公钥和私钥添加到Kong配置中。可以使用Kong的Admin API或Kong的配置文件来完成此操作。如果使用Admin API,您需要使用`kong.conf`文件中指定的Admin API的URL进行API请求。如果使用配置文件,您需要编辑`kong.conf`文件并添加以下配置: ``` kong.conf: ... admin_listen = 127.0.0.1:8001, 127.0.0.1:8444 ssl admin_ssl_cert = /path/to/ssl_cert.pem admin_ssl_cert_key = /path/to/ssl_cert_key.pem ... ``` 请确保将`/path/to/ssl_cert.pem`和`/path/to/ssl_cert_key.pem`替换为您实际的证书路径。 3. 配置Kong代理:要启用HTTPS代理,您需要在Kong的Nginx配置中添加一些配置。Kong的Nginx配置文件通常位于`/etc/kong/nginx-kong.conf`。您需要在该文件中找到或创建一个名为`server`的块,并在其中添加以下配置: ``` location / { proxy_pass http://upstream; ... proxy_ssl_certificate /path/to/ssl_cert.pem; proxy_ssl_certificate_key /path/to/ssl_cert_key.pem; } ``` 确保将`/path/to/ssl_cert.pem`和`/path/to/ssl_cert_key.pem`替换为您实际的证书路径。 4. 重启Kong:完成上述步骤后,您需要重启Kong以使配置生效。您可以使用以下命令重启Kong: ``` $ kong restart ``` 完成上述步骤后,Kong应该已经配置为使用HTTPS。您可以使用HTTPS访问Kong的Admin API和代理端点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值