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
계속하기 전에 이러한 종속성을 자세히 이해하겠습니다.
다음으로 프로젝트 홈 디렉터리에 새 파일 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!