我們的場景有什么作用?

我們的場景是電子商務個性化。單個 GraphQL 端點連接多個 API 并通過 Apigee 進行代理。設想一個電子商務體驗,能夠返回用戶所在的城市以及以用戶當地貨幣計算的價值 3 美元(USD)的商品成本。只需幾個步驟,即可通過單一的 GraphQL 端點查詢連接多個 API。GraphQL 端點受到 Apigee GraphQL 策略的保護。

Apigee 如何提供幫助

Apigee 檢查查詢是否符合架構,確保 API 密鑰有效,并收集有關 GraphQL 調用的分析。借助 Apigee 的 API 產品和 GraphQL 支持,能夠添加配額,甚至限制對某些 GraphQL 操作的訪問。

這種簡化的設置針對單一 GraphQL 模式進行驗證。此外,通過利用 Apigee 對流的支持,可以為不同用戶提供不同版本的架構。能夠完全阻止對模式的請求,同時仍允許查詢。最后,在開發者門戶中發布對 GraphQL 端點的訪問權限,使以自助服務方式使用 API 的開發者能夠訂閱并獲取唯一憑據以訪問新端點。

StepZen 如何提供幫助

StepZen 對后端執行 GraphQL 調用。具體來說,StepZen:

以下是說明該場景的 GraphQL 請求和響應示例:

GraphQL 查詢:

{
location(ip: "8.8.8.8") {
city
continent
country
countryCode
priceInCountry(amount: 100, from: "EUR")
}
}

GraphQL 響應:

{
"data": {
"location": {
"city": "Ashburn",
"continent": "North America",
"country": "United States",
"countryCode": "US",
"priceInCountry": 114.44
}
}
}

上述查詢在單一請求中檢索位置信息和貨幣信息,調用兩個 REST API 生成適當的響應。StepZen 架構使用貨幣轉換 API 將 priceInCountry 字段添加到位置響應中。開發者無需自行組合這些 API,可根據需求選擇檢索的字段,從而調整響應以滿足特定需求。

由于 StepZen 和 Apigee 都支持 API 管理,能夠自動化為 StepZen 端點創建 Apigee 代理的過程。創建了一個開源實用工具來完成此任務!若未擁有 StepZen 帳戶,實用工具將提供一個帳戶。該工具部署 StepZen 架構并自動為其構建 Apigee 代理。代理配置為需要 API 密鑰才能調用,并根據 StepZen 架構自動驗證 GraphQL 請求。

讓我們啟動并運行您的環境

確保在 Apigee 中的帳戶擁有足夠的權限來創建和部署代理、API 產品、開發者、應用程序及屬性集。

  1. 克隆倉庫:
   git@github.com:apigee/stepzen.git
  1. 切換到剛剛克隆的目錄,然后運行以下命令:
   ./apizenSetup -o <your_org> -e <your_env> -t $(gcloud auth print-access-token) -i $(gcloud auth print-identity-token) -z

盡管該腳本支持多種可選參數(詳見倉庫的自述文件),但默認情況下只需指定:

測試端點

腳本完成后,將看到示例 curl 命令,如下所示:

curl -X POST 'https://<apigee_environment_host>/graphql/stepzample?apikey=<APIKEY>' \
-H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' \
--compressed -d @gql-query.json

curl 命令引用名為 gql-query.json 的文件,該文件包含上述示例中的相同 GraphQL 查詢。運行此 curl 命令將生成與示例中完全相同的輸出。可根據需要更新文件中的查詢,或復制并創建自定義查詢文件。

將 Google 地圖添加到 API

為了獲得更多功能,接下來將 Google 地圖集成到此 API 中。電子商務應用程序現在能夠向用戶顯示最近的實體店,用戶可在其中提取在線訂單并決定是否選擇送貨或提貨。

  1. 獲取 API 密鑰: 需要一個 API 密鑰才能從 StepZen 調用 Google Maps API。按照此處的說明獲取一個:Google Maps Platform 入門。
  2. 配置示例架構: 存儲庫中已為您準備了一個示例架構。導航至 StepZen Maps Sample 文件夾,將文件 config.yaml.sample 重命名為 config.yaml
  3. 編輯配置文件: 編輯 config.yaml 文件,將 <apikey> 替換為獲取的密鑰。
   configurationset:
- configuration:
name: google-maps
key: <apikey>
  1. 運行腳本: 使用新的 StepZen 架構運行腳本。該腳本將找到并重用先前創建的 StepZen 帳戶。
   ./apizenSetup -o <your_org> -e <your_env> -t $(gcloud auth print-access-token) -i $(gcloud auth print-identity-token) -S stepzen-maps-example -m maps
  1. 測試新設置: 現在,使用類似之前的 curl 命令測試新設置,指向存儲在 stepzen-maps-example 目錄中的 GraphQL 查詢。更新 curl 命令中的 apikey 和主機名,如下所示:
   curl -X POST 'https://<apigee_environment_host>/graphql/stepzample?apikey=<APIKEY>' \
-H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' \
--compressed -d @stepzen-maps-example-gql-query.json

執行的查詢如下:

   query MyQuery {
location(ip: "8.8.8.8") {
findNearby(keyword: "Target") {
name
vicinity
}
city
countryCode
regionName
}
}

查詢說明:

對于通過 Google DNS 進行的初始位置查詢返回的任何 IP,查詢將查找相對于緯度/經度最近的目標位置。隨后,將其傳遞給嵌入的 findNearby,作為從初始查找中解析出的緯度和經度。StepZen 使用 Google Maps API 及在配置架構時提供的密鑰執行該操作。

結合查詢 api-ip-api.com 的能力,能夠增強用戶體驗,并在單一 GraphQL 查詢中獲取作為目標商店的最近物理商店位置。(假設用于取貨體驗,但可根據需求嘗試其他商店。)

原文鏈接:How to manage your GraphQL APIs with Apigee

上一篇:

微信API登錄接口開發全解析

下一篇:

什么是GI加速器?
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費