| 
 | 1 | +---  | 
 | 2 | +title: 🍕O que é GraphQL e computação sem servidor?  | 
 | 3 | +---  | 
 | 4 | +# 🍕 Introdução  | 
 | 5 | + | 
 | 6 | +Do [site](https://graphql.org/learn/) da GraphQL  | 
 | 7 | + | 
 | 8 | +> O GraphQL é uma linguagem de consulta para a sua API e um runtime do servidor para executar consultas usando um sistema de tipos definido para os dados. A GraphQL não está vinculada a nenhum banco de dados ou mecanismo de armazenamento específico. Em vez disso, ela se baseia no código e nos dados existentes.  | 
 | 9 | + | 
 | 10 | +Não parece incrível?  | 
 | 11 | + | 
 | 12 | +> Agora traduz, por favor!  | 
 | 13 | + | 
 | 14 | +Com o GraphQL, você poderá definir o chamado servidor GraphQL, no qual será possível executar consultas. Você também poderá consumir a GraphQL de um cliente com uma simples solicitação POST ou usar um componente criado para esta finalidade de fornecedores como Apollo ou Prisma  | 
 | 15 | + | 
 | 16 | +> Por que eu desejaria tudo isso?  | 
 | 17 | + | 
 | 18 | +Muito simples: *negociação de conteúdo*  | 
 | 19 | + | 
 | 20 | +> Poderia explicar melhor?  | 
 | 21 | + | 
 | 22 | +Com a GraphQL você pode solicitar exatamente os dados desejados em praticamente qualquer nível de profundidade.  | 
 | 23 | + | 
 | 24 | +**Vejamos um exemplo**  | 
 | 25 | + | 
 | 26 | +Imagine que você tem uma API REST normal e deseja obter todos os `orders`, `order items` e também deseja saber quais `products` foram pedidos usando a `order_id`. Para isso, você provavelmente executaria consultas como as seguintes:  | 
 | 27 | + | 
 | 28 | +Para obter informações sobre um pedido,  | 
 | 29 | +```  | 
 | 30 | +order-api/orders/{order_id}  | 
 | 31 | +```  | 
 | 32 | + | 
 | 33 | +Para obter os itens de um pedido, você teria que chamar algo assim:  | 
 | 34 | + | 
 | 35 | +```  | 
 | 36 | +order-api/order-items/{order_id}  | 
 | 37 | +```  | 
 | 38 | + | 
 | 39 | +Para saber quais produtos alguém comprou, você teria que fazer isso  | 
 | 40 | + | 
 | 41 | +```  | 
 | 42 | +order-api/order-items/{order_id}/product  | 
 | 43 | +```  | 
 | 44 | + | 
 | 45 | +A implementação exata pode variar, mas o ponto é que são necessárias mais de uma solicitação REST para obter todos os dados que você precisa apresentar em uma página. Obviamente, você pode resolver isso criando pontos de extremidade REST específicos que geram cada exibição em particular.   | 
 | 46 | + | 
 | 47 | +OU você pode usar a GraphQL e tudo o que precisará digitar é o seguinte:  | 
 | 48 | + | 
 | 49 | +```  | 
 | 50 | +orders {  | 
 | 51 | + created,  | 
 | 52 | + who {  | 
 | 53 | + name  | 
 | 54 | + },  | 
 | 55 | + items {  | 
 | 56 | + price,  | 
 | 57 | + quantity  | 
 | 58 | + product {  | 
 | 59 | + name  | 
 | 60 | + }  | 
 | 61 | + }  | 
 | 62 | +}  | 
 | 63 | +```  | 
 | 64 | + | 
 | 65 | +Já se impressionou?  | 
 | 66 | + | 
 | 67 | + | 
 | 68 | + | 
 | 69 | + | 
 | 70 | +## O que vamos criar?  | 
 | 71 | + | 
 | 72 | +Este é um workshop bastante ambicioso. Ensinaremos a você não apenas como criar e consumir uma consulta GraphQL, mas também como os microsserviços podem se ajustar ao mix e, com isso, aprender algumas noções básicas do Docker.  | 
 | 73 | + | 
 | 74 | +Mas ainda não estamos satisfeitos. Queremos que você seja capaz de aprender algumas noções básicas sobre nuvem e hospedagem. Então, para isso, vamos examinar algo realmente incrível: a computação sem servidor. O conceito de computação sem servidor significa que você não precisa se concentrar em VMs ou servidores Web, mas apenas no CÓDIGO. Parece excelente, não é mesmo?   | 
 | 75 | + | 
 | 76 | +O que faremos será pegar a nossa API da GraphQL, colocá-la em uma função sem servidor e, com apenas alguns cliques, por ela e os nossos microsserviços na nuvem e *pronto*: o mundo inteiro poderá usar sua criação.  | 
 | 77 | + | 
 | 78 | +Então será  | 
 | 79 | + | 
 | 80 | +API:  | 
 | 81 | +- Uma API da GraphQL  | 
 | 82 | +- Um par de microsserviços que dão suporte à nossa API  | 
 | 83 | +- Uma função sem servidor  | 
 | 84 | + | 
 | 85 | +Hospedagem  | 
 | 86 | +- a nuvem  | 
 | 87 | + | 
0 commit comments