"REST Vs GraphQL" é uma comparação correta?

7

Vi em muitos sites que comparam o REST com o GraphQL. depois de investigar essa preocupação (na verdade minha preocupação) de que "é uma comparação correta?", estou mais confuso. Como o REST tem uma definição diferente do GraphQL, essa pergunta me preocupa que, por que seremos capazes de comparar dois conceitos diferentes juntos.

na verdade, parece-me que a comparação é algo como isto:

IDE Vs Compilador! ??! ou BMW x6 Vs ISO 18541-5 (veículos rodoviários)

do wiki:

Definição de descanso:

Representational State Transfer (REST) é um estilo de arquitetura de software que define um conjunto de restrições a serem usadas para criar serviços da Web.

Definição de GraphQl:

O GraphQL é uma linguagem de manipulação e consulta de dados de código-fonte aberto para APIs e um tempo de execução para atender a consultas com dados existentes.

por favor, ilumine minha mente com suas respostas. obrigado

m3hr24d
fonte
A página inicial do GraphQL já descreve bem as diferenças. Sobre o que você precisa especificamente de brilho adicional?
Robert Harvey
1
As duas coisas não podem ser comparadas, a menos que você escolha simplificar demais o que é REST e reduzi-lo a meros CRUDS da web por meio de HTTP, o que definitivamente não é. É como comparar SOA com SQL.
LAIV
Você pode adicionar alguns exemplos desses artigos / sites? Isso nos ajuda a conhecer as fontes para esta pergunta :)
CorwinCZ

Respostas:

6

O REST é um estilo arquitetônico, desenvolvido em paralelo à rede mundial de computadores nos anos 90.

A World Wide Web é um aplicativo de referência para o estilo de arquitetura REST (com alguns desvios ).

HTTP é um protocolo de aplicação para transferir documentos através de uma rede.

GraphQL é uma linguagem de consulta e um mecanismo de execução .

Você está certo que comparar diretamente REST e GraphQL é uma bagunça. O que você pode fazer, no entanto, é examinar cuidadosamente os tipos de problemas que eles estavam tentando resolver.

Ao aplicar o princípio de generalidade da engenharia de software à interface do componente, a arquitetura geral do sistema é simplificada e a visibilidade das interações é aprimorada. As implementações são dissociadas dos serviços que prestam, o que incentiva a capacidade de evolução independente. A desvantagem, no entanto, é que uma interface uniforme degrada a eficiência, uma vez que as informações são transferidas de forma padronizada, e não específica para as necessidades de um aplicativo. A interface REST foi projetada para ser eficiente para a transferência de dados hipermídia de alta granularidade, otimizando para o caso comum da Web, mas resultando em uma interface que não é ideal para outras formas de interação arquitetural. Fielding, 2000

No REST, o armazenamento em cache é importante, e a especificação HTTP atual possui um RFC inteiro dedicado à semântica de armazenamento em cache; mas as pessoas que usam o GraphQL aparentemente decidiram que o cache não é significativo para o problema.

O melhor que posso dizer, o GraphQL está fazendo muitas das mesmas opções de acoplamento que o SOAP . Isso não está certo ou errado - apenas um equilíbrio diferente das compensações.

VoiceOfUnreason
fonte
4

Não, essa comparação não é válida.

Como você disse, GraphQL e REST são coisas diferentes, por isso é como comparar maçãs e laranjas.

Essa é uma visão / perspectiva desse problema. O segundo é o oposto - as comparações GraphQL / REST são válidas e muito úteis .

Para entender essa segunda visão, devemos fazer esta pergunta:

Quais são as formas possíveis de entregar meus dados aos clientes? Qual devo escolher?

A resposta à primeira pergunta contém REST e GraphQL (com muitas outras maneiras). Ambos são úteis para entregar dados aos clientes (leitura - criação de APIs). A segunda pergunta é realmente a que está por trás de todas as comparações que você leu.

Comparar formas diferentes de como entregar dados é válido e necessário. Deste ponto de vista, não importa que a natureza das coisas comparadas seja diferente. Ambos podem fazer o trabalho, então você deve compará-los.

É como comparar o gosto de maçãs e laranjas - você pode fazer isso.

Pessoalmente, estou fazendo essa comparação o tempo todo. Muito útil para ensinar aos colegas diferentes maneiras de resolver problemas.

CorwinCZ
fonte