步驟 3:配置解析器 - AWS AppSync

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 3:配置解析器

在前面的章節中,您學會瞭如何建立 GraphQL 結構描述和資料來源,然後在 AWS AppSync 服務中將它們連結在一起。在您的模式中,您可能已經在查詢和突變中建立了一個或多個字段(操作)。雖然結構描述了操作將從數據源請求的數據類型,但它從未實現這些操作如何圍繞數據的行為。

一個操作的行為總是在解析器中實現,該解析器將鏈接到執行操作的字段。有關解析器一般如何工作的詳細資訊,請參閱解析器頁面。

在中 AWS AppSync,您的解析程式與執行階段相關聯,也就是解析程式執行的環境。運行時決定您的解析器將用來編寫的語言。目前有兩個支援的執行階段:APPSYNC_JS (JavaScript) 和 Apache 速度範本語言 (VTL)。

在實施解析器時,它們遵循一個通用的結構:

  • 在步驟之前:當客戶端提出請求時,正在使用的模式字段(通常是您的查詢,突變,訂閱)的解析器將傳遞請求數據。解析器將開始使用 before step 處理程序處理請求數據,這允許在數據通過解析器移動之前執行一些預處理操作。

  • 函數(S):在步驟運行之前,請求被傳遞到函數列表。清單中的第一個函數會針對資料來源執行。函數是解析器代碼的子集,其中包含自己的請求和響應處理程序。請求處理程序將採取請求數據並對數據源執行操作。響應處理程序將數據源的響應傳遞回列表之前處理數據源的響應。如果有多個函數,請求數據將被發送到要執行的列表中的下一個函數。列表中的函數將按照開發人員定義的順序進行連續執行。一旦所有的函數都被執行,最終的結果被傳遞給後一步。

  • 後步驟:之後的步驟是一個處理函數,允許您在將其傳遞給 GraphQL 響應之前對最終函數的響應執行一些最終操作。

此流程是管線解析器的範例。這兩個執行階段都支援管線解析器。但是,這是對管道解析器可以執行的操作的簡化解釋。另外,我們只描述了一種可能的解析器配置。如需有關支援的解析程式組態的詳細資訊,請參閱 APPSYNC _JS 的JavaScript 解析器概觀或解析器對映範本概觀。 VTL

正如你所看到的,解析器是模塊化的。為了使解析器的組件正常工作,它們必須能夠從其他組件對等到執行狀態。從 Resolvers 部分,您知道解析器中的每個組件都可以作為一組參數(argscontext)傳遞有關執行狀態的重要信息。在中 AWS AppSync,這是由嚴格處理context。這是一個容器,用於有關正在解析的字段的信息。這可以包括傳遞的參數,結果,授權數據,標題數據等的所有內容。如需有關前後關聯的詳細資訊,請參閱 APPSYNC _JS 的解析器前後關聯物件參考或的解析器對應範本前後關聯參考。VTL

上下文不是您可以用來實現解析器的唯一工具。 AWS AppSync 支持用於價值生成,錯誤處理,解析,轉換等各種實用程序。您可以此處查看 APPSYNC _JS 的實用程序列表,或者在此處查VTL看.

在以下各節中,您將學習如何在 GraphQL 中配置解析器。API