Who’s the BOSS?



  Christian Heilmann, Sao Paulo, Brazil, 06/11/2008 (brhackday08)
I’m Chris.




Hello I am Chris
I live in London, England
But originally I am German
Doesn’t matter though, both
countries keep losing against
   you playing football...
I like easy access to things.
I also like easy Math.
>
Here’s what I can help you
   with during hack day:
JavaScript, Accessibility, YUI,
 CSS, APIs, Flickr, Delicious ...
Today I am here to tell you
 quickly something about
           BOSS.
So who’s the BOSS then?
BOSS is Build Your Own
   Search Service:
http://developer.yahoo.com/search/boss/
To use it, you need a
   Application ID:
https://developer.yahoo.com/wsregapp/
And there is full
 documentation available:
http://developer.yahoo.com/search/boss/boss_guide/
Happy Hacking!
... oh alright then ...
You can get the code
 examples I will show here:
http://icant.co.uk/stuff/bosscodebr.zip
Say you want to search the
     web for donkeys.
Because
Donkeys alright then ...
   ... oh
 Rock!
Using BOSS you can do this
  with a REST API and display
the results any way you want!
The REST API:
boss.yahooapis.com/ysearch/{type}/v1/{search}
The REST API:
boss.yahooapis.com/ysearch/{type}/v1/{search}

     type is what you want to
              search:
web: the ...
The REST API:
boss.yahooapis.com/ysearch/{type}/v1/{search}

  search is the term to look for
         (url-encoded)
Put “...
The REST API:
boss.yahooapis.com/ysearch/{type}/v1/{search}

            Other parameters:
appid: your app ID (needed)

co...
Web search REST API:
 boss.yahooapis.com/ysearch/web/v1/{search}

              Extra parameters:
filter: To filter out na...
Image search REST API:
boss.yahooapis.com/ysearch/images/v1/{search}

              Extra parameters:
filter: no nudies

d...
News search REST API:
 boss.yahooapis.com/ysearch/news/v1/{search}

             Extra parameters:
age: how old the news a...
There are restrictions how to
     display results and
information as to what data
        comes back.
For this, read the guide!
http://developer.yahoo.com/search/boss/boss_guide/
Everybody Duck!
There will be code
The easiest way to use BOSS is
      using JavaScript.
