GraphQL 소개
/users
엔드포인트에서 해당 사용자의 이름과 이메일을 간단히 가져올 수 있습니다. 더 복잡한 API를 찾고 몇 가지 이상의 값이 필요한 경우는 어떻습니까? 훨씬 더 많은 데이터, 훨씬 더 많은 엔드포인트, 따라서 훨씬 더 많은 요청이 있을 것입니다!이에 대한 예는 책에 대한 정보가 있는 API에서 데이터를 가져오는 경우입니다. 엔드포인트
example.com/api/book/:title
에서 책 이름을 전달하면 bookId
, authorId
, genre
및 blurb
와 같은 해당 책에 대한 데이터를 받게 됩니다.작성자에 대한 정보를 얻으려면 엔드포인트에 작성자 ID를 입력하는 또 다른 요청을 해야 합니다
example.com/api/author/:id
. 필요한 정보를 얻을 수 있지만 이를 달성하려면 두 가지 요청이 필요합니다. 이는 지루하고 이보다 훨씬 더 많은 요청이 주어지면 따르거나 이해하기 어려울 수 있습니다. GraphQL이 빛나는 곳입니다!GraphQL이란 무엇입니까?
GraphQL은 Facebook에서 개발한 API용 쿼리 언어로, 이를 통해 개발자는 보다 이해하기 쉬운 API를 생성하고 API에서 데이터를 보다 쉽게 가져올 수 있습니다. 쿼리 실행을 위한 서버측 런타임이기도 합니다. 반환해야 하는 데이터 유형을 설명하고 싶은 사용자를 위해 GraphQL은 타이핑도 사용합니다!
책 API 예제를 사용하면 다음과 같이 표시됩니다.
{
book(bookTitle: "Hello World!") {
author(id: 50273) {
name
age
}
id
genre
blurb
}
}
GraphQL을 사용하면 어떤 이점이 있습니까?
위의 코드 스니펫에서 작성자의 ID를 전달하고 있음을 눈치채셨나요? GraphQL을 사용하면 하나의 쿼리에서 필요한 만큼의 데이터를 요청할 수 있기 때문입니다! 해당 책에서 얻은 저자 ID가 주어지면 쿼리에 전달하고 데이터를 가져올 수도 있습니다. 작성자에게 또 다른 id 집합이 있는 경우 해당 집합에서도 데이터를 가져올 수 있습니다! GraphQL의 장점은 쿼리를 한 번에 보내기가 쉬워 읽고 이해하기가 더 쉽다는 것입니다.
반환되는 데이터를 선택적으로 사용할 수도 있습니다! API에서
blurb
속성이나 age
속성이 필요하지 않은 경우 간단히 생략할 수 있습니다. 새 쿼리는 다음과 같습니다.{
book(bookTitle: "Hello World!") {
author(id: 50273) {
name
}
id
genre
}
}
이를 통해 개발자는 요청에 보다 유연하게 대처할 수 있으며 실제로 필요한 데이터를 위한 공간도 절약할 수 있습니다.
자신의 데이터베이스에 GraphQL을 사용하는 경우 엔드포인트에 대해 덜 걱정할 수 있는 방법이 될 수 있습니다. 종종 GET, POST, PUT 및 DELETE와 같은 다른 요청을 처리하게 됩니다. 이는 모두 서로 다른 작업을 수행하기 위한 여러 요청을 의미하지만 GraphQL을 사용하면 쿼리가 하나의 엔드포인트로 전송됩니다. 해당 끝점에는 쿼리의 데이터와 관련하여 필요한 모든 작업을 수행할 수 있는 도우미 함수가 있습니다.
데이터베이스 끝점을 계획하는 것은 특히 앱이 크게 확장되는 경우 번거로운 일이 될 수 있습니다. GraphQL을 사용하면 경로 충돌에 대한 걱정이나 필요 이상으로 끝점을 길게 만들지 않고도 필요한 데이터를 훨씬 쉽게 얻을 수 있습니다.
GraphQL은 데이터 요청을 훨씬 더 쉽고 이해하기 쉽게 만드는 유용한 도구입니다. 여러 언어에서 사용할 수 있다는 사실은 기술 스택이 다른 많은 프로젝트에 사용할 수 있음을 의미합니다! 요청한 데이터를 더 잘 제어하고 GraphQL을 사용해 보세요!
Reference
이 문제에 관하여(GraphQL 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seal125/graphql-intro-1mke텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)