![Page 1: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/1.jpg)
1
MANDIC + RIVENDEL. ESPECIALISTAS EM CLOUDS.
Minha API deve ser REST?
![Page 2: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/2.jpg)
2
Engenheira de Dados
@alanepontes
Alane Pontes
![Page 3: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/3.jpg)
3
Engenheiro de Software
@ezidio
Everton Tavares
![Page 4: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/4.jpg)
4
Histórico
![Page 5: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/5.jpg)
5
Criado por Roy Fielding, um dos principais criadores do HTTPhttps://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
![Page 6: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/6.jpg)
6
Rest disponibiliza recursos através de padronização de URIs*
*Uniform Resource Identifier
![Page 7: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/7.jpg)
7
Rest é o uso de todo potencial do HTTP
![Page 8: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/8.jpg)
8
Rest x SOAP
![Page 9: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/9.jpg)
9
Rest x SOAP
![Page 10: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/10.jpg)
10
Rest x SOAP
![Page 11: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/11.jpg)
11
Rest é, na maioria das vezes, a primeira escolha para criação de API’s
![Page 12: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/12.jpg)
12
Rest é fácil
![Page 13: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/13.jpg)
13
Rest é comum
![Page 14: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/14.jpg)
14
Existem vários frameworks para trabalhar com Rest
![Page 15: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/15.jpg)
15
Rest tem suas limitações
![Page 16: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/16.jpg)
16
Over-fetching
![Page 17: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/17.jpg)
17
Under-fetching
![Page 18: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/18.jpg)
18
![Page 19: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/19.jpg)
19
/sports/sports/1/sports/1/competitions/sports_with_competitions/sports_with_competitions_but_only_abbreviation
![Page 20: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/20.jpg)
20
Rest é bom para todos os contextos?
![Page 21: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/21.jpg)
21
Alternativas ao Rest
![Page 23: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/23.jpg)
23
GraphQL
+ Criado pelo Facebook+ Não é um protocolo+ Não é um Data Interchange Format+ Focado em grafos+ Permite definir os campos que deseja retornar na consulta+ Separa consultas e mutações+ Permite mais de uma consulta em uma única requisição.+ Consulta definida no body de uma mensagem POST
![Page 24: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/24.jpg)
24
GraphQL
+ Fortemente tipado+ Declativo+ Hierarchical+ Não pertence a uma linguagem especifica+ compatível com qualquer backend
![Page 25: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/25.jpg)
25
GraphQL
type Query { products: [Product] product(id:Int): [Product]}type Product { id: Int name: String tags: [String] price: Float category: Category}type Category { name: String}
{ products: { id name price category: { name } }}
![Page 26: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/26.jpg)
26
GraphQL
type Query { products: [Product] product(id:Int): [Product]}type Product { id: Int name: String tags: [String] price: Double category: Category}type Category { name: String}
{ products: [ { “id”: 1, “name”: “Relogio Casio”, “price”: 270.4, “category”: { “name”: “Relogio” } }, { … } ]}
![Page 27: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/27.jpg)
27
GraphQL
type Query { products: [Product] product(id:Int): [Product]}type Product { id: Int name: String tags: [String] price: Double category: Category}type Category { name: String}
{ product(id = 2): { id name }}
![Page 28: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/28.jpg)
28
GraphQL
type Query { products: [Product] product(id:Int): [Product]}type Product { id: Int name: String tags: [String] price: Double category: Category}type Category { name: String}
{ product: { “id”: 1, “name”: “Relogio Casio” }}
![Page 29: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/29.jpg)
29
GraphQL - Mutations
type Mutation { update(id:Int, name:String): Product delete(id:Int): Boolean}
mutation { update(id: 2, name: “Teste”): { id name } delete(id: 5)}
![Page 30: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/30.jpg)
30
Rest x SOAP
![Page 31: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/31.jpg)
31
Rest x GraphQL
GRAPHQL
![Page 33: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/33.jpg)
33
Falcor
+ Criado pela Netflix+ Focado em grafos+ Permite definir os campos que deseja retornar na consulta+ Somente consultas+ Tipagem fraca+ Possui diversos tipos de providers+ Usar Falcor é como acessar um JSON diretamente.
http://netflix.github.io/falcor/
![Page 34: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/34.jpg)
34
var model = new falcor.Model({
source: new HttpDataSource(baseUrl + '/model.json')
});
var jsonGraph = await model.get(["products", {from: 0, to:10},
["id","name","price"]]);
Falcor
![Page 35: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/35.jpg)
35
/GET?paths=[“products[0..10][‘id’,’name’,’price’]”]{ products: [ { “id”: 1, “name”: “Relogio Casio”, “price”: 270.4 }, { … } ]}
Falcor
![Page 36: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/36.jpg)
36
Falcor
{
categoryById: {
"10": {
product: "Relogios",
done: false,
prerequisites: [{ $type: "ref", value: ["todosById", 54] }]
}, {...}
},
categories: [{ $type: "ref", value: ["categoryById", 10] }, { ... }],
![Page 37: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/37.jpg)
37
Falcor
products: [
{
id: 1
name: "Relogio Casio",
price: 270.4
category: { $type: "ref", value: ["categoryById", 10] }
},
{...}
]
}
![Page 39: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/39.jpg)
39
gRPC
+ Criado pelo Google+ RPC - Remote Procedure Call+ Usa Protocol Buffers & Flat Buffers (Data Interchange Format)+ Simple service defination+ Usa HTTP/2+ Disponível para diversas linguagens (Java, PHP, C++, Go, JavaScript, Ruby,
Python, C#, Objective-C, Android/Java e Dart)
![Page 42: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/42.jpg)
42
gRPC
service ProductService { rpc getProduct (ProductRequest) returns (Product) {}}message ProductRequest { int32 id = 1;}message ProductReply { int32 id = 1; string name = 2; double price = 3;}
![Page 43: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/43.jpg)
43
![Page 44: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/44.jpg)
44
C#
GoPython
![Page 45: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/45.jpg)
45
Um pouco mais sobre o Protocol Buffers
![Page 46: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/46.jpg)
46
Protocol Buffer
+ Garantia de type-safety+ Prevenção de violações de schema+ É gerado simples acessores+ Fast serialização/desserialização
![Page 47: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/47.jpg)
47
Protocol Buffers vs JSON - Deserialização
![Page 48: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/48.jpg)
48
Protocol Buffers vs JSON - Tamanho da Mensagem
![Page 49: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/49.jpg)
49
Flat Buffer
![Page 50: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/50.jpg)
50
Flat Buffer
+ tem mais opções de schemas.+ é indicado para um grande conjunto de dados.+ não desserializa todo o dado até que você o use.
![Page 51: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/51.jpg)
51
Flat buffer vs Protocol Buffers vs Json
![Page 52: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/52.jpg)
52
Outros protocolos
+ WebSocket+ SOAP+ ...
![Page 53: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/53.jpg)
53
Economia
200 Milhões
![Page 54: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/54.jpg)
54
Criar seu próprio protocolo
![Page 55: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/55.jpg)
55
Protocolo próprio
+ Nem sempre é reinventar a roda+ Regra de negócio pode exigir isso+ Arquitetura pode exigir isso
![Page 57: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/57.jpg)
57
Alternativas ao JSON
![Page 58: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/58.jpg)
58
O padrão Rest não obriga utilizar o JSON
![Page 59: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/59.jpg)
59
Alternativas
+ YAML+ XML+ Binary JSON+ Protocol Buffer+ FlatBuffers+ Etc...
![Page 60: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/60.jpg)
Concluindo...
![Page 61: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/61.jpg)
61
Rest é excelente
![Page 62: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/62.jpg)
62
Contexto pode exigir alternativas
![Page 63: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/63.jpg)
63
![Page 64: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/64.jpg)
64
![Page 65: Minha API deve ser REST? MANDIC + RIVENDEL. ESPECIALISTAS … · 2018-12-14 · 23 GraphQL + Criado pelo Facebook + Não é um protocolo + Não é um Data Interchange Format + Focado](https://reader030.vdocuments.pub/reader030/viewer/2022040916/5e8f3d4a33451806f01c69b4/html5/thumbnails/65.jpg)
Obrigado!