Usuário(a):TiagoLubiana/GraphQL

Origem: Wikipédia, a enciclopédia livre.

GraphQL é uma linguagem de consulta e manipulação de dados de código aberto para APIs e uma serviço de runtime para atender consultas de dados. [1] O GraphQL foi desenvolvido internamente pelo Facebook em 2012 antes de ser lançado publicamente em 2015. [2]

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ários idiomas, 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[editar | editar código-fonte]

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
            }
        ]
    }
}

Veja também[editar | editar código-fonte]

 

Ligações externas[editar | editar código-fonte]

[[Categoria:Linguagens de modelagem de dados]] [[Categoria:Linguagens de consulta]]

  1. «GraphQL: A query language for APIs.» 
  2. «GraphQL: A data query language». 14 September 2015  Verifique data em: |data= (ajuda)
  3. «Facebook's GraphQL gets its own open-source foundation». TechCrunch (em inglês). Consultado em 7 de novembro de 2018 
  4. «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 
  5. Anthony, Art (8 March 2018). «Is GraphQL Moving Toward Ubiquity?». NordicAPIs  Verifique data em: |data= (ajuda)
  6. «GraphQL vs REST: Overview». Phil Sturgeon (em inglês). Consultado em 25 de novembro de 2018 
  7. «Why use GraphQL, good and bad reasons». Honest Engineering (em inglês). 4 de agosto de 2018. Consultado em 26 de novembro de 2018 
  8. «GraphQL Fundamentals». Howto GraphQL. Consultado em 4 July 2018  Verifique data em: |acessodata= (ajuda)
  9. «GraphQL». facebook.github.io. Facebook. Consultado em 4 July 2018. Arquivado do original em 18 July 2018  Verifique data em: |acessodata=, |arquivodata= (ajuda)
  10. «GraphQL js». 16 October 2021  Verifique data em: |data= (ajuda)
  11. «GraphQL - Perl implementation of GraphQL» 
  12. «Graphene». graphene-python.org. Consultado em 18 de junho de 2017 
  13. graphql/libgraphqlparser, GraphQL, 27 de maio de 2020, consultado em 30 de maio de 2020 
  14. «Absinthe: The GraphQL toolkit for Elixir». Consultado em 19 July 2018  Verifique data em: |acessodata= (ajuda)
  15. «Package graphqld on DUB» 
  16. «GraphQL SDL included in Github repository»