2017-09-03 6 views
0

저는 GraphQL 클라이언트 통합을 위해 Apollo 클라이언트를 사용하고 있습니다. 공식 문서에 제안 된 다음 실행 스크립트를 추가했습니다.모든 GraphQL 스칼라가 문자열 (Apollo)로 표시됩니다

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 

그러나 문제는 모든 스칼라가 현재 문자열로 올라오고 있습니다.

예 : 전자 메일 및 암호의 변형을 만들면 로그인 할 때 스키마에서 응답을 JSON으로 반환하고 APIClient는 응답을 JSON 대신 String으로 표시합니다.

이 때문에 오류가 문자열 대신 JSON의 수신 및 문자열이 필요 JSON으로 변환 할 수 없기 때문이다

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

을 밝히는 받았다있다.

동일한 문제가있는 사람이 있습니까?

답변

0

그래서 나는 그것을 알아 냈습니다. 해결책은 실행 스크립트에

--passthrough-custom-scalars 

을 추가하는 것입니다. 그러면 JSON과 같은 사용자 정의 스칼라가 전달됩니다. 그래서 전체 실행 스크립트 코드가 JSON 스칼라가 유효하게이 실행 스크립트와 함께 recomplied되어 이제

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 

된다.

이렇게하면 많은 시간이 필요했습니다. 그것이 누군가를 돕고 그들의 시간을 절약하기를 바랍니다. 감사합니다.