그래프QL
GraphQL![]() | |
개발자 | 페이스북, 커뮤니티 |
---|---|
초기 릴리즈 | 2015년 9월 14일 ( |
안정적 해제 | 2018년 6월[1] |
리포지토리 | github |
기록 위치 | Java, JavaScript, Ruby, Scala 등에 구현. |
운영 체제 | 크로스 플랫폼 |
웹사이트 | graphql |
GraphQL은 API를 위한 오픈소스 데이터 조회 및 조작 언어, 기존 데이터로 쿼리를 이행하기 위한 런타임이다.[2]그래프QL은 페이스북이 2012년 내부적으로 개발한 뒤 2015년 공개됐다.[3]2018년 11월 7일, GraphQL 프로젝트는 페이스북에서 비영리 Linux 재단이 주최하는 새롭게 설립된 GraphQL 재단으로 이전되었다.[4][5]2012년부터 GraphQL의 상승은 GraphQL의 창시자인 Lee Byron이 정한 채택 연대표를 정확하게 따르고 있다.[6]Byron의 목표는 웹 플랫폼을 통해 GraphQL을 보편적으로 만드는 것이다.null
웹 API 개발에 대한 접근방식을 제공하며, REST 및 기타 웹 서비스 아키텍처와 비교 및 대조되었다.고객이 요구하는 데이터의 구조를 정의할 수 있도록 하고, 동일한 데이터 구조가 서버에서 반환되므로 지나치게 많은 양의 데이터가 반환되는 것을 방지하지만, 이는 쿼리 결과의 웹 캐싱이 얼마나 효과적인지 함축하고 있다.질의 언어의 유연성과 풍부함 또한 단순한 API에는 가치가 없을 수 있는 복잡성을 더한다.[7][8][9]이름에도 불구하고, GraphQL은 네오4j와 같은 본격적인 그래프 데이터베이스나 심지어 전이적 폐쇄를 지원하는 SQL의 방언에서도 찾을 수 있는 그래프 작업의 풍부함을 제공하지 않는다.예를 들어, 개인의 부모를 보고하는 GraphQL 인터페이스는 한 번의 질의로 모든 조상의 집합을 반환할 수 없다.null
GraphQL은 유형 시스템, 질의 언어 및 실행 의미론, 정적 검증 및 유형 내성으로 구성된다.데이터(실시간 업데이트 - 가장 일반적으로 Websockets를 사용하여 구현)에 대한 읽기, 쓰기(수정) 및 변경에 대한 구독을 지원한다.[10]GraphQL 서버는 Haskell,[11] JavaScript,[12] Perl,[13] Python,[14] Ruby, Java, C++,[15] C#, Scala, Go, Rust, Elixir,[16] Erlang, PHP, R, D[17], Clojure 등 다국어가 가능하다.null
2018년 2월 9일, SDL(GraphQL Schema Definition Language)이 규격의 일부가 되었다.[18]null
예
POST 요청:
{ 주문 { id productList { 제품 목록 {name price } 수량 } 총액 } }
응답:
{ "데이터": { "주문": [ { "id": 1, "제품 목록": [ { "제품": { "이름": "orange", "가격": 1.5 }, "quantity": 100 } ], "총액": 150 } ] } }
참고 항목
참조
- ^ "GraphQL June 2018 Release Notes". Retrieved 26 March 2019.
- ^ "GraphQL: A query language for APIs".
- ^ "GraphQL: A data query language". 14 September 2015.
- ^ "Facebook's GraphQL gets its own open-source foundation". TechCrunch. Retrieved 7 November 2018.
- ^ "The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL - The Linux Foundation". The Linux Foundation. 6 November 2018. Retrieved 7 November 2018.
- ^ Anthony, Art (8 March 2018). "Is GraphQL Moving Toward Ubiquity?". NordicAPIs.
- ^ "GraphQL vs REST: Overview". Phil Sturgeon. Retrieved 25 November 2018.
- ^ "Why use GraphQL, good and bad reasons". Honest Engineering. 4 August 2018. Retrieved 26 November 2018.
- ^ "GraphQL Fundamentals". Howto GraphQL. Retrieved 4 July 2018.
- ^ "GraphQL". facebook.github.io. Facebook. Archived from the original on 18 July 2018. Retrieved 4 July 2018.
- ^ "Hasura – Instant Realtime GraphQL on Postgres". Hasura. Retrieved 24 October 2019.
- ^ "GraphQL js". 16 October 2021.
- ^ "GraphQL - Perl implementation of GraphQL".
- ^ "Graphene". graphene-python.org. Retrieved 18 June 2017.
- ^ graphql/libgraphqlparser, GraphQL, 27 May 2020, retrieved 30 May 2020
- ^ "Absinthe: The GraphQL toolkit for Elixir". Retrieved 19 July 2018.
- ^ "Package graphqld on DUB".
- ^ "GraphQL SDL included in Github repository".
외부 링크