SlideShare uma empresa Scribd logo
1 de 31
GraphQL API + Laravel 5.7
PHPMG Talks 2019
5.8
Jansen Felipe
@jansenfelipe
O que é GraphQL API?
Application Programming Interface
API
O que é GraphQL API?
Utiliza o protocolo de
comunicação HTTP
(assim como o REST)
GET /talk/32
{
"title": "1º PHPMG Talks 2019",
"date": "2019-03-21",
"description": "Estamos de volta..",
"place_id": 931
}
GET /place/931
{
"name": "Sympla",
"address": "R. Fernandes Tourinho 147",
"city": "Belo Horizonte/MG"
}
GET /talk/32/participants
[
{
id: 32723,
document: "00011122233",
name: "Lucas Marques"
},
{
id: 88574,
document: "12345678900",
name: "Augusto Morais"
}
]
É um padrão de API
Criado pelos engenheiros do Facebook
em 2012 e utilizado em seu aplicativo
mobile.
Três anos mais tarde foi entregue a
comunidade open source.
Em 2016 recebeu seu primeiro release.
Uma alternativa ao REST
O que é GraphQL?
{
"title": "1º PHPMG Talks 2019",
"date": "2019-03-21",
"description": "Estamos de volta..",
"place": {
"name": "Sympla"
},
"participants": [
{"name": "Jansen Felipe"},
{"name": "Junior Grossi"}
]
}
GET /graphql?query={
talk(id:1){
title
date
description
place {
name
}
participants {
name
}
}
}
REQUEST RESPONSE
GraphQL + PHP
https://github.com/webonyx/graphql-php
Schema
Responsável por descrever exatamente
quais dados podem ser solicitados.
É a documentação da sua GraphQL API.
Na "raiz" do schema é indicado dois tipos
especiais: Query e Mutation
GraphQL + PHP
Query
Descreve as operações de busca de
dados, os argumentos aceitos e os tipos
possíveis de serem retornados.
Adicionamos uma função anônima na
chave "resolve" que receberá o as regras
de negócio do seu software.
GraphQL + PHP
Mutation
Descreve as operações de alteração de
dados, os argumentos aceitos e os tipos
possíveis de serem retornados.
Adicionamos uma função anônima na
chave "resolve" que receberá o as regras
de negócio do seu software.
GraphQL + PHP
GraphQL + Laravel
https://github.com/supliu/laravel-graphql
Criando um novo projeto Laravel
Executando o projeto localhost
Adicionar o pacote
composer require supliu/laravel-graphql
Setup do pacote
Verificando se deu certo
GraphiQL
An in-browser IDE for exploring
GraphQL.
Star Wars GraphQL API - Example
https://graphql.github.io/swapi-graphql
GraphiQL customizado
Live code

Mais conteúdo relacionado

Semelhante a GraphQL API Laravel

Introducao ao GraphQL
Introducao ao GraphQLIntroducao ao GraphQL
Introducao ao GraphQLMVP Microsoft
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Fernando Henriques
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
 
GraphQL - A Linguagem do Facebook para APIs
GraphQL - A Linguagem do Facebook para APIsGraphQL - A Linguagem do Facebook para APIs
GraphQL - A Linguagem do Facebook para APIsSergio Lima
 
GraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoGraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoLeo Baiano
 
GraphQL com .NET Core
GraphQL com .NET CoreGraphQL com .NET Core
GraphQL com .NET CoreMVP Microsoft
 
GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017Marcos Brizeno
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
GraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveisGraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveisBruno Lemos
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?Wender Machado
 
Gt4, slide
Gt4, slideGt4, slide
Gt4, slideswcb1234
 
Programando com swagger e go DevFestSP '16
Programando com swagger e go   DevFestSP '16Programando com swagger e go   DevFestSP '16
Programando com swagger e go DevFestSP '16Bruno Ferrari
 
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...Renato Groff
 
Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologiaRômulo Jales
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiiMasters
 
ERRC-2014
ERRC-2014ERRC-2014
ERRC-2014LARCC
 
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebula
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebulaAvaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebula
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebulaLARCC
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...Fulvio Mascara
 

Semelhante a GraphQL API Laravel (20)

Introducao ao GraphQL
Introducao ao GraphQLIntroducao ao GraphQL
Introducao ao GraphQL
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
 
GraphQL - A Linguagem do Facebook para APIs
GraphQL - A Linguagem do Facebook para APIsGraphQL - A Linguagem do Facebook para APIs
GraphQL - A Linguagem do Facebook para APIs
 
GraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoGraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita união
 
GraphQL com .NET Core
GraphQL com .NET CoreGraphQL com .NET Core
GraphQL com .NET Core
 
GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Os1
Os1Os1
Os1
 
GraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveisGraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveis
 
Ajax
AjaxAjax
Ajax
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?
 
Gt4, slide
Gt4, slideGt4, slide
Gt4, slide
 
Programando com swagger e go DevFestSP '16
Programando com swagger e go   DevFestSP '16Programando com swagger e go   DevFestSP '16
Programando com swagger e go DevFestSP '16
 
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...
Estendendo as capacidade de seus projetos com Azure Functions e Logic Apps - ...
 
Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologia
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
 
ERRC-2014
ERRC-2014ERRC-2014
ERRC-2014
 
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebula
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebulaAvaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebula
Avaliação e Comparação do Desempenho das Ferramentas OpenStack e OpenNebula
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
 

GraphQL API Laravel