如何通过 Web 浏览器调用在 Kong 中配置的 api?

Posted

技术标签:

【中文标题】如何通过 Web 浏览器调用在 Kong 中配置的 api?【英文标题】:How do i invoke my api which is configured in Kong through web browser? 【发布时间】:2018-05-27 08:56:15 【问题描述】:

我通过 kong..(dummy API) 创建了一个新的 API 配置,如下所示。

curl -i -X POST \

--网址http://localhost:8001/apis/\ --data '名称=myRESTapi' \ --data 'hosts=myrestapi.com' \ --data 'upstream_url=http://demo1592110.mockable.io/hello'

HTTP/1.1 201 创建 日期:格林威治标准时间 2017 年 12 月 8 日星期五 09:25:35 内容类型:应用程序/json;字符集=utf-8 传输编码:分块 连接:保持活动 访问控制允许来源:* 服务器:kong/0.11.2

"created_at":1512725135862,"strip_uri":true,"id":"d066b086-6d64-45b7-9908-f6411c456ce4","hosts":["myrestapi.com"],"name":"myRESTapi ","http_if_terminated":false,"preserve_host":false,"upstream_url":"http://demo1592110.mockable.io/hello","upstream_connect_timeout":60000,"upstream_send_timeout":60000,"upstream_read_timeout":60000, "重试":5,"https_only":false [ec2-user@ip-172-31-10-102 ~]$

我正在通过以下 linux 实例中的 curl 命令调用该 API

curl -i -X 获取 \

--网址http://localhost:8000/\ --header '主机:myrestapi.com'

HTTP/1.1 200 正常 内容类型:应用程序/json;字符集=UTF-8 内容长度:49 连接:保持活动 访问控制允许来源:* X-云跟踪上下文:7806a9e612e31e610f9278b98371a60e 日期:格林威治标准时间 2017 年 12 月 8 日星期五 09:26:55 服务器:谷歌前端 X-Kong-上游延迟:227 X-Kong-代理延迟:46 通过:kong/0.11.2

“味精”:“shruthi 模拟 API”

我想知道如何通过网络浏览器调用这个api,它应该通过另一台机器上的kong。

我可以直接在浏览器中通过上游url执行:http://demo1592110.mockable.io/hello

但是我想打kong然后又想调用我的api,但不是使用curl命令,而是直接想通过网络浏览器来实现。

我是kong的新手,不确定这是否有效。任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

使用“主机”方法,您需要在标头值中传递主机,您无法直接从浏览器复制。对于主机方法,您需要使用任何休息客户端来传递标头值或以编程方式实现它。

但是正如你提到的你需要直接使用浏览器尝试它,那么我建议你在向kong添加api时使用“uris”。

curl -i -X POST \
--url http://localhost:8001/apis/ \ 
--data "name=myRESTapi" \ 
--data "uris=/hello" \ 
--data "upstream_url=http://demo1592110.mockable.io"

您可以看到添加了“uris”,并删除了来自 upstream_url 的 URI。之后就不需要主机了。

现在,如果您在浏览器中点击网址

http://localhost:8000/hello

您也可以达到同样的效果。

【讨论】:

谢谢,试试这个。那么hosts属性在Kong实时有什么意义呢? 当您计划以编程方式调用 Kong 服务器并且不希望用户知道您的 URI 时,可以使用它。但是,您只能添加不同的主机。我正在为我们的网关使用 URI 方法,这将使我们免于添加任何新主机。对于 kong,我们注册了域名,因此它已成为我们所有呼叫的主机。

以上是关于如何通过 Web 浏览器调用在 Kong 中配置的 api?的主要内容,如果未能解决你的问题,请参考以下文章

在 Docker 中运行 Kong,Kong 在 Web 浏览器中不显示 GUI

Kong - 通过 HTTP/2 连接到上游

微服务Kong——添加插件

apigateway-kong配置说明

Kong 入门指南 - 通过Kong Gateway公开您的服务

Kong 入门指南 - 通过Kong Gateway公开您的服务