1、前景回顾
在上前章《API网关Kong系列三】 – 战前预热》 中我们已经对Route路由的定义做了解释,在这我们在回顾下。
Route实体定义匹配客户端请求的规则。每个路由都与一个服务相关联,而服务可能有多个与之相关联的路由。每一个匹配给定路线的请求都将被提交给它的相关服务。
路由和服务的组合(以及它们之间的关注点分离)提供了一种强大的路由机制,可以在Kong中定义细粒度的入口点,从而引导你的访问到不同upstream服务。
本章我们来具体介绍下Route的使用,以及如何和Service绑定,有关Service服务的介绍回顾下前一章《【API网关Kong系列四】-玩转Service服务》
2、业务场景
业务场景承接《【API网关Kong系列四】-玩转Service服务》 中的场景,我们给上一章创建的Service添加路由。
3、Route API
3.1、创建路由
我们来创建一个路由同时绑定到Service 上
$ curl -i -X POST \
--url http://localhost:8001/services/example-service/routes \
--data 'hosts[]=example.com'
收到如下响应信息,说明创建成功
HTTP/1.1 201 Created
Content-Type: application/json
Connection: keep-alive
{
"created_at":1519131139,
"strip_path":true,
"hosts":[
"example.com"
],
"preserve_host":false,
"regex_priority":0,
"updated_at":1519131139,
"paths":null,
"service":{
"id":"79d7ee6e-9fc7-4b95-aa3b-61d2e17e7516"
},
"methods":null,
"protocols":[
"http",
"https"
],
"id":"f9ce2ed7-c06e-4e16-bd5d-3a82daef3f9d"
}
验证: 我们在浏览器中输入http://example.com:8000/ 时被路由到Service上,也就是上章Service 指定的上游服务http://mockbin.org 上。
注: 需要在本地host 文件中添加example.com 的映射。
到这里我们就很简单的将路由和服务绑定,实现了简单的路由转发功能。
3.2 Route API 详解
3.2.1 添加 Route
请求地址 | /routes/ |
请求方式 | POST |
参数 | |
protocols | 请求协议 http、https |
methods(半可选) | 此有路匹配的方法列表,如(GET, POST)主机、方法、路径至少有一个被设置 |
host(半可选) | 与此路由匹配的域名列表,主机、方法、路径至少有一个被设置 |
paths(半可选) | 与此路由匹配的路径,如/my-path,主机、方法、路径至少有一个被设置 |
strip_path(可选) | 当通过路由匹配到路径时,从Upstream请求URL中剥离匹配的前缀,默认为true |
preserver_host(可选) | 当通过主机域名匹配到路由时,在upstream请求头中使用请求主机头,默认为false |
service | 此路由相关连的服务 |
3.2.2 检索Route
请求地址 | /routes/{id} |
请求方式 | GET |
参数 | |
id(必填) | 被检索路由的id属性 |
3.2.3 检索Route列表
请求地址 | /routes |
请求方式 | GET |
参数 | |
Offset | 分页游标 |
size(可选默认100 最大1000) | 每页显示的条数 |
3.2.4 列出Service下的Route
请求地址 | /services/{service name or id }/routes |
请求方式 | POST |
参数 | |
service name or id | 服务名称或者id |
3.2.5 更新Route
请求地址 | /services/{name or id }/routes |
请求方式 | PATCH |
参数 | |
name or id | 路由ID或者na me |
3.2.6 更新和特定插件关联的Route
请求地址 | /plugins/{plugin id }/routes |
请求方式 | PATCH |
参数 | |
plugin id | 与要更新的路由关联的插件的id |
3.2.7 删除Route
请求地址 | /routes/{name or id }/routes |
请求方式 | DELETE |
参数 | |
name orid | 要删除的路由的名称或者id |
到这Route 的介绍基本结束了。
4 总结
Route 的基本功能介绍完成后,我们来简单的对本章的内容做下总结。
1: 回顾Route的概念,以及和Service关联的业务场景
2: 使用Kong Admin API 创建一个Route 并且和上章的Service进行关联,以达到一个简单的路由转发功能的链路
3: 介绍了Route的增删改查的API
想了解更多关于Kong网关的请移步
>>>>> 企业级API网关Kong