2017-09-03 106 views
0

我使用阿波羅客戶端GraphQL客戶端集成。我添加了以下運行腳本,這是在官方文檔中建議的。所有GraphQL標量上來的字符串(阿波羅)

cd "${SRCROOT}/${TARGET_NAME}/GraphQL/Open" 
$APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh generate $(find 
. -name '*.graphql') --schema schema.json 
--output APIClient.swift 

但是即將到來的問題是所有的標量現在都以String的形式出現了。

例如: - 在登錄時,如果我創建電子郵件和密碼的突變,我的架構返回響應,JSON而APIClient創建顯示響應爲字符串(而不是JSON)。

由此有收到錯誤它說

Apollo.GraphQLResultError(path: ["login", "response"], underlying: Apollo.JSONDecodingError.couldNotConvert 

這是因爲串被接收,而不是JSON和字符串不能被轉換成所需的JSON。

是任何人都面臨着同樣的問題?

回答

0

所以我想通了。解決辦法是在運行腳本中添加

--passthrough-custom-scalars 

。這將傳遞像JSON這樣的自定義標量。因此,完整腳本變爲

cd "${SRCROOT}/${TARGET_NAME}/GraphQL/Open" 
$APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh generate $(find 
. -name '*.graphql') --schema schema.json --passthrough-custom-scalars 
--output APIOpen.swift 

現在,當代碼與此運行腳本一起重新編譯時,JSON標量將變爲有效。

這花了我很多時間來弄清楚。希望它能幫助別人,節省時間。謝謝

相關問題