[typescript] GraphQL-js에서의 타입 기반 HTTP 요청 및 응답 처리 방법
GraphQL은 API를 위한 쿼리 언어 및 런타임 시스템을 제공하는데, JavaScript로 구현된 graphql-js
라이브러리를 통해 타입 기반 HTTP 요청 및 응답 처리를 단순하게 할 수 있습니다. GraphQL-js가 제공하는 도구들을 이용하여 HTTP 요청과 응답의 타입을 선언하고 처리할 수 있습니다.
GraphQL-js와 함께하는 HTTP 요청 처리
GraphQL-js를 사용하여 HTTP 요청을 처리하려면 먼저 express
나 koa
와 같은 웹 프레임워크를 설정해야 합니다. 그런 다음 HTTP POST 요청을 받아들이고, 요청 본문을 분석하여 GraphQL 쿼리를 실행합니다.
아래는 express
를 이용한 기본적인 예제코드입니다.
import express from 'express';
import { graphqlHTTP } from 'express-graphql';
import { GraphQLSchema, GraphQLObjectType, GraphQLString } from 'graphql';
const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'HelloWorld',
fields: {
message: {
type: GraphQLString,
resolve: () => 'Hello, World'
}
}
})
});
const app = express();
app.use('/graphql', graphqlHTTP({
schema: schema,
graphiql: true
}));
app.listen(4000, () => {
console.log('GraphQL server is running on http://localhost:4000/graphql');
});
위의 예제코드에서 /graphql
엔드포인트로 POST 요청을 보내면 GraphQL-js가 요청을 처리하고 응답을 반환합니다.
HTTP 응답 처리
GraphQL-js를 사용하여 HTTP 응답을 처리하는 것은 일반적으로 HTTP 상태 코드 및 콘텐츠 타입을 설정하고, GraphQL 쿼리 결과를 반환하는 것으로 이루어집니다.
아래는 응답 처리를 위한 Express 미들웨어 코드의 예제입니다.
app.use('/graphql', (req, res) => {
graphqlHTTP({
schema,
graphiql: true
})(req, res);
});
위 코드에서 graphqlHTTP
함수가 HTTP 응답을 생성하고 반환하여 클라이언트에게 전송합니다.
GraphQL-js를 사용하여 타입 기반의 HTTP 요청 및 응답을 처리하는 것은 간단하며, 위의 예시들을 참고하여 구현할 수 있습니다.