Express 및 Apollo 서버로 GraphQL 서버 만들기

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

Apollo Server는 노드 패키지로 제공됩니다. 이를 사용하여 GraphQL 요청을 수락하는 서버를 만들 수 있습니다.

이 기사에서는 Express와 함께 사용하여 자체 GraphQL 서버를 만드는 방법을 살펴보겠습니다.

Apollo 서버 시작하기


express-apollo-server 를 설치하여 시작합니다.

Express와 함께 설치하려면 다음을 실행합니다.

npm install apollo-server-express express


그런 다음 index.js 파일을 만들고 다음을 추가합니다.

const express = require('express');  
const { ApolloServer, gql } = require('apollo-server-express');
const books = [  
  {  
    title: 'JavaScript for Dummies',  
    author: 'Jane Smith',  
  },  
  {  
    title: 'JavaScript Book',  
    author: 'Michael Smith',  
  },  
];

const typeDefs = gql`  
  type Book {  
    title: String  
    author: String  
  } type Query {  
    books: [Book]  
  }  
`;

const resolvers = {  
  Query: {  
    books: () => books,  
  },  
};

const app = express();  
const server = new ApolloServer({ typeDefs, resolvers });  
server.applyMiddleware({ app });
app.listen(3000, () => console.log('server started'));


위의 코드에서 books 배열에 데이터를 생성하여 기본 Apollo GraphQL 서버를 생성했습니다.

그런 다음 전달된 스키마 정의 문자열과 함께 gql 태그를 사용하여 스키마를 생성하고 이를 typedefs 상수에 할당했습니다.

쿼리 유형은 항상 필요하므로 서버에서 데이터를 쿼리할 수 있습니다. 서버가 없으면 실행되지 않습니다.
Booktitle 필드가 있는 author 유형을 만들었습니다. 그런 다음 books 의 배열을 반환하는 Book 쿼리를 만들었습니다.

다음으로 생성한 데이터를 쿼리할 수 있도록 resolvers를 생성했습니다. books 배열을 반환하기 위해 books 확인을 방금 만들었습니다.

마지막으로 서버를 로드하기 위한 다음 초기화 코드가 있습니다.

const app = express();  
const server = new ApolloServer({ typeDefs, resolvers });  
server.applyMiddleware({ app });app.listen(3000, () => console.log('server started'));


그런 다음 브라우저에서 /graphql로 이동하면 쿼리를 테스트하기 위한 UI가 표시됩니다.

서버를 실행하려면 다음을 실행합니다.

node index.js


다음을 실행하여 서버를 테스트할 수 있습니다.

{  
  books {  
    title  
    author  
  }  
}


그런 다음 가운데에 있는 화살표 버튼을 클릭하면 다음과 같이 표시됩니다.

{  
  "data": {  
    "books": [  
      {  
        "title": "JavaScript for Dummies",  
        "author": "Jane Smith"  
      },  
      {  
        "title": "JavaScript Book",  
        "author": "Michael Smith"  
      }  
    ]  
  }  
}


응답으로.

결론


expressexpress-apollo-server 패키지를 설치하여 Express로 간단한 Apollo GraphQL 서버를 만들었습니다.

그런 다음 유형 정의가 있는 문자열을 gql 태그에 전달하여 유형 정의를 생성했습니다.

그렇게 한 후에는 쿼리에서 매핑된 응답을 반환하는 리졸버를 만들었습니다.

그런 다음 서버를 실행하여 쿼리를 만들고 데이터를 반환합니다. Express Apollo 서버와 함께 제공되는 /graphql 페이지로 이동하여 테스트할 수 있습니다.

좋은 웹페이지 즐겨찾기