투케이2K

24. (TWOK/STUDY) [투케이 학습] : GraphQL 유형 종류 학습 - Query , Mutation , Subscriptions 본문

투케이2K 학습정리

24. (TWOK/STUDY) [투케이 학습] : GraphQL 유형 종류 학습 - Query , Mutation , Subscriptions

투케이2K 2024. 9. 3. 15:21

[제 목]

[투케이 학습] : GraphQL 유형 종류 학습 - Query , Mutation , Subscriptions

 

[설 명]

 

-----------------------------------------------------------------------------------------
[GraphQL 요약 설명]
-----------------------------------------------------------------------------------------

1. GraphQL 은 페이스북에서 만든 쿼리 언어로, API 를 위한 쿼리 언어로 주로 사용됩니다

2. GraphQL 서비스는 타입과 필드를 정의하고, 각 타입의 필드에 대한 함수로 구현됩니다

   type Query {
     me: User
   }

   type User {
     id: ID
     name: String
   }

3. GraphQL 서비스가 실행되면 GraphQL 쿼리를 전송하여 유효성 검사 및 실행 >> 수신된 쿼리는 정의된 타입과 필드를 참조해 함수를 실행하여 결과를 생성합니다

4. GraphQL 서비스에는 Queries , Mutations , Subscriptions 방식이 있으며, 해당 방식을 통해 데이터 읽기 및 수정 등 다양한 통신을 시도할 수 있습니다

5. REST API 와의 주요 차이점 : 

  - REST API 는 URL, METHOD 등을 조합해 요청하는 방식으로 다양한 Endpoint 가 존재하지만, gql 은 단 하나의 Endpoint 를 사용하며 쿼리를 조합해 결과를 요청합니다

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[Queries 설명]
-----------------------------------------------------------------------------------------

1. 쿼리는 읽기 전용으로 Http Get 방식과 유사하며, [서버에 정보 요청 >> 정보 조회 >> 응답 결과 반환] 방식으로 사용합니다

2. 쿼리 사용시 정의 된 Query 키워드는 서버에 요청을 보내는 클라이언트의 모든 진입점을 정의합니다

3. Query 작성 예시 : 

type Person { 
  id: ID!
  name: String
  age: Int
}
type Query {                                   
  people: [Person]
}

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[Mutations 설명]
-----------------------------------------------------------------------------------------

1. Mutations 은 쓰기 작업을 수행하며, Http Post , Put 방식과 유사하며, [서버에 수정 요청 >> 정보 수정 >> 응답 결과 반환] 방식으로 사용합니다

2. Mutations 사용시 정의 된 Mutation 키워드는 서버에 요청을 보내는 클라이언트의 수정 요청의 진입점을 정의합니다

3. Mutations 작성 예시 : 

type Person { 
  id: ID!
  name: String
  age: Int
}
type Mutation {
  addPerson(id: ID!, name: String, age: Int): Person
}

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[Subscriptions 설명]
-----------------------------------------------------------------------------------------

1. Subscriptions (구독) 은 서버와 클라이언트 간의 지속적인 양방향 연결을 여는 WebSockets 에 사용됩니다

2. Subscriptions 은 일반적으로 클라이언트가 서버를 구독 후 >> 실시간 변경 된 데이터에 관해 메시지를 수신 받을 때 사용합니다

  >> 서버 측 변경이 있거나 서버에서 이벤트를 수행할 때마다 구독한 클라이언트가 업데이트를 받게 됩니다

3. Subscriptions 작성 예시 : 새로운 Person이 추가될 때마다 구독한 클라이언트에게 메시지를 보냅니다

type Subscription {                                   
  personAdded: Person
}

subscription personAddedOperation {
  personAdded {
    id
    name
  }
}

-----------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

https://docs.aws.amazon.com/ko_kr/appsync/latest/devguide/graphql-types.html

https://graphql-kr.github.io/learn/

https://www.postman.com/postman/published-postman-templates/graphql-request/63ce7506f7662654d43ddf6a

-----------------------------------------------------------------------------------------

 

반응형
Comments