GraphQL
Desenvolvedor | Facebook, e comunidade |
Lançamento | 2015 |
Sistema operacional | multiplataforma |
Estado do desenvolvimento | ativo |
Página oficial | graphql |
GraphQL[1] é uma linguagem de consulta criada pelo Facebook em 2012 e lançada publicamente em 2015.[2] É considerada uma alternativa para arquiteturas REST, além de oferecer um serviço runtime para rodar comandos e consumir uma API.
Em 7 de novembro de 2018, o projeto GraphQL foi movido do Facebook para a recém-criada GraphQL Foundation, hospedada pela Linux Foundation, sem fins lucrativos.[3][4] Desde 2012, a ascensão do GraphQL seguiu de perto o cronograma de adoção estabelecido por Lee Byron, criador do GraphQL.[5]
O GraphQL fornece uma abordagem para o desenvolvimento de APIs da Web e foi comparado e contrastado com REST e outras arquiteturas de serviços da web. Ele permite que os clientes definam a estrutura dos dados necessários, e a mesma estrutura dos dados é retornada do servidor, evitando assim que um excesso de dados seja retornado, com implicações na eficácia do armazenamento em cache da Web dos resultados da consulta. A flexibilidade e a riqueza da linguagem de consulta também adicionam complexidade que pode não valer a pena para APIs simples.[6][7][8]
O GraphQL consiste em um sistema de tipos, linguagem de consulta e semântica de execução, validação estática e introspecção de tipos . Ele suporta leitura, gravação (mutação) e assinatura de alterações nos dados (atualizações em tempo real – mais comumente implementadas usando WebSockets ).[9] Os servidores GraphQL estão disponíveis para várias linguagens de programação, incluindo Haskell, JavaScript,[10] Perl,[11] Python,[12] Ruby, Java, C++,[13] C#, Scala, Go, Rust, Elixir,[14] Erlang, PHP, R, D[15] e Clojure. O resultado de uma única consulta é retornado no formato JSON .
Em 9 de fevereiro de 2018, o GraphQL Schema Definition Language (SDL) tornou-se parte da especificação.[16]
Exemplo
Solicitação POST :
{
orders {
id
productsList {
product {
name
price
}
quantity
}
totalAmount
}
}
Resposta:
{
"data": {
"orders": [
{
"id": 1,
"productsList": [
{
"product": {
"name": "orange",
"price": 1.5
},
"quantity": 100
}
],
"totalAmount": 150
}
]
}
}
Referências
- ↑ «GraphQL: A query language for APIs.» (em inglês). graphql.org. Consultado em 16 de julho de 2017
- ↑ Byron, Lee (14 de setembro de 2015). «GraphQL: A data query language» (em inglês). Code Facebook. Consultado em 16 de julho de 2017
- ↑ «Facebook's GraphQL gets its own open-source foundation». TechCrunch (em inglês). Consultado em 7 de novembro de 2018
- ↑ «The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL - The Linux Foundation». The Linux Foundation (em inglês). 6 de novembro de 2018. Consultado em 7 de novembro de 2018
- ↑ Anthony, Art (8 de março de 2018). «Is GraphQL Moving Toward Ubiquity?». NordicAPIs
- ↑ «GraphQL vs REST: Overview». Phil Sturgeon (em inglês). Consultado em 25 de novembro de 2018
- ↑ «Why use GraphQL, good and bad reasons». Honest Engineering (em inglês). 4 de agosto de 2018. Consultado em 26 de novembro de 2018
- ↑ «GraphQL Fundamentals». Howto GraphQL. Consultado em 4 de julho de 2018
- ↑ «GraphQL». facebook.github.io. Facebook. Consultado em 4 de julho de 2018. Arquivado do original em 18 de julho de 2018
- ↑ «GraphQL js». 16 de outubro de 2021
- ↑ «GraphQL - Perl implementation of GraphQL»
- ↑ «Graphene». graphene-python.org. Consultado em 18 de junho de 2017
- ↑ graphql/libgraphqlparser, GraphQL, 27 de maio de 2020, consultado em 30 de maio de 2020
- ↑ «Absinthe: The GraphQL toolkit for Elixir». Consultado em 19 de julho de 2018
- ↑ «Package graphqld on DUB»
- ↑ «GraphQL SDL included in Github repository»
Ligções externas
- [1]GraphQL: The Documentary no YouTube, em inglês