Administrator
发布于 2022-11-25 / 9 阅读
0
0

2、Services & Routes

  • 创建services

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

请求成功后会得到201相响应,并返回一串Json数据,上面记载一些当前配置信息;

  • 查看服务配置

当创建服务时,Kong Gateway 会为其分配一个唯一id,如上面的响应所示。该id字段或创建服务时提供的名称可用于在后续请求中标识该服务。这是服务 URL,采用/services/{service name or id}.

curl -X GET http://localhost:8001/services/example_service

另外,当你使用去掉url中{service name or id}时,可以看到services列表;

某种意义上来说,此时Kong的8001就是一个后台服务;

curl -X GET http://localhost:8001/services
  • 更新services

可以通过向服务 URL 发送PATCH 请求来动态更新现有服务配置。更改某service重试次数,请发送此PATCH请求:

curl --request PATCH \
  --url localhost:8001/services/example_service \
  --data retries=6


  • 创建Routes

Routes的配置决定了Kong如何进行代理。您可以通过向服务URL发送POST请求来创建与特定服务关联的路由。 在/mock路径上配置一个新路由,将流量导向前面创建的example_service服务:

curl -i -X POST http://localhost:8001/services/example_service/routes \
  --data 'paths[]=/mock' \
  --data name=example_route
成功之后code:201

  • 查看路由配置

与服务一样,当您创建路由时,Kong Gateway 会为其分配一个唯一id的,如上面的响应所示。该id字段,或创建路由时提供的名称,可用于在后续请求中标识该路由。路由 URL 可以采用以下任一形式:

/services/{service name or id}/routes/{route name or id}

/routes/{route name or id}

example_route要查看路由的当前状态,GET请向路由 URL 发出请求:

curl -X GET http://localhost:8001/services/example_service/routes/example_route

同样也能直接拿到Routes列表

curl http://localhost:8001/routes
  • 更新Routes

与服务一样,路由可以通过向PATCH 路由 URL 发送请求来动态更新。

标签是一组可选的字符串,可以与路由相关联以进行分组和过滤。您可以通过向服务端点发送PATCH请求 并指定路由来分配标签。

通过为它分配一个带有值的标签来更新路由tutorial:

curl --request PATCH \
  --url localhost:8001/services/example_service/routes/example_route \
  --data tags="tutorial"


  • Proxy a request

Kong 是一个 API 网关,它接受来自客户端的请求并根据当前配置将它们路由到适当的上游应用程序。使用之前配置的服务和路由,您现在可以https://mockbin.org/使用http://localhost:8000/mock.

默认情况下,Kong Gateway 的 Admin API 监听端口上的管理请求8001,这有时被称为 control plane。客户端使用端口8000来发出数据请求,这通常被称为 data plane

Mockbin 提供了一种/requests资源,它将向客户端回显有关对其发出的请求的信息。通过 Kong Gateway 代理对/requests资源的请求:

curl -X GET http://localhost:8000/mock/requests


评论