이번 포스팅에서는 typedef
와 resolver
구조를 구성하는 방법을 알아보도록 하겠습니다.
yarn add merge-graphql-schemas
gql
|
+--User
+--login
+--login.ts
+--login.gql
+--User.gql
schema.ts
server.ts
위와 같이 목적별로 디렉토리를 나누고, 해당 목적에 맞는 API들에 맞는 resolver
와 typedef
를 추가하였습니다. typescript
끼리, resolver
끼리 묶어서 사용하는 패턴도 있으니 편하신 대로 이용하면 좋을 것 같습니다.
Util/healthCheck/healthCheck.ts
export default {
Query: {
hello: (_, { name }) => `Hello ${name || "World"}`
}
};
Util/healthCheck/healthCheck.gql
type Query {
hello(name: String): String!
}
import { resolve } from "path";
import { config } from "dotenv";
import { GraphQLServer } from "graphql-yoga";
import schema from "./schema";
import * as logger from "morgan";
config({ path: resolve(__dirname, "../.env") });
const PORT = process.env.PORT;
const server = new GraphQLServer({ schema });
server.start({ port: PORT }, () =>
console.log(`Server is running on http://localhost:${PORT}`)
);
server.express.use(logger("dev"));
전체코드는 아래 github에서 확인하실 수 있습니다.
https://github.com/toy-crane/graphql-yoga-auth-example