如何通过网络浏览器调用在 Kong 中配置的 api?
How do i invoke my api which is configured in Kong through web browser?
我已经通过 kong..(dummy API) 创建了一个新的 API 配置,如下所示。
curl -i -X POST \
--url http://localhost:8001/apis/ \
--data 'name=myRESTapi' \
--data 'hosts=myrestapi.com' \
--data 'upstream_url=http://demo1592110.mockable.io/hello'
HTTP/1.1 201 已创建
日期:2017 年 12 月 8 日星期五 09:25:35 GMT
内容类型:application/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,"retries":5,"https_only":false}
[ec2-user@ip-172-31-10-102 ~]$
我在 linux 实例中通过 curl 命令调用 API,如下所示
curl -i -X GET \
--url http://localhost:8000/ \
--header 'Host: myrestapi.com'
HTTP/1.1 200 行
内容类型:application/json;字符集=UTF-8
内容长度:49
连接:保持活动状态
访问控制允许来源:*
X 云跟踪上下文:7806a9e612e31e610f9278b98371a60e
日期:2017 年 12 月 8 日星期五 09:26:55 GMT
服务器:Google 前端
X-Kong-上游-延迟:227
X-Kong-Proxy-延迟:46
通过:kong/0.11.2
{
"msg": "shruthi mock API"
}
我想知道如何通过 web 浏览器调用这个 api,它应该通过另一台机器上的 kong。
我可以直接在浏览器中通过上游url执行:http://demo1592110.mockable.io/hello
但我想打kong,然后又想调用我的api,但不是使用curl命令,而是想直接通过网络浏览器实现。
我是kong新手,不确定这是否有效。感谢任何帮助。
使用 "hosts" 方法,您需要在无法直接从浏览器复制的 header 值中传递主机。对于主机方法,您需要使用任何其余客户端来传递 header 值或以编程方式实现它。
但是正如您提到的,您需要直接使用浏览器进行尝试,那么我建议您在将 api 添加到 kong 时使用 "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。之后就不需要主机了。
现在,如果您在浏览器中点击 url 作为
http://localhost:8000/hello
你也可以达到同样的效果。
我已经通过 kong..(dummy API) 创建了一个新的 API 配置,如下所示。
curl -i -X POST \
--url http://localhost:8001/apis/ \ --data 'name=myRESTapi' \ --data 'hosts=myrestapi.com' \ --data 'upstream_url=http://demo1592110.mockable.io/hello'
HTTP/1.1 201 已创建 日期:2017 年 12 月 8 日星期五 09:25:35 GMT 内容类型:application/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,"retries":5,"https_only":false} [ec2-user@ip-172-31-10-102 ~]$
我在 linux 实例中通过 curl 命令调用 API,如下所示
curl -i -X GET \
--url http://localhost:8000/ \ --header 'Host: myrestapi.com'
HTTP/1.1 200 行 内容类型:application/json;字符集=UTF-8 内容长度:49 连接:保持活动状态 访问控制允许来源:* X 云跟踪上下文:7806a9e612e31e610f9278b98371a60e 日期:2017 年 12 月 8 日星期五 09:26:55 GMT 服务器:Google 前端 X-Kong-上游-延迟:227 X-Kong-Proxy-延迟:46 通过:kong/0.11.2
{ "msg": "shruthi mock API" }
我想知道如何通过 web 浏览器调用这个 api,它应该通过另一台机器上的 kong。
我可以直接在浏览器中通过上游url执行:http://demo1592110.mockable.io/hello
但我想打kong,然后又想调用我的api,但不是使用curl命令,而是想直接通过网络浏览器实现。
我是kong新手,不确定这是否有效。感谢任何帮助。
使用 "hosts" 方法,您需要在无法直接从浏览器复制的 header 值中传递主机。对于主机方法,您需要使用任何其余客户端来传递 header 值或以编程方式实现它。
但是正如您提到的,您需要直接使用浏览器进行尝试,那么我建议您在将 api 添加到 kong 时使用 "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。之后就不需要主机了。
现在,如果您在浏览器中点击 url 作为
http://localhost:8000/hello
你也可以达到同样的效果。