cors 설정
restAPI 처럼 따로 미들웨어를 설정해 줄 필요 없다
const server = new ApolloServer({
typeDefs,
resolvers,
cors : true // 모든 사이트 허용
// cors : { origin : [
// "http://naver.com","http://daum.net" // 특정 사이트만 지정 허용
// ]}
})
parent, args, context, info
restAPI 는 req.body.qqq 로 요청의 body 에 접근한다. GRAPHQL 에서는 args.qqq 로 요청의 body에 접근한다
Mutation : {
createBoards : (_, args)=>{
console.log(args.createBoardInput.writer)
console.log(args.createBoardInput.title)
console.log(args.createBoardInput.contents)
return "게시물 등록에 성공하였습니다"
}
}
typedefs 설정하기
const typeDefs = `#graphql
// 클라이언트가 서버에 데이터를 전달할 때 사용하는 입력 타입을 정의하는데 사용한다.
input CreateBoardInput {
writer : String
title : String
contents : String
}
// 서버에서 반환할 데이터를 정의하는데 사용한다.
type MyResult {
number : Int
writer : String
title : String
contents : String
}
type Query {
fetchBoards : [MyResult] # 배열 안에 객체 1개 이상을 의미! graphql에서는 MyResult[]는 오류
}
type Mutation {
// # 는 graphql 의 주석을 뜻한다
// 입력값에 식별자를 넣어주는 방식을 사용하기 위해 아래와 같이 적는다 ( id 같은 고유식별자 따로 데이터 라벨링 )
# createBoard(writer : String, title : String, contents : String!) : String
createBoard(createBoardInput : CreateBoardInput!) : String
}
`
return 과 res.send
restAPI 에서는 res.send로 요청에 대한 응답을 보낸뒤 return문 실행을 통해 함수를 종료한다.
graphql 에서는 res.send 없이 return문에 데이터를 같이 넣어서 클라이언트의 요청에 응답한다.
728x90
'Backend 백엔드' 카테고리의 다른 글
[ 19 ] 인증번호 전송 API 실습 ( coolsms ) (0) | 2024.08.12 |
---|---|
[ 18 ] 동기 비동기 (0) | 2024.08.12 |
[ 16 ] Apollo Server 로 graphql 서버 구현하기 (0) | 2024.08.07 |
[ 15 ] CORS (0) | 2024.08.07 |
[ 14 ] axios 로 api 전송 실습 (0) | 2024.08.07 |