我尝试使用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

6.png

编辑API

9.png

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

API测试

10.png

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")
}
11.png

卷曲

我会尝试以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的过程。

bannerAds