注意:API实体在0.13.0中被弃用。
强烈建议将您的api迁移到路由和服务。
API对象描述了一个由Kong公开的API。当使用者从代理端口调用它时,Kong需要知道如何检索API。每个API对象必须指定主机、uri和方法的一些组合。Kong将把所有对API的请求委托给指定的upstream URL。
1、添加API
请求地址:/apis/
请求方法:POST
请求主体:
属性 | 描述 |
---|---|
name | API的名称. |
hosts(半可选) | 指向您的API的逗号分隔的域名列表。例如:example.com。至少应该指定主机、uri或方法中的一个。 |
uris(半可选) | 一个逗号分隔的uri前缀列表,指向您的API。例如: /my-path。至少应该指定主机、uri或方法中的一个。 |
methods(半可选) | 一个以逗号分隔的HTTP方法列表,指向您的API。例如: GET,POST。至少应该指定主机、uri或方法中的一个。 |
upstream_url | 指向您的API服务器的基本目标URL。这个URL将用于代理请求。例如: https://example.com. |
strip_uri(可选) | 当通过一个URI前缀匹配一个API时,要从upstream URI中去掉匹配的前缀。默认值:真的。 |
preserve_host(可选) | 当通过一个主机域名匹配一个API时,请确保请求主机头被转发到upstream服务。默认false,upstream主机头将从配置的upstream_url中提取出来。 |
retries(可选) | 在代理失败的情况下执行的重试次数。默认值是5。 |
upstream_connect_timeout(可选) | 建立连接到upstream服务的连接的超时时间。默认为60000。 |
upstream_send_timeout(可选) | 在两个连续的写操作之间的时间间隔内,将请求发送到upstream服务的默认值为60000。 |
upstream_read_timeout(可选) | 在两个连续读取操作之间的毫秒间隔,将请求发送到upstream服务的默认值为60000。 |
https_only(可选) | 如果您希望仅通过HTTPS在适当的端口上提供API(默认情况下是8443),那么就可以启用该API。默认值:false。 |
http_if_terminated(可选) | 在执行HTTPS通信时,考虑一下X-Forwarded-Proto header. 默认: false |
注:通用但非标准的HTTP头(通常,非标准的头域都是用“X-”开头)
X-Forwarded-Proto:记录一个请求一个请求最初从浏览器发出时候,是使用什么协议。因为有可能当一个请求最初和反向代理通信时,是使用https,但反向代理和服务器通信时改变成http协议,这个时候,X-Forwarded-Proto的值应该是https
2、检索API
请求地址:/apis/{name or id}
请求方法:GET
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 要检索的API的唯一标识符或名称。 |
3、API列表
请求地址:/apis/
请求方法:GET
请求参数:
属性 | 描述 |
---|---|
id(可选) | 基于api id字段的过滤器。 |
name(可选) | 基于api name字段的过滤器。 |
upstream_url(可选) | 基于api upstream_url字段的过滤器。 |
retries(可选) | 基于api retries字段的过滤器。 |
offset(可选) | 用于分页的游标。偏移量是定义列表中的位置的对象标识符。 |
size(可选,默认是100) | 每个页面返回的对象数量的限制。 |
4、更新API
请求地址:/apis/{name or id}
请求方法:GET
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 要更新的API的唯一标识符或名称。 |
请求主体:与 1、添加API 请求主体相同
5、更新或创建API
请求地址:/apis/
请求方法:PUT
请求主体:与 1、添加API 请求主体相同
PUT接口的行为如下:如果请求的payload(AJAX请求)不包含实体的主键(APIs的id),则该实体将使用给定payload创建。如果请求的payload确实包含一个实体的主键,有效负载将“替换”给定主键指定的实体。如果主键不是现有实体的,则不会返回404。
6、删除API
请求地址:/apis/{name or id}
请求方法:DELETE
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 唯一的标识符或要删除的API的名称。 |