您可以创建两个服务,每个服务都有一个路由。两条路线使用相同的路径,
服务一:http ://httpbin.org
curl --location --request POST 'http://localhost:8001/services/' \
--form 'name="httpbin"' \
--form 'url="http://httpbin.org"'
路线 1:/路径
curl --location --request POST 'http://localhost:8001/services/httpbin/routes/' \
--form 'paths[]="/testPath"' \
--form 'name="httpbinget"' \
--form 'hosts[]="httpbin.org"'
服务 2: http: //mockbin.org
curl --location --request POST 'http://localhost:8001/services/' \
--form 'name="mockbin-secure"' \
--form 'url="https://mockbin.org"'
路线 2:/testpath
curl --location --request POST 'http://localhost:8001/services/mockbin-secure/routes/' \
--form 'paths[]="/testPath"' \
--form 'name="mockbin-get"' \
--form 'hosts[]="mockbin.org"'
测试 API Gateway 代理 /testPath
curl --location --request GET 'http://localhost:8000/testPath/' \
--header 'Accept: application/vnd.yang.data+json' \
--header 'Host: httpbin.org'
curl --location --request GET 'http://localhost:8000/testPath/' \
--header 'Accept: application/vnd.yang.data+json' \
--header 'Host: mockbin.org'
如果需要身份验证,则第二个请求预计会失败,最后一步是在此特定服务上启用身份验证插件
curl -X POST http://localhost:8001/services/mockbin-secure/plugins \
--data "name=key-auth" \
--data "config.key_names=apikey" \
--data "config.key_in_body=false" \
--data "config.key_in_header=true" \
--data "config.key_in_query=true" \
--data "config.hide_credentials=false" \
--data "config.run_on_preflight=true"
测试代理时需要提供apikey
curl --location --request GET 'http://localhost:8000/testPath/' \
--header 'Accept: application/vnd.yang.data+json' \
--header 'Host: httpbin.org' \
--header 'api-key: somekey'
我现在没有可以测试的安全服务,我希望这可能会有所帮助。