http://boss.yahooapis.com/
ysearch/web/v1/donkeys?
  format=json&appid={id}
{quot;ysearchresponsequot;:
{quot;responsecodequot;:quot;200quot;,quot;nextpagequot;:quot;/ysearch/web/
v1/donkeys?
format...
To use this across domains,
 simply define a callback
        parameter:
http://boss.yahooapis.com/
  ysearch/web/v1/donkeys?
format=json&callback=foundd
      onkeys&appid={id}
founddonkeys({quot;ysearchresponsequot;:
{quot;responsecodequot;:quot;200quot;,quot;nextpagequot;:quot;/ysearch/web
/v1/do...
All you then need to do is put
 this url in a script node and
   write the founddonkeys
            function:
<div id=quot;searchresultsquot;></div>
 <script type=quot;text/javascriptquot;>
   function founddonkeys(o){
     var donk...
document.getElementById('searchresults').appendChild(r
esults);
   }
 </script>
 <script type=quot;text/javascriptquot; ch...
Two problems though:
First of all – without JavaScript
     there are no donkeys!
Secondly – you can only find
         donkeys!
The solution: Event Handling
     and dynamic script
        generation.
<p>Warning: this is terrible code, USE A LIBRARY INSTEAD!</p>
<ul id=quot;searchesquot;>
  <li><a href=quot;http://search....
<script type=quot;text/javascriptquot; charset=quot;utf-8quot;>
  function founddonkeys(o){
    var donkeys = o.ysearchres...
var APIkey = 'TX6b4XHV34EnPXW0sYEr51hP1pn5O8KAGs'+
  '.LQSXer1Z7RmmVrZouz5SvyXkWsVk-';
  var searchlinks = document.getEle...
*click*
Using the YUI library (YUI3
JavaScript and CSS grids) you
 can easily make this much
           cooler:
Now, that was JavaScript,
what about the server side
    magic and BOSS?
Over to my colleague for some
     hot Python action...
Obrigado!




Christian Heilmann | http://wait-till-i.com | twitter: codepo8
JavaScript and BOSS- Open Hack Day Brazil
JavaScript and BOSS- Open Hack Day Brazil
JavaScript and BOSS- Open Hack Day Brazil
JavaScript and BOSS- Open Hack Day Brazil
Upcoming SlideShare
Loading in...5
×

JavaScript and BOSS- Open Hack Day Brazil

5,508

Published on

A quick introduction to the BOSS REST API and how to use it in JavaScript using YUI3. Make sure to also download the code examples:
http://icant.co.uk/stuff/bosscodebr.zip

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,508
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
95
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

JavaScript and BOSS- Open Hack Day Brazil

  1. 1. Who’s the BOSS? Christian Heilmann, Sao Paulo, Brazil, 06/11/2008 (brhackday08)
  2. 2. I’m Chris. Hello I am Chris
  3. 3. I live in London, England
  4. 4. But originally I am German
  5. 5. Doesn’t matter though, both countries keep losing against you playing football...
  6. 6. I like easy access to things.
  7. 7. I also like easy Math.
  8. 8. >
  9. 9. Here’s what I can help you with during hack day: JavaScript, Accessibility, YUI, CSS, APIs, Flickr, Delicious ...
  10. 10. Today I am here to tell you quickly something about BOSS.
  11. 11. So who’s the BOSS then?
  12. 12. BOSS is Build Your Own Search Service: http://developer.yahoo.com/search/boss/
  13. 13. To use it, you need a Application ID: https://developer.yahoo.com/wsregapp/
  14. 14. And there is full documentation available: http://developer.yahoo.com/search/boss/boss_guide/
  15. 15. Happy Hacking!
  16. 16. ... oh alright then ...
  17. 17. You can get the code examples I will show here: http://icant.co.uk/stuff/bosscodebr.zip
  18. 18. Say you want to search the web for donkeys.
  19. 19. Because Donkeys alright then ... ... oh Rock!
  20. 20. Using BOSS you can do this with a REST API and display the results any way you want!
  21. 21. The REST API: boss.yahooapis.com/ysearch/{type}/v1/{search}
  22. 22. The REST API: boss.yahooapis.com/ysearch/{type}/v1/{search} type is what you want to search: web: the interwebs news: new stuff images: pictures
  23. 23. The REST API: boss.yahooapis.com/ysearch/{type}/v1/{search} search is the term to look for (url-encoded) Put “” around terms to ensure the right order, f.e. “donkey fur” (you don’t want to see cats, do you?) Filter with a -, f.e. donkey -shrek Restrict to a site using site:, f.e. donkey site:flickr.com
  24. 24. The REST API: boss.yahooapis.com/ysearch/{type}/v1/{search} Other parameters: appid: your app ID (needed) count: amount of results start: where to start the counting region / lang: country and language format: xml or json sites: restrict to certain sites (comma separated)
  25. 25. Web search REST API: boss.yahooapis.com/ysearch/web/v1/{search} Extra parameters: filter: To filter out nasties, use filter=-porn-hate type: to search different types. You can use html, text, pdf, xl, msword, ppt or groups like msoffice and nonhtml. You can also do a type=msoffice,-xl
  26. 26. Image search REST API: boss.yahooapis.com/ysearch/images/v1/{search} Extra parameters: filter: no nudies dimensions: all, small, medium, large, wallpaper, widewallpaper refererurl: all images in that url url: image at that url
  27. 27. News search REST API: boss.yahooapis.com/ysearch/news/v1/{search} Extra parameters: age: how old the news are in days. Last five days would be “5d”
  28. 28. There are restrictions how to display results and information as to what data comes back.
  29. 29. For this, read the guide! http://developer.yahoo.com/search/boss/boss_guide/
  30. 30. Everybody Duck!
  31. 31. There will be code
  32. 32. The easiest way to use BOSS is using JavaScript.
  33. 33. http://boss.yahooapis.com/ ysearch/web/v1/donkeys? format=json&appid={id}
  34. 34. {quot;ysearchresponsequot;: {quot;responsecodequot;:quot;200quot;,quot;nextpagequot;:quot;/ysearch/web/ v1/donkeys? format=json&appid=[...]&start=10quot;,quot;totalhitsquot;:quot;492 215quot;,quot;deephitsquot;:quot;15700000quot;,quot;countquot;:quot;10quot;,quot;startquot;:quot;0 quot;,quot;resultset_webquot;:[{quot;abstractquot;:quot;Hyperlinked description of the domesticated mammal discussing its appearance, relationship to horses, economic <b>...</b> horses and <b>donkeys</b> were brought back <b>...</b>quot;,quot;clickurlquot;:quot;http:// lrd.yahooapis.com/ _ylc=X3oDMTU4b2NoaDR2BF9TAzIwMjMxNTI3MDIEYXBwaWQDV Fg2YjRYSFYzNEVuUFhXMHNZRXI1MWhQMXBuNU84S0FHcy5MUVN YZXIxWjdSbW1WclpvdXo1U3Z5WGtXc1ZrLQRwb3MDMARzZXJ2a WNlA1lTZWFyY2hXZWIEc2xrA3RpdGxlBHNyY3B2aWQDR3lDaEg wU081cTlmSktUNG1ndTVUUUJNdlNjaS4wa1ZUVndBQVF5Sw-- /SIG=11820sato/**http%3A//en.wikipedia.org
  35. 35. To use this across domains, simply define a callback parameter:
  36. 36. http://boss.yahooapis.com/ ysearch/web/v1/donkeys? format=json&callback=foundd onkeys&appid={id}
  37. 37. founddonkeys({quot;ysearchresponsequot;: {quot;responsecodequot;:quot;200quot;,quot;nextpagequot;:quot;/ysearch/web /v1/donkeys? format=json&callback=founddonkeys&appid=TX6b4XHV3 4EnPXW0sYEr51hP1pn5O8KAGs.LQSXer1Z7RmmVrZouz5SvyX kWsVk- &start=10quot;,quot;totalhitsquot;:quot;492215quot;,quot;deephitsquot;:quot;15700 000quot;,quot;countquot;:quot;10quot;,quot;startquot;:quot;0quot;,quot;resultset_webquot;: [{quot;abstractquot;:quot;Hyperlinked description of the domesticated mammal discussing its appearance, relationship to horses, economic <b>...</b> horses and <b>donkeys</b> were brought back <b>...</b>quot;,quot;clickurlquot;:quot;http:// lrd.yahooapis.com/ _ylc=X3oDMTU4cG05cXJwBF9TAzIwMjMxNTI3MDIEYXBwaWQD VFg2YjRYSFYzNEVuUFhXMHNZRXI1MWhQMXBuNU84S0FHcy5MU VNYZXIxWjdSbW1WclpvdXo1U3Z5WGtXc1ZrLQRwb3MDMARzZX
  38. 38. All you then need to do is put this url in a script node and write the founddonkeys function:
  39. 39. <div id=quot;searchresultsquot;></div> <script type=quot;text/javascriptquot;> function founddonkeys(o){ var donkeys = o.ysearchresponse.resultset_web; var results = document.createElement('ul'); for(var i=0,j=donkeys.length;i<j;i++){ var item = document.createElement('li'); var link = document.createElement('a'); var abstract = document.createElement('p'); link.setAttribute('href',donkeys[i].clickurl); link.innerHTML = donkeys[i].title; item.appendChild(link); abstract.innerHTML = donkeys[i].abstract; item.appendChild(abstract); results.appendChild(item); }
  40. 40. document.getElementById('searchresults').appendChild(r esults); } </script> <script type=quot;text/javascriptquot; charset=quot;utf-8quot; src=quot;http://boss.yahooapis.com/ysearch/web/v1/donkeys? format=json&callback=founddonkeys&appid=xxxquot;></script>
  41. 41. Two problems though:
  42. 42. First of all – without JavaScript there are no donkeys!
  43. 43. Secondly – you can only find donkeys!
  44. 44. The solution: Event Handling and dynamic script generation.
  45. 45. <p>Warning: this is terrible code, USE A LIBRARY INSTEAD!</p> <ul id=quot;searchesquot;> <li><a href=quot;http://search.yahoo.com/search?va=donkeysquot;> Search for Donkeys </a> </li> <li><a href=quot;http://search.yahoo.com/search?va=kittensquot;> Search for kittens </a> </li> </ul> <div id=quot;searchresultsquot;></div>
  46. 46. <script type=quot;text/javascriptquot; charset=quot;utf-8quot;> function founddonkeys(o){ var donkeys = o.ysearchresponse.resultset_web; var results = document.createElement('ul'); for(var i=0,j=donkeys.length;i<j;i++){ var item = document.createElement('li'); var link = document.createElement('a'); var abstract = document.createElement('p'); link.setAttribute('href',donkeys[i].clickurl); link.innerHTML = donkeys[i].title; item.appendChild(link); abstract.innerHTML = donkeys[i].abstract; item.appendChild(abstract); results.appendChild(item); } var resultsbox = document.getElementById('searchresults'); resultsbox.innerHTML = ''; resultsbox.appendChild(results); } var APIkey = 'TX6b4XHV34EnPXW0sYEr51hP1pn5O8KAGs'+ '.LQSXer1Z7RmmVrZouz5SvyXkWsVk-'; var searchlinks = document.getElementById('searches').getElementsByTagName('a'); for(var i=0;searchlinks[i];i++){
  47. 47. var APIkey = 'TX6b4XHV34EnPXW0sYEr51hP1pn5O8KAGs'+ '.LQSXer1Z7RmmVrZouz5SvyXkWsVk-'; var searchlinks = document.getElementById('searches'). getElementsByTagName('a'); for(var i=0;searchlinks[i];i++){ searchlinks[i].onclick = function(){ var searchterm = this.href.split('va=')[1]; var url = 'http://boss.yahooapis.com/ysearch/web/v1/' + searchterm + '?format=json&' + 'callback=founddonkeys' + '&appid=' + APIkey var s = document.createElement('script'); s.setAttribute('type','text/javascript'); s.setAttribute('src',url); document.getElementsByTagName('head')[0].appendChild(s); return false; } } </script>
  48. 48. *click*
  49. 49. Using the YUI library (YUI3 JavaScript and CSS grids) you can easily make this much cooler:
  50. 50. Now, that was JavaScript, what about the server side magic and BOSS?
  51. 51. Over to my colleague for some hot Python action...
  52. 52. Obrigado! Christian Heilmann | http://wait-till-i.com | twitter: codepo8
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×