Top GraphQL 오류 및 수정 방법
3854 단어 graphqlerrors
GraphQL의 오류 처리는 서버 측과 클라이언트 도구에서 모두 다르다.요청한 오류를 디버깅하기 위해 HTTP 상태 코드를 더 이상 볼 필요가 없습니다.이것은 우리로 하여금 디버깅 오류에 더 많이 참여하게 하지만, GraphQL의 오류는 하나의 구조가 있기 때문에, 우리는 그것을 연구하여 어떻게 디버깅하고 복구하는지 보게 할 것이다.
일반적인 GraphQL 쿼리를 살펴보겠습니다.
query {
author {
id
name
}
}
위의 질의에 대한 응답은 다음과 같습니다.data
errors
또는 {
"data": [{ id: 1, name: "Praveen"}],
"errors": []
}
GraphQL 응답의 최상위 오류 객체응답이
errors
대상과 data
대상을 포함할 때 요청한 부분에 대한 정확한 응답을 의미할 수 있습니다.errors 대상을 깊이 연구하면 조회의 어느 부분이 잘못되었는지 더욱 잘 이해할 수 있다.오류 유형을 식별하는 것은 그것들을 신속하게 복구하는 데 도움이 될 것이다.클라이언트가 GraphQL 서버와 통신할 때 이런 종류의 오류가 발생할 수 있습니다.
서버 문제/네트워크 오류
위의 모든 오류는 GraphQL 오류 범주에 속하며 응답 상태 코드는
200
입니다.GraphQL 서버에 연결하려고 시도할 때 서버 종료나 시간 초과 등으로 네트워크 오류가 발생하면 응답은 4xx 또는 5xx의 상태 코드가 됩니다.서버의 응답이 200이 아닌 경우 다음과 같은 이유로 응답이 실패합니다.
클라이언트 질문 - GraphQL 쿼리의 검증 규칙
GraphQL은 검색을 실행하기 전에 모든 검색을 검증하는 강력한 유형입니다.그룹 규칙에 따라, 만약 조회가 잘못되면, 조회를 거부할 수 있습니다.
유효성 검사 규칙을 다시 다음으로 분할할 수 있습니다.
{
"errors": [
{
"extensions": {
"path": "$.variableValues",
"code": "validation-failed"
},
"message": "unexpected variables in variableValues: products"
}
]
}
variableValues의 예상치 못한 변수: id이것은 클라이언트가 정의되지 않은 변수를 사용하여 요청을 할 때 발생하는 전형적인 오류입니다.GraphiQL 등 GUI 도구를 사용할 때 흔히 볼 수 있는 악몽은 변수 UI에 이전에 검색한 변수가 사용한 잔여가 있다는 것이다.
graphql js 서버validation rules의 원본 코드를 읽고 조회를 실행하기 전에 진행된 각종 조회 검증을 이해합니다.
검증 오류는 클라이언트에게 어떤 데이터도 되돌려주지 않으며, 실행 오류는 일부 데이터 집합을 되돌려줍니다.이 조작은 어느 정도 완성될 수 있으나, 특정 필드나 조회의 특정 부분의 성능이 비교적 느리기 때문에 일부 데이터 집합을 초래할 수 있다.
최상위 오류
기본 오류는
message
, locations
및 path
입니다.규범화된 작업 초안에 따라 extensions
키를 통해 사용자 정의 데이터를 발송할 수 있다.필드 수준 오류
{
“errors”: [{
“extensions”: {
“path”: “$.selectionSet.dogs.selectionSet.name”,
“code”: “validation-failed”
},
“message”: “field \”name\” not found in type: ‘dogs’”
}]
}
위의 응답에서 extensions
대상의 errors
키를 볼 수 있습니다. 이 키는 오류 원인에 대한 더 많은 메타데이터를 포함합니다.기술적으로 이 오류는 존재하지 않는 필드를 사용했기 때문입니다. (Auth나 schema에 이 필드가 없기 때문입니다.)GraphQL 구독 오류
GraphQL 서버에 연결할 때 자주 발생하는 또 다른 오류는 웹 소켓에 연결하여 실시간 구독을 하는 것입니다.
ws
또는 wss
로 시작하는 것이지 https
로 시작하는 것이 아닙니다.리소스
Reference
이 문제에 관하여(Top GraphQL 오류 및 수정 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hasurahq/top-graphql-errors-and-how-to-fix-them-496텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)