乐趣区

API网关Kong系列四玩转Service服务

1、前景回顾

在上一章《API 网关 Kong 系列三】– 战前预热》中我们已经对 Service 服务的定义做了解释,在这我们在回顾下。

服务(SERVICE)实体,正如其名称所示,是您自己的 UPSTREAM 服务的抽象。服务的示例将会是数据转换微服务、计费 API 等。

服务的主要属性是它的 URL(在这里,Kong 应该代理流量),它可以被设置为单个字符串,或者通过单独指定其协议、主机、端口和路径。

服务与路由相关联(服务可以有许多与之相关联的路由)。路由是在 Kong 的入口点,并定义了匹配客户端请求的规则。一旦匹配了路由,Kong 就会将请求委托给它的相关服务。

本章我们来学习下 SERVICE 服务 API 的使用。

2、业务场景

本示例中,将向 Kong 添加 API, 为此,首先需要添加一个服务(Service), 就是 Kong 用来指定代它管理的上游 API 和微服务的名称。

处于测试目的,我们将创建一个指向 Mockbin API 的服务(Mockbin 是一个“echo”类型的公共网站,它将返回请求的请求作为响应返回给请求者。这有助于了解 Kong 如何代理您的 API 请求)

再开始向服务发送请求之前,需要为其添加路由,路由指定请求在到达 Kong 之后如何发送到其它服务。单个服务可以创建多个路由。

3、SERVICE API

3.1 创建 SERVICE

以发送 cURL 请求的方式,调用 Kong 的 Admin API.
示例:创建 一个 SERVICE (指向 Mockbin API) 并添加到 Kong

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

响应类似如下信息说明创建成功

HTTP/1.1 201 Created
Content-Type: application/json
Connection: keep-alive
{
   "host":"mockbin.org",
   "created_at":1519130509,
   "connect_timeout":60000,
   "id":"92956672-f5ea-4e9a-b096-667bf55bc40c",
   "protocol":"http",
   "name":"example-service",
   "read_timeout":60000,
   "port":80,
   "path":null,
   "updated_at":1519130509,
   "retries":5,
   "write_timeout":60000
}

到这 一个简单的 SERVICE 服务就创建完成了。下面我们来介绍下 SERVICE 的其它 API

3.2 SERVICE API 详解

3.2.1 添加 SERIVCE

请求地址 /services
请求方式 POST
请求主体
name (可选) 服务名称
protocol 该协议用于 upstrean 通信。可以是 http(默认) 或者 https
host Upstream 服务器主机
port 服务器端口,默认 80
path(可选) 在向 Upstream 服务器请求中使用的路径。默认为空
retries(可选 在代理失败的情况下执行重试次数,默认为 5
connect_timeout(可选) 建立 Upstream 服务器连接的超时间默认为 60000
write_timeout(可选) 将请求发送到 Upstream 服务器的两个连接之间写操作超时时间,默认 60000
read-time(可选) 将请求发送到 Upstream 服务器的两个连接之间读操作超时时间,默认 60000
url(简写属性) 将协议、主机、端口和路径设置成简单的属性。这个属性是只写的(管理 API 从不返回 url)

3.2.2 查找 Service

请求地址 /services
请求方式 GET
参数
(name or id) 必填 检索的唯一标示或者服务名称

3.2.3 查找 Service 列表

请求地址 /services
请求方式 GET
参数
Offset 分页游标
size(可选默认 100 最大 1000) 每页显示的条数

3.2.4 更新 Service

请求地址 /services/{name or id}
请求方式 PATCH
参数
(Name or id) 必填_ 要更新服务的 id 或者 name

3.2.4 删除 Service

请求地址 /services/{name or id}
请求方式 DELETE
参数
(Name or id) 必填_ 要删除的服务的那么或者 id

到这 SERVICE 的 API 基本介绍完了。

4、总结

本章主要介绍 SERVICE 的增删改查的 API。
描述了一个业务场景,同时创建了一个指向 Mockbin API 的 Service.
下一章我们会根据上述的业务场景和 Service 来创建路由。

想了解更多关于 Kong 网关的请移步 >>>>> 企业级 API 网关 Kong

退出移动版