GraphQL이 뭔가요?
REST API와는 또 다른 정보전달방식 GraphQL!
익혀서 사용해보시면 그 간편함과 매력에 빠져들게 돼죠.
GraphQL이란 무엇이고 어떻게 구현하며, REST API와 비교하여 어떤 장단점이 있는지
🍕집 아저씨와의 대화를 통해 살펴보기로 해요.
🔗 GraphQL 공식 사이트
GraphQL를 소개하고 언어마다의 기본적인 구현방법을 알려주는 사이트입니다.
🔗 GraphQL 한글 사이트
위의 사이트를 한글로 만나보세요! 😍
📓 영상의 GraphQL 요청 예제들
🍕 모든 토핑 요청
요청
{
toppings {
cheese,
meat,
sausage,
onion,
olive,
mushroom,
pepper
}
}
결과
{
“data”: {
"toppings”: {
“cheese”: “mozarella”,
“meat”: “pork”,
“sausage”: “pepperoni”,
“onion”: “white onion”,
“olive”: “black olive”,
“mushroom”: “button mushroom”,
“pepper”: “bell pepper”
}
}
}
🍕 필요한 토핑만 요청
요청
{
toppings {
cheese,
meat,
sausage
}
}
결과
{
“data”: {
"toppings”: {
“cheese”: “mozarella”,
“meat”: “pork”,
“sausage”: “pepperoni”
}
}
}
🍕 피자 요청
요청
{
pizza (type: "house special") {
dough,
crust,
toppings {
cheese,
meat,
sausage
}
}
}
결과
{
“data”: {
"pizza": {
“dough”: “tae-kwon dough”,
“crust”: “sweet potato”,
“toppings”: {
“cheese”: “mozzarella”,
“meat”: “pork”,
“sausage”: “pepperoni”
}
}
}
}
🏫 반과 학생들의 모든 정보 요청
요청
{
class(class_idx: 1) {
class_idx,
room,
teacher,
students {
student_name,
grade_korean,
grade_english,
grade_math,
grade_science,
guardian_contact,
address
}
}
}
결과
{
“data”: {
"class": {
“class_idx”: “1”,
“room”: “201A”,
“teacher”: “유의태”,
“students”: [
{
“student_name”: “강백호”,
“grade_korean”: 56,
“grade_english”: 38,
“grade_math”: 40,
“grade_science”: 28,
“guardian_contact”: “010-1234-5678”,
“address”: “개발동 얄코빌 202호”
},
{
“student_name”: “채소연”,
“grade_korean”: 100,
“grade_english”: 98,
“grade_math”: 94,
“grade_science”: 100,
“guardian_contact”: “010-2345-6789”,
“address”: “개발동 얄코펠리스 1508호”
},
{
"student_name": "서태웅",
"grade_korean": 60,
"grade_english": 45,
"grade_math": 58,
"grade_science": 43,
"guardian_contact": "010-9876-5432",
"address": "공대동 코딩빌라 321호\n"
}
]
}
}
}
🏫 반 정보 변환 요청
요청
mutation {
createClass(input: {
room: "301A",
teacher: "기파랑"
}) {
class_idx
}
}
결과
{
“data”: {
"createClass”: {
“class_idx”: “4”
}
}
}
🏫 반과 학생들의 필요한 정보만 요청
요청
{
class(class_idx: 1) {
teacher,
students {
student_name,
grade_korean,
}
}
}
결과
{
“data”: {
"class": {
“teacher”: “유의태”,
“students”: [
{
“student_name”: “강백호”,
“grade_korean”: 56
},
{
“student_name”: “채소연”,
“grade_korean”: 100
},
{
“student_name”: “서태웅”,
“grade_korean”: 60
}
]
}
}
}
🏫 반 정보 수정 및 삭제 요청
수정 요청
mutation {
updateClass(class_idx: 4, input: {
room: "301B”,
teacher: “원술랑"
}) {
class_idx
}
}
삭제 요청
mutation {
deleteClass(class_idx: 4) {
class_idx
}
}
🍿 더 자세한 내용은 영상에서 보실 수 있습니다.