Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Do RPC ao GraphQL
Search
Alan Michel Willms Quinot
January 14, 2019
Programming
0
39
Do RPC ao GraphQL
Alan Michel Willms Quinot
January 14, 2019
Tweet
Share
More Decks by Alan Michel Willms Quinot
See All by Alan Michel Willms Quinot
JWT
alanwillms
0
49
Webpack ❤ Vue.js
alanwillms
0
24
PHP – principais novidades do 5.3 ao 5.6
alanwillms
0
48
Other Decks in Programming
See All in Programming
Going beyond Apache Parquet's default settings
xhochy
0
130
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.5k
Domain-Driven Transformation
hschwentner
2
1.5k
Code Reviews
bkuhlmann
4
900
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
110
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
280
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
310
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
460
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
170
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.2k
敵対的ポイフル
futabato
0
130
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
20
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Product Roadmaps are Hard
iamctodd
45
9.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Building Effective Engineering Teams - LeadDev
addyosmani
31
1.9k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
How to train your dragon (web standard)
notwaldorf
75
5.2k
A designer walks into a library…
pauljervisheath
201
23k
Building Applications with DynamoDB
mza
88
5.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
13
8.3k
Optimizing for Happiness
mojombo
370
69k
Transcript
None
Era uma vez….
XML é supimpa! • RPC: Remote Procedure Call ◦ Via
HTTP • SOAP: Service Oriented Architecture Protocol ◦ Via HTTP, FTP, SMTP e outros
None
None
REST: Representational State Transfer • URL representa um recurso •
Métodos HTTP representam ações
Método URL Descrição GET /pessoas Lista todos GET /pessoas/42 Mostra
um registro POST /pessoas Cria um registro PATCH ou PUT /pessoas/42 Atualiza um registro DELETE /pessoas/42 Exclui um registro
CHEGUEI!
JSON: JavaScript Object Notation • Mais legível • Compacto •
Rápido • Língua dos browsers
Asynchronous JavaScript And XML
Asynchronous JavaScript And XML ???
Asynchronous JavaScript And JSON!!! AJAJ?
REST JSON AJAX WEB 2.0
Eu quero os dados de: • Uma pessoa • +
os comentários dela • + os pedidos mais recentes dela
Eu quero os dados de: • /v1/pessoas/123 • /v1/pessoas/123/comentarios •
/v1/pessoas/123/pedidos/recentes
Eu quero os dados de: • /v1/pessoas/123?extra=comentarios, pedidos-recentes
GraphQL
GraphQL • Consultas (queries) e interações (mutations) • A consulta
descreve o formato da resposta • Não requer uma tecnologia específica • Não requer HTTP • A implementação gera a documentação
Queries
Mutations
Subscriptions
None
None
None
None
None
None
None
None
None
None
None
Tipos do GraphQL • Escalares (Int, Float, String, Boolean, ID)
• Objetos • Listas • Input • Non-null • Avançado: enum, union, interfaces, etc.
None
Versionamento Vocês já viram isso? /v1/listaPedidos /v2/pedidos /v3/orders ...
None
None
None
None
Bibliotecas para C# / .NET • graphql-dotnet • graphql-net •
Hot Chocolate • etc. JÁ ESCOLHEU?
Referências • https://stackoverflow.com/questions/4862310/js on-and-xml-comparison • https://facebook.github.io/graphql/June2018/ • https://graphql.org/