>  기사  >  웹 프론트엔드  >  graphql nodejs 쿼리

graphql nodejs 쿼리

WBOY
WBOY원래의
2023-05-25 10:13:37560검색

GraphQL은 API에서 데이터를 요청하는 데 사용할 수 있는 쿼리 언어입니다. API에서 요청할 수 있는 필드와 각 필드의 유형을 정의하는 데 도움이 되는 강력한 형식의 쿼리 언어입니다. GraphQL은 원래 Facebook에서 개발되었으며 이후 오픈 소스로 제공되어 웹 애플리케이션 구축에 널리 사용되었습니다.

Node.js는 JavaScript를 사용하여 서버 측 애플리케이션을 작성할 수 있는 인기 있는 JavaScript 런타임 환경입니다. Node.js의 효율성과 강력한 생태계는 고성능 API를 구축하는 데 이상적입니다. Node.js에는 GraphQL API를 매우 쉽고 효율적으로 사용할 수 있게 해주는 GraphQL 라이브러리가 많이 있습니다.

이 글에서는 GraphQL을 사용하여 Node.js에서 데이터를 쿼리하는 방법을 소개합니다. GraphQL을 사용하여 데이터를 쿼리하기 위해 Node.js 및 Express 프레임워크를 기반으로 하는 간단한 애플리케이션을 사용하겠습니다.

1단계: 간단한 Express 애플리케이션 생성 및 GraphQL 구성

먼저 Node.js 애플리케이션을 생성해야 합니다. Express 프레임워크를 사용하여 애플리케이션을 구축해 보겠습니다. 애플리케이션을 만들기 전에 Node.js와 npm이 시스템에 설치되어 있는지 확인하세요. 터미널에 다음 명령을 입력하면 Node.js가 설치되었는지 확인할 수 있습니다.

node -v

Node.js를 성공적으로 설치했다면 설치된 버전 번호가 표시되어야 합니다.

다음으로 터미널에 새 프로젝트 디렉터리를 만들고 npm을 초기화합니다.

mkdir nodejs-graphql-demo
cd nodejs-graphql-demo
npm init -y

이제 다음 명령을 사용하여 필요한 종속성을 설치하겠습니다.

npm install express graphql express-graphql

계속하기 전에 이러한 종속성을 자세히 이해하겠습니다.

  • Express: Node.js 기반 웹 애플리케이션을 구축하는 데 도움이 되는 웹 애플리케이션 프레임워크입니다.
  • GraphQL: API에서 데이터를 요청하는 데 사용할 수 있는 쿼리 언어입니다.
  • express-graphql: Express 프레임워크용 GraphQL 미들웨어입니다.

다음으로 프로젝트 홈 디렉터리에 새 파일 server.js를 만들고 다음 콘텐츠를 추가하겠습니다.

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');

const app = express();

const schema = buildSchema(`
  type Query {
    message: String
  }
`);

const root = {
  message: () => 'Hello World!'
};

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true
}));

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => console.log(`Server started on port ${PORT}`));

위 코드에서는 먼저 Express, graphqlHTTP 및 buildSchema 모듈을 가져옵니다. 다음으로 Express 인스턴스를 생성하고 buildSchema 함수를 사용하여 간단한 쿼리 스키마를 정의합니다. 쿼리 패턴에는 message라는 쿼리 필드가 하나만 포함되어 있으며 문자열을 반환합니다.

다음으로 "Hello World!"를 반환하는 메시지 함수가 포함된 root라는 JavaScript 개체를 정의합니다. GraphQL에서는 이 객체를 루트 확인자 객체라고 합니다. GraphQL용 미들웨어를 정의하고 방금 생성한 스키마 및 루트 확인자 개체를 사용합니다. 이 미들웨어는 /graphql로 라우팅된 경로에서 GraphQL 서비스를 제공하며, graphiql 옵션을 true로 설정하면 GraphiQL 인터페이스가 활성화됩니다.

마지막으로 Express 인스턴스의 Listen 메서드를 사용하여 애플리케이션을 시작하고 포트 5000에서 수신합니다.

2단계: GraphQL 쿼리 테스트

GraphQL 미들웨어를 성공적으로 구성했으며 이제 쿼리를 테스트할 수 있습니다. 이를 위해 Postman을 사용해 보겠습니다. 먼저 Postman을 설치하고 시작해야 합니다. 터미널에 다음 명령을 입력하여 Postman을 시작합니다.

postman

이제 새 POST 요청을 만들고 URL을 http://localhost:5000/graphql로 설정하겠습니다. 요청 본문에서 GraphQL 쿼리 편집기에 다음 쿼리를 추가합니다.

query {
  message
}

이제 요청을 보내고 응답을 볼 수 있습니다. 응답에는 다음이 포함되어야 합니다.

{
    "data": {
        "message": "Hello World!"
    }
}

보시다시피 GraphQL 쿼리에서 성공적으로 응답을 받았습니다. 더 많은 쿼리 필드와 유형을 사용하여 쿼리를 향상해 보겠습니다.

3단계: 더 많은 쿼리 필드 및 유형 추가

이제 더 많은 필드와 유형을 포함하도록 쿼리 패턴을 확장해 보겠습니다. 다음 예를 살펴보겠습니다.

const schema = buildSchema(`
  type Query {
    message: String
    number: Int
    person: Person
  }

  type Person {
    name: String
    age: Int
    address: Address
  }

  type Address {
    street: String
    city: String
    state: String
    country: String
  }
`);

const root = {
  message: () => 'Hello World!',
  number: () => 42,
  person: () => ({
    name: 'John Doe',
    age: 30,
    address: { 
      street: '123 Main St',
      city: 'Anytown',
      state: 'CA',
      country: 'USA'
    }
  })
};

위 코드에서는 number라는 정수 쿼리 필드와 Person 유형의 개체를 반환하는 person이라는 쿼리 필드를 추가했습니다. 또한 개인 및 주소 유형도 정의합니다.

루트 파서 객체에서는 새로운 필드와 유형에 해당하는 함수를 정의합니다. 메시지와 숫자 필드는 각각 문자열과 정수를 반환하는 반면, 개인 필드는 필드와 값이 우리에 의해 정의된 Person 개체를 반환합니다.

이제 새 쿼리를 테스트해 보겠습니다. 다음 쿼리를 사용할 수 있습니다.

query {
  message
  number
  person {
    name
    age
    address {
      street
      city
      state
      country
    }
  }
}

응답에는 다음이 포함되어야 합니다.

{
  "data": {
    "message": "Hello World!",
    "number": 42,
    "person": {
      "name": "John Doe",
      "age": 30,
      "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "state": "CA",
        "country": "USA"
      }
    }
  }
}

보시다시피 새 필드와 유형을 성공적으로 쿼리했습니다. API에서 더 유용한 데이터를 반환하기 위해 필요에 따라 더 많은 필드와 유형을 추가할 수 있습니다.

결론

이 글에서는 Node.js에서 GraphQL을 사용하여 데이터를 쿼리하는 방법을 배웠습니다. 우리는 Express 프레임워크를 기반으로 간단한 애플리케이션을 만들고 Express 미들웨어와 GraphQL 모듈을 사용하여 프로그래밍 방식으로 데이터를 쿼리했습니다. 또한 쿼리를 향상시키기 위해 더 많은 쿼리 필드와 유형을 추가했습니다. GraphQL은 효율적이고 확장 가능한 API를 구축하는 데 도움이 되는 매우 강력하고 유용한 도구입니다.

위 내용은 graphql nodejs 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.