Service 服务

顾名思义,服务实体是每个上游服务的抽象。举个例子,services 可以是一个数据转换微服务,一个计费api等等。
Service 的主要属性是其URL(Kong应该将流量代理到的地方),可以设置为单个字符串,也可以单独指定其protocol, host, portpath
Service 与 router 相关联(一个 Service 可以有许多与之关联的 router)。router 是Kong的入口点,并定义匹配客户端请求的规则。一旦 router 匹配,Kong就会将请求代理到其关联的服务。有关Kong代理流量的详细说明,请参阅代理参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"id": "0c61e164-6171-4837-8836-8f5298726d53",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}
Permalink

添加一个 Service

创建一个service

1
POST:/services

请求体

参数 描述
name
optional
Service 名称
retries
optional
代理失败时要执行的重试次数。默认为 5
protocol
用于与上游通信的协议。它可以是httphttps之一。默认为“http”。
host
上游服务的 host
port
上游服务端口。默认为80。
path
optional
在上游服务器的请求中使用的路径。
connect_timeout
optional
建立与上游服务器的连接的超时时间(以毫秒为单位)。默认为 60000
write_timeout
optional
用于向上游服务器发送请求的两次连续写操作之间的超时(以毫秒为单位)。默认为60000
read_timeout
optional
用于向上游服务器发送请求的两次连续读取操作之间的超时(以毫秒为单位)。默认为60000
url
shorthand-attribute
用于同时设置protocolhostportpath 的速记属性。此属性是只写的(Admin API永远不会“返回”该URL)。

响应

1
HTTP 201 Created
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "0c61e164-6171-4837-8836-8f5298726d53",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}

Services 列表

查询所有的 Services

1
GET:/services

响应

1
HTTP 200 OK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"data": [{
"id": "f00c6da4-3679-4b44-b9fb-36a19bd3ae83",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}, {
"id": "bdab0e47-4e37-4f0b-8fd0-87d95cc4addc",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/another_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}],
"next": "http://localhost:8001/services?offset=6378122c-a0a1-438d-a5c6-efabae9fb969"
}

查询 Services

查询

1
GET:/services/{name or id}
参数 描述
name or id
required
要检索的服务的唯一标识符或名称。

查询与特定路由关联的服务

1
GET:/routes/{route name or id}/service
参数 描述
route name or id
required
与要检索的服务关联的唯一标识符或Route的名称。

查询特定插件关联的服务

1
GET:/plugins/{plugin id}/service
参数 描述
plugin id
required
与要检索的服务关联的插件的唯一标识符。

响应

1
HTTP 200 OK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "0c61e164-6171-4837-8836-8f5298726d53",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}

更新 service

更新

1
PATCH:/services/{name or id}
参数 描述
name or id
required
要更新的服务的唯一标识符或名称。

更新与特定路由关联的服务

1
PATCH:/routes/{route name or id}/service
参数 描述
route name or id
required
与要更新的服务关联的唯一标识符或Route的名称。

更新与特定插件关联的服务

1
PATCH:/plugins/{plugin id}/service
参数 描述
plugin id
required
与要更新的服务关联的插件的唯一标识符。

请求体

参数 描述
name
optional
Service 名称
retries
optional
代理失败时要执行的重试次数。默认为 5
protocol
用于与上游通信的协议。它可以是httphttps之一。默认为“http”。
host
上游服务的 host
port
上游服务端口。默认为80。
path
optional
在上游服务器的请求中使用的路径。
connect_timeout
optional
建立与上游服务器的连接的超时时间(以毫秒为单位)。默认为 60000
write_timeout
optional
用于向上游服务器发送请求的两次连续写操作之间的超时(以毫秒为单位)。默认为60000
read_timeout
optional
用于向上游服务器发送请求的两次连续读取操作之间的超时(以毫秒为单位)。默认为60000
url
shorthand-attribute
用于同时设置protocolhostportpath 的速记属性。此属性是只写的(Admin API永远不会“返回”该URL)。

响应

1
HTTP 200 OK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"id": "0c61e164-6171-4837-8836-8f5298726d53",
"created_at": 1422386534,
"updated_at": 1422386534,
"name": "my-service",
"retries": 5,
"protocol": "http",
"host": "example.com",
"port": 80,
"path": "/some_api",
"connect_timeout": 60000,
"write_timeout": 60000,
"read_timeout": 60000
}

更新或创建服务

创建或更新

1
PUT:/services/{name or id}
参数 描述
route name or id
required
与要更新或创建的服务关联的唯一标识符或Route的名称。

创建或更新与特定路由关联的服务

1
PUT:/routes/{route name or id}/service
参数 描述
route name or id
required
与要更新或创建的服务关联的唯一标识符或Route的名称。

创建或更新与特定插件关联的服务

1
PUT:/plugins/{plugin id}/service
参数 描述
plugin id
required
与要更新或创建的服务关联的插件的唯一标识符。

请求体

参数 描述
name
optional
Service 名称
retries
optional
代理失败时要执行的重试次数。默认为 5
protocol
用于与上游通信的协议。它可以是httphttps之一。默认为“http”。
host
上游服务的 host
port
上游服务端口。默认为80。
path
optional
在上游服务器的请求中使用的路径。
connect_timeout
optional
建立与上游服务器的连接的超时时间(以毫秒为单位)。默认为 60000
write_timeout
optional
用于向上游服务器发送请求的两次连续写操作之间的超时(以毫秒为单位)。默认为60000
read_timeout
optional
用于向上游服务器发送请求的两次连续读取操作之间的超时(以毫秒为单位)。默认为60000
url
shorthand-attribute
用于同时设置protocolhostportpath 的速记属性。此属性是只写的(Admin API永远不会“返回”该URL)。

使用body中指定的参数在请求的资源下插入(或替换)服务。Service 将通过nameid属性标识。

当name或id属性具有UUID的结构时,插入/替换 的服务将由其id标识。否则将通过其名称识别。

在创建新服务而不指定id(既不在URL中也不在body中)时,它将自动生成。

请注意,请注意,URL中的name和请求体中的name名称必须一样。

响应

1
HTTP 201 Created or HTTP 200 OK

请参阅POST和PATCH响应

删除 service

删除

1
DELETE:/services/{name or id}
参数 描述
name or id
required
要删除的服务的唯一标识符或名称。

删除与特定路由关联的服务

1
DELETE:/routes/{route name or id}/service
参数 描述
route name or id
required
与要删除的服务关联的唯一标识符或Route的名称。

响应

1
HTTP 204 No Content