GraphQL - 응답
4595 단어 GraphQL
GraphQL 서버가 요청을 받았을 때 올바른 형식의 응답을 반환해야 합니다.서버의 응답은 작업의 결과나 오류를 설명합니다.
1. Serialization Format 시퀀스 형식
1.1 개요
GraphQL에는 특정 시퀀스 형식이 필요하지 않습니다.그러나 클라이언트는 GraphQL 응답의 주요 원어를 지원하는 서열화 형식을 사용해야 합니다.서열화 형식은 다음 네 가지 유형의 표현을 지원해야 합니다.
여기서 String은 다음과 같은 유형으로 대체할 수 있습니다.
1.2 JSON 서열화
우선 순위 지정 형식
GraphQL에서 JSON을 서열화 형식으로 선택합니다.반환된 JSON 객체는 질의에 정의된 필드와 동일한 순서를 갖습니다.
개념적 매핑 관계
GraphQL 개념과 JSON 개념의 매핑 관계:
GraphQL Value
JSON Value
Map
Object
List
Array
Null
null
String
String
Boolean
true or false
Int
Number
Float
Number
Enum Value
String
객체 속성 정렬
JSON 객체는 키 값 쌍의 무질서한 집합이지만 질서정연하게 표시됩니다.다시 말하면 JSON 문자열
{ "name": "Mark", "age": 30 }
과 { "age": 30, "name": "Mark" }
은 같은 값을 가지지만 정렬은 다르다.GraphQL이 반환하는 서열화된 JSON 객체는 질의에 정의된 필드와 같은 순서입니다.
예를 들어 쿼리가 {name,age}이면 JSON으로 응답하는 GraphQL 서버는 {"name": "마크", "age": 30}에 응답해야 하며 {"age": 30, "name": "마크"}에 응답해서는 안 됩니다.
2. Response Format 응답 형식
GraphQL 작업에 대한 응답은 맵이어야 합니다.응답은 세 가지 최고급 속성이 있습니다: 데이터,errors,extensions.
2.1 data
응답의 첫 번째 속성은 모든 응답의 데이터를 채우는 데이터입니다.데이터 응답의 데이터는 실행 작업의 결과입니다.조회 작업에 대해 이 출력은 모드의 조회 루트 유형의 대상이다.변경 작업에 대해 이 출력은 이 모드의 변경 루트 유형의 대상이다.
{
"data": {
"viewer": {
"name": null,
"id": "MDQ6VXNlcjE4NTMyODU5"
}
}
}
2.2 errors
오류가 발생하면 응답은 속성 errors를 포함해야 합니다.이 항목의 값은 오류 섹션에 설명되어 있습니다.errors 응답은 비어 있지 않은 오류 목록입니다. 모든 오류는 맵입니다.
만약에 데이터 응답이 존재하지 않거나 응답의 값이null이라면,errors 응답은 비어 있을 수 없습니다. 최소한 하나의 오류를 포함해야 합니다. 이 오류는 왜 데이터가 되돌아오지 않는지 지적해야 합니다.만약 데이터 응답이null이 아니라면, errors 응답은 실행 기간에 발생하는 모든 오류를 포함할 수 있습니다.
{
"data": null,
"errors": [
{
"message": "Field 'namea' doesn't exist on type 'User'",
"locations": [
{
"line": 3,
"column": 5
}
]
},
{
"message": "Field 'ida' doesn't exist on type 'User'",
"locations": [
{
"line": 6,
"column": 5
}
]
}
]
}
2.3 extensions
응답도 속성 extensions를 포함할 수 있습니다.이 속성의 값은 맵입니다.이 속성은 인터페이스 정의자를 위해 보존된 것으로 프로토콜을 확장할 수 있으며 내용에 제한이 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
GraphQL(lighthouse)+jwt인증 in laravel6laravel6에서의 동작 확인을 각각하면서 GraphQL로 jwt 인증을 구현해 보았습니다. 비망록. laravel 6.3.0 lighthouse 4.5 jwt-auth lighthouse laravel-graph...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.