GraphQL: 스키마, 유형 및 리졸버에 대한 간략한 소개

1961 단어 apigraphql

스키마, 유형 및 리졸버 그들은 무엇이며 어떻게 서로 맞습니까?



스키마부터 시작하겠습니다. 데이터의 모양을 정의하는 곳입니다. 유형을 지정하여 이를 수행합니다.

스키마를 생성할 때 다른 언어로 생성합니다. 당황하지 마세요. 간단합니다. 스키마 정의 언어라고 하며 개체 정의와 매우 유사합니다.

type Post {
    id: ID!
    title: String!
    author: String!
    body: String!
}


이 게시물 유형에는 여기에 저장된 정보를 설명하는 키 이름(id, 제목, 작성자, 본문) 및 스칼라 유형이 있는 4개의 필드가 있습니다.

스칼라 유형



스칼라 유형은 GraphQL에서 제공하는 내장 유형이며 아마도 대부분을 인식할 것입니다. 이들은 String , Int , Float , Boolean , ID 입니다.

유형 간의 관계도 정의할 수 있습니다. 예를 들어 작성자에 대한 더 많은 정보를 저장하고 싶지만 게시물과 별도로 저장하려는 경우 다음과 같이 할 수 있습니다.

type Post {
    id: ID!
    title: String!
    author: Author!
    body: String!
},
type Author {
    id: ID!
    name: String!
}

author 필드와 연관된 유형은 이제 자체 스칼라 유형이 있는 필드로 구성된 Author 유형입니다.

또한 스키마에서 만드는 쿼리나 변형도 정의합니다. 쿼리나 변이가 가질 유형을 정의할 때 관련 리졸버가 반환하는 것이 무엇이든 동일한 유형인지 확인해야 합니다.

type Query {
    allPosts : [Post!]!
}


리졸버?



해석기는 스키마의 유형 또는 필드에 대한 값을 해석하는 기능이며 컨트롤러가 REST에서 수행하는 것과 유사한 작업을 수행합니다.

우리는 스키마에서 쿼리의 반환 유형을 정의했습니다. 확인자는 이제 쿼리에서 얻은 데이터를 가져와서 스키마의 유형으로 설명된 것과 일치하는 모양으로 변환합니다.

생각할 것이 많을 수 있으므로 다음과 같이 상상해보십시오.
삼각형을 반환한다고 말하는 쿼리 유형이 스키마에 있습니다. 우리가 데이터를 얻었을 때, 우리는 그것이 실제로 우리에게 정사각형을 제공한다는 것을 알게 되었고, 그래서 우리는 그 정사각형을 삼각형으로 변환하기 위한 리졸버 함수를 작성합니다.

리졸버 함수는 객체 또는 스칼라를 반환할 수 있습니다. 객체가 반환되면 실행이 완료되는 지점에서 스칼라 값이 반환될 때까지 다음 자식으로 실행이 계속됩니다(위의 예에서 Post에서 Author까지). null이 반환되면 실행이 중지됩니다.

쿼리 및 변형 유형에 대한 확인자는 해결하려는 쿼리 또는 변형 유형과 동일한 이름을 가져야 합니다. 이것이 바로 GraphQL이 호출할 확인자를 아는 방법입니다.

리졸버는 일반 함수와 같으므로 인수도 전달할 수 있습니다. 종종 이러한 매개변수를 분해하는 것이 편리합니다.

여기까지 스키마, 유형 및 리졸버에 대한 간략한 소개입니다.

좋은 웹페이지 즐겨찾기