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
OSCON 2012: ql.io and Node.js
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jonathan LeBlanc
July 20, 2012
Technology
1
590
OSCON 2012: ql.io and Node.js
OSCON 2012 (July - Portland, OR) presentation by Subbu Allamaraju and myself on ql.io and Node.js
Jonathan LeBlanc
July 20, 2012
Tweet
Share
More Decks by Jonathan LeBlanc
See All by Jonathan LeBlanc
Architecting Developer Relations for a New Development Platform
jcleblanc
0
42
Best practices for application development with Box
jcleblanc
0
6
BoxWorks Developer Training
jcleblanc
0
110
Building Mobile First Experiences on Box Platform
jcleblanc
0
59
Introduction to Box APIs
jcleblanc
1
73
Box Platform Developer Workshop
jcleblanc
2
290
JavaScript App Security: Auth and Identity on the Client
jcleblanc
0
77
Improving Developer Onboarding Through Intelligent Data Insights
jcleblanc
0
74
Better Data with Machine Learning and Serverless
jcleblanc
0
170
Other Decks in Technology
See All in Technology
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
20260204_Midosuji_Tech
takuyay0ne
1
160
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
Cosmos World Foundation Model Platform for Physical AI
takmin
0
940
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
Red Hat OpenStack Services on OpenShift
tamemiya
0
120
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
320
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
150
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
For a Future-Friendly Web
brad_frost
182
10k
How to make the Groovebox
asonas
2
1.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Documentation Writing (for coders)
carmenintech
77
5.3k
Automating Front-end Workflow
addyosmani
1371
200k
Producing Creativity
orderedlist
PRO
348
40k
Marketing to machines
jonoalderson
1
4.6k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Between Models and Reality
mayunak
1
190
Transcript
node.js and ql.io Build Your Own HTTP APIs for Agility
and Scale OSCON July 20, 2012 1
Subbu Allamaraju @sallamar github.com/s3u 2
Jon LeBlanc @jcleblanc github.com/jcleblanc 3
How to consume HTTP APIs cheaply and efficiently 4
5 curl -‐X <HTTP method> <URI>
Real code (randomized)
7
8
9
10
11
12
13
14
Find things from A For each thing, find details from
B For each thing, find more details from C Merge results Use case: 15
Find products Find dominant categories of products Look up category
info Merge categories with products Use case: 16
Get stuff from A If A is down, try from
B Annotate stuff with other stuff from C Ignore some things from the stuff Join all Use case: 17
Producers Client [Really important client] Why don't you give
me an API optimized for my use cases? Server [Really important producer] Thanks. Get a number and stand in the line! 18
Producers Client Server [Really important producer] Thanks. Get a
number and stand in the line! Who gets to decide the right thing? 19 [Really important client] Why don't you give me an API optimized for my use cases?
Build Your Own Optimized APIs 20
21 https://github.com/ql-io/ql.io Platform Engineering
A domain specific language for HTTP client programming 22
cut down lines of code reduce no of requests save
bandwidth 23
24
http://ql.io/console 25
26 Server Web Node.js ql.io Installation Modes
27 curl http://<host>/q?s=query
As a Standalone Server Node Host ql.io Data (internal )
Data (externa l)
# As a node.js module npm install ql.io-‐engine
// Use ql.io from node.js var Engine =
require('ql.io-‐engine'); var engine = new Engine({ //OPTIONS }); var script = '…'; engine.execute(script, function(emitter){ emitter.on("end", function(err, res){ … }); });
Language: Defining a Data Source Include in .ql file
Include in Request
Example: Mustache Templates
Example: jQuery for Cross Domain Reqs
Let’s Do It!
1. Interop via HTTP 2. SQL inspired 3. Implicit orchestration
4. Failure modes 5. Consumer oriented 35
36 code https://github.com/ql-io/ql.io docs/demos http://ql.io https://github.com/jcleblanc/api-masher blog http://ql-io.github.com