GraphQL

Featured image

GraphQL 은 API 용 오픈 소스 데이터 쿼리 및 조작 언어 이며 기존 데이터로 쿼리를 수행하기 위한 런타임입니다. GraphQL은 2015 년에 공개되기 전에 2012 년 Facebook 에 의해 내부적으로 개발 되었습니다. 2018 년 11 월 7 일 GraphQL 프로젝트는 Facebook에서 비영리 Linux Foundation이 주최하는 새로 설립 된 GraphQL Foundation으로 옮겨졌습니다. 2012 년 이후 GraphQL의 상승은 GraphQL의 제작자 인 Lee Byron이 정한 채택 일정을 정확하게 따릅니다. 바이런의 목표는 웹 플랫폼에서 GraphQL을 독점적으로 만드는 것입니다.

웹 API 개발에 대한 접근 방식을 제공하며 REST 및 기타 웹 서비스 아키텍처 와 비교 및 ​​대조되었습니다 . 클라이언트가 필요한 데이터의 구조를 정의 할 수 있으며 서버에서 동일한 구조의 데이터가 리턴되므로 지나치게 많은 양의 데이터가 리턴되는 것을 막을 수 있지만 이는 쿼리 결과의 웹 캐싱이 얼마나 효과적인지에 영향을 줍니다 . 쿼리 언어의 유연성과 풍부함은 단순한 API에는 적합하지 않은 복잡성을 추가합니다. 형식 시스템, 쿼리 언어 및 실행 의미, 정적 유효성 검사 및 형식 내부 검사로 구성됩니다.

GraphQL은 데이터 변경 (실시간 업데이트 – WebHooks를 사용하여 가장 일반적으로 구현)을 읽고, 쓰고 (mutating) 구독하는 것을 지원합니다. GraphQL 서버는 Haskell , JavaScript , Perl , Python , Ruby , Java , C ++ , C # , Scala , Go , Elixir , Erlang , PHP , R 및 Clojure.

2018 년 2 월 9 일 GraphQL 스키마 정의 언어 (SDL)가 사양의 일부가되었습니다.

Example

POST request:

{
    orders {
        id
        productsList {
            product {
                name
                price
            }
            quantity
        }
        totalAmount
    }
}

Answer:

{
    "data": {
        "orders": [
            {
                "id": 1,
                "productsList": [
                    {
                        "product": {
                            "name": "orange",
                            "price": 1.5
                        },
                        "quantity": 100
                    }
                ],
                "totalAmount": 150
            }
        ]
    }
}

See also

References

https://graphql.org/

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

https://medium.com/@giljae/graphql-%EC%B1%84%ED%83%9D-%ED%9B%84-netflix%EA%B0%80-%EB%B0%B0%EC%9A%B4-%EA%B2%83%EB%93%A4-2443180096da