graphQL은 현재 soap => restful => graphQL로 내려오는 차세대 api중 하나이다.
이번에 graphQL의 설명에 대해서는 거두절미하고 빠르게 graphQL을 만드는 방법을 보도록 하자.
일단 graphQL 서버를 express상에서 만드는 예제를 먼저 하도록 하자.
우리는 grapqhQL서버를 express로 만들 것이다.
즉 nodejs가 설치되어 있어야 하며 express로 진행한다.
nodejs설치 포스팅
npm 사용 포스팅
npm install -g express-generator
일단 express generator를 설치해준다.
express generator를 반드시 설치해줄 필요는 없지만 그렇다면 여러분이 귀찮게 폴더 구조를 만들어 주어야한다.
설치 되어있다면 설치할 필요 없다.
express --view=<view엔진> <프로젝트 이름>
이제 설치를 하자.
cd <프로젝트 이름>
npm install
프로젝트의 패키지들을 설치해준다.
npm install --save express-graphql
이제 express와 graphql어뎁터를 설치해준다.
npm install --save graphql
마지막으로 graphql을 설치한다.
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
app.js 최상단에 모듈들을 추가해준다.
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.use로 endpoint /graphql을 추가해준다.
아직 schema와 root를 안만들었는데 이제부터 만들어 보자.
var schema = buildSchema(`
type Query {
hello: String
}
`);
그 다음 스키마를 추가해준다.
스키마에 대한 자세한 설명은 다음 포스팅에서 언급하겠다.
간단히 말하자면 hello라는 값이 있으며 타입은 string, 즉 문자열이라는 것이다.
var root = {
hello: () => {
return 'Hello world!';
},
};
root 값으로 hello 메소드를 선언한다. 출력은 Hello world를 출력하도록한다.
이제 준비는 끝났는데 실행해보자.
포트번호를 정하고 실행해도록 하자.
node bin/www
이제 시작을 해보자
그러면 이렇게 테스트 할 수 있는 경로로 연결된다.
테스트 해보자.
클라이언트 측에서 hello로 요청해보자.
그럼 결과가 위처럼 날라온다.