Backend 백엔드
[ 17 ] GRAPHQL - API 만들기
박민우_
2024. 8. 10. 01:51
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