我尝试使用API Connect来测试GraphQL代理API
首先
IBM API Connect v10提供了将请求代理到GraphQL服务器的API。
在这篇文章中,我们介绍了使用API Connect创建和测试运行GraphQL代理API的步骤。
后端GraphQL服务器将使用“在StepZen的免费版中尝试GraphQL”中创建的示例。
API Connect使用了API Connect AWS SaaS试用版。有关API Connect AWS SaaS试用版的基本使用方法,请参考在AWS上使用IBM API Connect作为服务的试用版。
创建API

编辑API

当完成API的编辑后,点击「保存」按钮以保存设置。
API测试

API管理界面
在API管理器的用户界面中,可以使用GraphiQL编辑器。
GraphiQL是一个GraphQL的图形化界面客户端。
在这里,我们将使用在“尝试使用StepZen的免费版进行GraphQL”中执行的查询来获取将1美元换算成日元的结果,并进行操作确认。
打开API定义的测试选项卡,在请求部分选择API端点。
(在这里选择POST https://api.us-east-a.apiconnect.ibmappdomain.cloud/apiconnect-6/sandbox/test/graphql)。
在GraphiQL选项卡的左窗格中输入以下查询。
{
frankfurter_convertedAmount(amount: 1, from: "USD", to: "JPY")
}

卷曲
我会尝试以GraphQL形式和JSON形式进行执行。
Graphql的格式
~ % curl -i -X POST 'https://api.us-east-a.apiconnect.ibmappdomain.cloud/apiconnect-6/sandbox/test/graphql' \
-H 'x-ibm-client-id: ab4f4e5340560fa7813036cd33317f9a' \
-H 'Content-Type: application/graphql' \
--data '{frankfurter_convertedAmount(amount: 1, from: "USD", to: "JPY")}'
HTTP/2 200
date: Wed, 10 May 2023 05:07:21 GMT
content-type: application/json
stepzen-trace: 18e728831428800f11e25910319a4357
strict-transport-security: max-age=63072000; includeSubDomains; preload
vary: Origin
x-content-type-options: nosniff
via: 1.1 google
x-global-transaction-id: a9ee9687645b2688003d4f20
x-envoy-upstream-service-time: 550
cf-cache-status: DYNAMIC
server: cloudflare
cf-ray: 7c4fa8735a30af64-NRT
{"data":{"frankfurter_convertedAmount":135.02}}%
JSON的格式化
~ % curl -i -X POST 'https://api.us-east-a.apiconnect.ibmappdomain.cloud/apiconnect-6/sandbox/test/graphql' \
-H 'x-ibm-client-id: ab4f4e5340560fa7813036cd33317f9a' \
-H 'Content-Type: application/json' \
--data '{"query": "{frankfurter_convertedAmount(amount: 1, from: \"USD\", to: \"JPY\")}"}'
HTTP/2 200
date: Wed, 10 May 2023 05:07:44 GMT
content-type: application/json
stepzen-trace: 63822f6c278bbec928ecd2b4ec8f1408
strict-transport-security: max-age=63072000; includeSubDomains; preload
vary: Origin
x-content-type-options: nosniff
via: 1.1 google
x-global-transaction-id: 4c75ec11645b269f002adbe3
x-envoy-upstream-service-time: 613
cf-cache-status: DYNAMIC
server: cloudflare
cf-ray: 7c4fa900a966f629-NRT
{"data":{"frankfurter_convertedAmount":135.02}}%
我已经介绍了在API Connect中创建和执行GraphQL代理API的过程。