express
를 사용했지만 GraphQL-API에서는 @apollo/server
를 사용한다. // index.js
import { ApolloServer } from '@apollo/server'
import { startStandaloneServer } from '@apollo/server/standalone'
const typeDefs = `#graphql
type Query {
Boards: String
}
`
const resolvers = {
Query: {
Boards: () => {
return "Hello GraphQL-API"
}
}
}
const server = new ApolloServer({
typeDefs: typeDefs,
resolvers: resolvers
})
startStandaloneServer(server) // 4000
- 서버를 특정 포트로 열어줄 때 (ApolloServer 에서는 포트가 기본 4000으로 설정된다.)
// express
app.listen(3000)
// @apollo/server
startStandaloneServer(server) // 4000
- 해당 Docs에서 서버를 열어 주기 위해 server 생성
const server = new ApolloServer({
typeDefs: typeDefs,
resolvers: resolvers,
});
🚨 추가 : typeDefs는 express에서 보지 못한 낯선 코드 --> express의 경우 swagger를 통해 api-docs를 직접 작성해주었는데 graphql의 경우 해당 부분을 typeDefs에서 swagger와 같은 api-docs를 자동으로 생성해주는 것
- resolvers는 이전 express 서버를 이용할 때의 api와 같은 역할 이다.
// express
app.get('/boards', function (req, res) {
res.send("Hello GraphQL-API")
})
// @apollo/server
const resolvers = {
Query: {
boards: () => {
return "Hello GraphQL-API"
}
}
}
- 그 후 해당 경로 터미널에서 node index.js 명령어로 서버를 실행시키고
http://localhost/4000/graphql
주소로 접속