1 / 40

2012: ql.io and Node.js

June 2012 presentation on ql.io and working with the system inside Node.js applications.

jcleblanc
Télécharger la présentation

2012: ql.io and Node.js

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ql.io and Node.js: Next Generation Open Source Web Querying System Jonathan LeBlanc Developer Evangelist: X.commerce Email: jleblanc@x.com Twitter: @jcleblanc Github: github.com/jcleblanc

  2. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  3. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  4. ql.io: The Problem is API Overload

  5. ql.io: Developing for Mobile

  6. ql.io: Reducing Workload + Processing Reduced Documentation Reduced Code Length Reduced Result Syncing

  7. ql.io: Increasing Performance (Requests)

  8. ql.io: Error Handling and Reporting

  9. ql.io: Open Standard Foundation

  10. ql.io: Using the System Web Endpoint Standalone Server

  11. ql.io: Quering the Web Endpoint HTTP GET http://ql.io/q?s=QUERY

  12. ql.io: Using the Standalone Server Data (internal) ql.io Node Host Data (external)

  13. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  14. Language: Defining a Data Source Include in Request Include in .ql Table

  15. Language: Create Table for Data Source create table TABLE_NAME on select get from "http://api.com/?val1={val1}" using defaults val1="VALUE", val2="VALUE”;

  16. Language: Sample Github Issues Table create table github.issues on select get from "https://github.com/api/v2/json/ issues/list/{user}/{repository}/ {state}/" using defaults state="open";

  17. Language: Obtain Data From New Tables select * from TABLE_NAME where val1="VALUE" and val2="VALUE" limit 10 offset 3;

  18. Language: Sample Github Table Call select * from github.issues where user="jcleblanc" and repository="reddit-php-sdk"; { "comments": 0, "body": "http://www.phpdoc.org/", "title": "Use standardized documentation", "updated_at": "2011/12/11 13:49:07 -0800", "html_url": "https://github.com/jcleblanc/reddit-php-sdk/issues/3", "state": "open” }

  19. Language: Insert Request insert into bitly.shorten (longUrl) values ('http://ql.io/docs'); "http://bit.ly/uZIvmY"

  20. Language: Nested Selects select ItemID, ViewItemURLForNaturalSearch, Location from details where itemId in (select itemId from finditems where keywords='mini cooper'); [ "330730216553", "http://www.ebay.com/itm/Clubman-Auto-Sunroof-Prem-…", "Huntingdon Valley, Pennsylvania" ],

  21. ql.io: The Test Console Test Console: http://ql.io/console

  22. Language: Including Script Routes user = "jcleblanc"; slides = select * from slideshare where user="{user}"; twitter = select * from github.users where user="{user}"; return { "slides": "{slides}", "twitter": "{twitter}" } via route '/social' using method post;

  23. Language: Using Script Routes curl --header "content-type: application/x-www-form-urlencoded" -d "user=jcleblanc" http://localhost:3000/social

  24. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  25. Patching: Including the Monkey Patch create table TABLE_NAME on select get from "http://api.com/?val1={val1}" using defaults val1="VALUE" using patch "patch.js";

  26. Patching: Validating Input Parameters exports['validate param'] = function(args, param, value) { switch(param) { case 'duration' : return !isNaN(value - 0) default: return true; } }

  27. Patching: The Body Patch exports['patch body'] = function() { return { type: 'application/json', content: JSON.stringify({message : 'aok'}) }; }

  28. Patching: The Response Patch exports['patch response'] = function(args){ var body = args.body; //modify response body return body; }

  29. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  30. Node.js: Installing the Package npm install ql.io-engine

  31. Node.js: Including the Engine var Engine = require('ql.io-engine'); var engine = new Engine({ connection: 'close' });

  32. Node.js: Building the Script

  33. Topics We’ll Be Covering Overview of ql.io Language Specifications Monkey Patching & Enhancements Integrating Into Your Node Applications Tools and More

  34. Tools: API Masher Visualization Engine: https://github.com/jcleblanc/api-masher Technology Backbone – ql.io – jQuery – Mustache Templates

  35. Tools: API Masher var format = “<li><a href=‘{{link}}’ target=‘_blank’> <img src=‘{{media:content.media:thumbnail.url}}’ width=‘{{media:content.media:thumbnail.width}}’ height=‘{{media:content.media:thumbnail.height}}’ /></a> <br /><span class=‘small’> <a href=‘{{link}}’ target=‘_blank’>{{title}}</a></span></li>”;

  36. Tools: API Masher var query = “create table slideshare on select get from ‘http://www.slideshare.net/rss/user/{user}’ resultset ‘rss.channel’; select * from slideshare where user=‘jcleblanc’”; var insertEl = “widgetContainer”; parser.push(query, format, insertEl); parser.render();

  37. Tools: API Masher Results Showcase Website: http://jcleblanc.com

  38. Tools: External API Tables Tables Source: https://github.com/jcleblanc/ql.io-tables

  39. ql.io: The Link

  40. Thank You! http://slidesha.re/ql-io-node Jonathan LeBlanc Developer Evangelist: X.commerce Email: jleblanc@x.com Twitter: @jcleblanc Github: github.com/jcleblanc

More Related