Backend 백엔드

[ 10 ] 데이터 통신 실습 ( graphql )

박민우_ 2024. 7. 31. 11:23

나쁜 코드 

' 철수 ' 라는 이름이 중복될 수 있으므로 조회에 어려움이 있다. 따라서 코드를 개선해야 한다 

 

// 요청

mutation {
  createProfile(name :"철수", age :12 , school :"떡잎유치원"){
    message
    _id
  }
}

// 결과

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


// 조회 요청

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

 

개선된 코드-1 

// 요청

mutation{
  createBoard(writer :"철우", title : "안녕하세요" , contents :"방가"){
    number
  }
}

// 응답

{
  "data": {
    "createBoard": {
      "number": 25833
    }
  }
}

// 조회 요청

query{
  fetchBoard(number : 25832){
    writer
    title
    contents
  }
}

추가 개선사항 

Update 요청을 확인해보면 데이터와 식별자를 구분하기 어렵다. 식별자와 데이터를 구분해주자 !

 

개선된 코드 -2 

// 요청

mutation {
  createProduct(seller :"밈우" , createProductInput :{
    name :" 마아우스"
    detail :"로지텍은 좋다"
    price :24700
  }){
    _id
    number
  }
}

// 응답

{
  "data": {
    "createProduct": {
      "_id": "d40bcc7f-1144-4333-b94c-d065cd47ca09",
      "number": null
    }
  }
}

// 상품 수정 요청 

mutation{
  updateProduct(productId : "d40bcc7f-1144-4333-b94c-d065cd47ca09" updateProductInput : {
    price :23000
  }){
    message
  }
}

 

 

 

 

 

 

 

 

 

 

서버와 포트 

서버란

클라이언트의 요청에 대해 응답을 서비스 하는 프로그램

포트란

클라이언트의 요청을 올바른 서버 ( 프로그램 ) 에 전달해주기 위한 논리적 통로

728x90