Graphql-Api 연습!

1) 철수의 나이는 몇살인가요?(나이만 조회해 주세요.)

Input

query{
  fetchProfile(name:"철수"){
    age
  }
}

Output

{
  "data": {
    "fetchProfile": {
      "age": 1
    }
  }
}

2) 영희의 학교는 어디인가요?(학교만 조회해 주세요.)

Input

query {
  fetchProfile(name:"영희"){
    school
  }
}

Output

{
  "data": {
    "fetchProfile": null
  }
}

3) 3번 게시글의 내용과 작성일이 무엇인가요?(내용과 작성일만 조회해 주세요.)

Input

query{
  fetchBoard(number:3){
    createdAt
    contents
  }
}

Output

{
  "data": {
    "fetchBoard": {
      "createdAt": "2021-09-01T03:32:03.744Z",
      "contents": "우리"
    }
  }
}

4) 본인의 이름으로 프로필을 작성해 보세요.

Input

mutation{
  createProfile(
		name:"홍상기"
  	age:30
  	school:"다람쥐 초등학교"){
    message
  }
}

Output

{
  "data": {
    "createProfile": {
      "message": "프로필이 정상적으로 등록되었습니다."
    }
  }
}

5) 본인의 이름으로 게시글을 작성해 보세요.

Input

mutation {
  createBoard(
    writer:"홍상기"
  	title:"첫글"
  	contents:"없음"){
    message
    number
  }
}

Output

{
  "data": {
    "createBoard": {
      "message": "게시물이 정상적으로 등록되었습니다.",
      "number": 125
    }
  }
}

6) 자신의 프로필을 조회해 보세요.

Input

query{
  fetchProfile(
    name:"홍상기"){
    number
    name
    age
    school
    __typename
  }
}

Output

{
  "data": {
    "fetchProfile": {
      "number": 128,
      "name": "홍상기",
      "age": 30,
      "school": "다람쥐 초등학교",
      "__typename": "ProfileReturn"
    }
  }
}

7) 자신의 게시글을 조회해 보세요.

Input

query{
  fetchBoard(
    number:125
  ){
    number
    writer
    title
    contents
    like
    createdAt
  }
}

Output

{
  "data": {
    "fetchBoard": {
      "number": 125,
      "writer": "홍상기",
      "title": "첫글",
      "contents": "없음",
      "like": 0,
      "createdAt": "2021-09-01T05:48:03.883Z"
    }
  }
}

8) 본인의 프로필에서, 학교를 자신이 졸업한 초등학교로 바꿔보세요.

Input

mutation{
  updateProfile(
    school:"소의초등학교"
  ){
    _id
    number
    message
  }
}

Output

{
  "data": {
    "updateProfile": {
      "_id": null,
      "number": null,
      "message": "프로필이 정상적으로 수정되었습니다."
    }
  }
}

9) 본인의 게시글에서, 제목과 내용을 바꿔보세요.

Input

mutation {
  updateBoard(
    number:128
  	title:"변경 제목 입니다."
  	contents:"변경 컨텐츠 입니다."){
    number
    message
  }
}

Output

{
  "data": {
    "updateBoard": {
      "number": null,
      "message": "게시물이 정상적으로 수정되었습니다."
    }
  }
}

10) 자신이 좋아하는 만화 주인공으로 프로필을 작성해 보세요.

Input

mutation{
  createProfile(
    name: "강백호"
		age:18
		school:"북산고"){
    message
    number
  }
}

Output

{
  "data": {
    "createProfile": {
      "message": "프로필이 정상적으로 등록되었습니다.",
      "number": null
    }
  }
}

11) 위 10번에서 작성한 프로필을 삭제해 보세요.

Input

mutation{
  deleteProfile(
    name:"강백호"){
    message
  }
}

Output

{
  "data": {
    "deleteProfile": {
      "message": "프로필이 정상적으로 삭제되었습니다."
    }
  }
}

12) 상품을 하나 만들어 보세요.

Input

mutation{
  createProduct(
    seller:"다팔아요"
  	createProductInput:{
      name:"좋은키보드"
      detail:"엄청 좋아요"
      price:100000
    }){
    number
    _id
    message
  }
}

Output

{
  "data": {
    "createProduct": {
      "number": null,
      "_id": "b06c73d0-9ff0-4a8f-bc45-9080f21c4b1e",
      "message": "상품이 정상적으로 등록되었습니다."
    }
  }
}

13) 위 12번에서 만들었던 상품의 가격을 500원 인상해 보세요.

Input

mutation{
  updateProduct(
    productId:"b06c73d0-9ff0-4a8f-bc45-9080f21c4b1e"
  	updateProductInput:{
      price:100400
    }){
    _id
    number
    message
  }
}

Output

{
  "data": {
    "updateProduct": {
      "_id": null,
      "number": null,
      "message": "상품이 정상적으로 수정되었습니다."
    }
  }
}

14) 위에서 만든 상품을 조회하되, 가격만 조회해 보세요.

Input

query{
  fetchProduct(
    productId:"b06c73d0-9ff0-4a8f-bc45-9080f21c4b1e"
  ){
    price
  }
}

Output

{
  "data": {
    "fetchProduct": {
      "price": 100400
    }
  }
}

15) 조회했던 상품을 삭제해 보세요.

Input

mutation{
  deleteProduct(
    productId:"b06c73d0-9ff0-4a8f-bc45-9080f21c4b1e"){
    message
  }
}

Output

{
  "data": {
    "deleteProduct": {
      "message": "상품이 정상적으로 삭제되었습니다."
    }
  }
}

