GraphQL-API vs Rest-API

Jae·2023년 8월 11일
0

백엔드 - Node.js

목록 보기
6/10

GraphQL-API vs Rest-API 코드 비교

  • Rest-API 에서는 서버를 띄우기 위해 express를 사용했지만 GraphQL-API에서는 @apollo/server를 사용한다.
  • 기본 GraphQL-API 코드
// 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 주소로 접속
profile
Back-end Developer

0개의 댓글