16) 삭제한 상품이 정말로 삭제되었는지 다시 한번 조회해 보세요.

Input

query{
  fetchProduct(productId:"b06c73d0-9ff0-4a8f-bc45-9080f21c4b1e"){
    detail
  }
}

Output

{
  "data": {
    "fetchProduct": null
  }
}

17) 게시물 목록 중, 2페이지를 조회해 보세요.

Input

query{
  fetchBoards(page:2){
    number
    writer
    title
    contents
    like
    createdAt
  }
}

Output

{
  "data": {
    "fetchBoards": [
      {
        "number": 126,
        "writer": "이중현",
        "title": "코드캠프3일차",
        "contents": "지금이걸하고있다",
        "like": 0,
        "createdAt": "2021-09-01T05:48:47.081Z"
      },
      {
        "number": 125,
        "writer": "홍상기",
        "title": "첫글",
        "contents": "없음",
        "like": 0,
        "createdAt": "2021-09-01T05:48:03.883Z"
      },
      {
        "number": 124,
        "writer": "김여현",
        "title": "코드캠프",
        "contents": "존경스러울만큼 빡센 것 같아요",
        "like": 0,
        "createdAt": "2021-09-01T05:44:24.632Z"
      },
      {
        "number": 123,
        "writer": "홍상기",
        "title": "첫글",
        "contents": "없음",
        "like": 0,
        "createdAt": "2021-09-01T05:43:21.050Z"
      },
      {
        "number": 122,
        "writer": "이지원",
        "title": "update borard",
        "contents": "update",
        "like": 0,
        "createdAt": "2021-09-01T05:34:14.283Z"
      },
      {
        "number": 121,
        "writer": "Lee",
        "title": "Messi",
        "contents": "Film",
        "like": 0,
        "createdAt": "2021-09-01T05:34:12.509Z"
      },
      {
        "number": 120,
        "writer": "나",
        "title": "너",
        "contents": "우리",
        "like": 0,
        "createdAt": "2021-09-01T05:29:58.634Z"
      },
      {
        "number": 118,
        "writer": "곰곰이",
        "title": "아카시아꿀 구매 방법",
        "contents": "인터파크에서 구매 가능",
        "like": 0,
        "createdAt": "2021-09-01T05:29:40.572Z"
      },
      {
        "number": 117,
        "writer": "Lee",
        "title": "Messi",
        "contents": "Film",
        "like": 0,
        "createdAt": "2021-09-01T05:28:25.428Z"
      },
      {
        "number": 116,
        "writer": "부끄러운 곰숙이",
        "title": "달콤한꿀을 구하는 방법",
        "contents": "인터파크에서 구매 가능",
        "like": 0,
        "createdAt": "2021-09-01T05:25:31.040Z"
      }
    ]
  }
}

18) 게시물 목록을 조회할 때, page를 입력하지 않으면, 어떤 결과가 발생하나요?

Input

query{
  fetchBoards{
    number
    writer
    title
    contents
    like
    createdAt
  }
}

Output

{
  "data": {
    "fetchBoards": [
      {
        "number": 140,
        "writer": "이중현",
        "title": "또있데",
        "contents": "숙제가",
        "like": 0,
        "createdAt": "2021-09-01T06:25:25.795Z"
      },
      {
        "number": 139,
        "writer": "이상혁",
        "title": "코딩천재",
        "contents": "코드",
        "like": 0,
        "createdAt": "2021-09-01T06:18:09.318Z"
      },
      {
        "number": 138,
        "writer": "김근아",
        "title": "코딩어때?",
        "contents": "핵어렵",
        "like": 0,
        "createdAt": "2021-09-01T06:16:31.681Z"
      },
      {
        "number": 137,
        "writer": "최권준",
        "title": "이제",
        "contents": "쉬워",
        "like": 0,
        "createdAt": "2021-09-01T06:16:03.188Z"
      },
      {
        "number": 136,
        "writer": "이중현짱",
        "title": "코드캠프3일차",
        "contents": "이거하고있어요",
        "like": 0,
        "createdAt": "2021-09-01T06:05:38.658Z"
      },
      {
        "number": 135,
        "writer": "송경환",
        "title": "코드캠프",
        "contents": "최고",
        "like": 0,
        "createdAt": "2021-09-01T06:01:50.708Z"
      },
      {
        "number": 134,
        "writer": "이지원",
        "title": "my board",
        "contents": "new board",
        "like": 0,
        "createdAt": "2021-09-01T06:01:00.927Z"
      },
      {
        "number": 133,
        "writer": "민지",
        "title": "메모장",
        "contents": "메모장입니다.",
        "like": 0,
        "createdAt": "2021-09-01T06:00:41.469Z"
      },
      {
        "number": 132,
        "writer": "송경환",
        "title": "코드캠프",
        "contents": "최고",
        "like": 0,
        "createdAt": "2021-09-01T06:00:37.059Z"
      },
      {
        "number": 131,
        "writer": "민지",
        "title": "게시글",
        "contents": "게시글 입니다.",
        "like": 0,
        "createdAt": "2021-09-01T05:52:12.548Z"
      }
    ]
  }
}

최근게시글 부터 출력....

19) 프로필이 전체 몇 개가 있는지 확인해 보세요.

Input

query{
  fetchProfilesCount
}

Output

{
  "data": {
    "fetchProfilesCount": 160
  }
}

20) 게시물은 몇 개가 있나요?

Input

query{
  fetchBoardsCount
}

Output

{
  "data": {
    "fetchBoardsCount": 123
  }
}

좋은 웹페이지 즐겨찾기