Download presentation
Presentation is loading. Please wait.
Published byEssence Hartshorn Modified over 11 years ago
1
Government Data Integration หลักสูตรเบื้องต้นREST songrit@gmail.com 083-788-7769 1
2
วัตถุประสงค์ เข้าใจสถาปัตยกรรม SOA เข้าใจ Web Services การอ่านข้อมูลจากหน้าเว็บ พัฒนา Web Services แบบ REST 2
3
REST Representational State Transfer 3
4
API Directory http://www.programmableweb.com/apis/dir ectory http://www.webmashup.com http://www.webapi.org/ http://www.webservicelist.com/ 4
5
Basic HTML 5
6
Web Document PresentationStructure LayerBehavior HTMLCSSJavaScript 6
7
HTML gdi Hello, world 7
8
CSS gdi Hello, world 8
9
JavaScript gdi Hello, world 9
10
Scrapper 10
11
def test_nokogiri require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open('http://www.google.com/search?q= ruby')) t=[] doc.css('a.l').each do |link| t #{link.content} #{link['href']}" end render :text => t.join(" ") end 11
12
http://scrubyt.org/ sudo gem install scrubyt sudo gem install firewatir 12
13
Google require 'rubygems' require 'scrubyt' google_data = Scrubyt::Extractor.define do fetch 'http://www.google.com/search?hl=en&q=ruby' link_title "//a[@class='l']", :write_text => true do link_url end p google_data.to_hash 13
14
Ebay ebay_data = Scrubyt::Extractor.define do fetch 'http://www.ebay.com/‘ fill_textfield 'satitle', 'ipod‘ submit ; click_link 'Apple iPod‘ record do item_name 'APPLE NEW IPOD MINI 6GB MP3 PLAYER SILVER‘ price '$71.99‘ end next_page 'Next >', :limit => 5 end 14
15
ScRUBYt Installation sudo gem install hpricot sudo gem install mechanize sudo gem install scrubyt 15
16
Lab: ตลาดหลักทรัพย์แห่งประเทศ ไทย http://marketdata.set.or.th/mkt/stockquotati on.do?symbol=pttephttp://marketdata.set.or.th/mkt/stockquotati on.do?symbol=pttep 16
17
Lab: Twitter สร้างเว็บเซอร์วิสที่รับชื่อผู้ใช้ Twitter แล้วส่ง ข้อมูลออกในรูปแบบ XML ชื่อ ที่อยู่ เว็บไซท์ ประวัติ ทดสอบกับชื่อเหล่านี้ songrit, iamnadia, algore, BarackObama 17
18
REST using RoR ความรู้เบื้องต้นเกี่ยวกับ Web Services 18
19
ActiveRecord#to_xml print Book.first.to_xml :only=>[...] :skip_instruct=>true :root=>'books' :indent=>4 :dasherize=>false :skip_types=>true :include=>chapters 19
20
Hash print ({:name=>'song', :lname=>'lee'}.to_xml) 20
21
Hash.from_xml h = Hash.from_xml(File.new("abc.xml")) 21
22
Lab x = <<-EOT 20_000 300_000 50_000 EOT Hash.from_xml(x) 22
23
Builder xml.instruct! xml.comment! "a comment" xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do xml.title "My Atom Feed" xml.subtitle h(@feed.subtitle), "type" => 'html' xml.link url_for( :only_path => false, :controller => 'feed', :action => 'atom' ) xml.updated @updated.iso8601 @entries.each do |entry| xml.entry do xml.title entry.title xml.link "href" => url_for ( :only_path => false, :controller => 'entries', :action => 'show', :id => entry ) xml.id entry.urn xml.updated entry.updated.iso8601 xml.summary h(entry.summary) end 23
24
Yahoo API http://developer.yahoo.com/search/web/V1/ webSearch.html 24
25
http://search.yahoo.com/search?p=gdi 25
26
http://api.search.yahoo.com/WebSearchService/V 1/webSearch?appid=songrit_gdi&query=gdi 26
27
Controller class CodeController < ApplicationController def yahootest query = CGI.escape("SEARCH TEXT") yahookey = "songrit_gdi" url = "http://api.search.yahoo.com/" + "WebSearchService/V1/webSearch?" + "appid=#{yahookey}&query=#{query}" + "&results=3&start=1" result = Net::HTTP.get(URI(url)) @doc = REXML::Document.new result end 27
28
View Title: Summary: Link: "> 28
29
Lab http://sites.google.com/site/songrit/Home/ my-files/rexml_lab.xmlhttp://sites.google.com/site/songrit/Home/ my-files/rexml_lab.xml 29
30
Lab: create new REXML::Document require "rexml/document“ file = File.new( "rexml_lab.xml" ) doc = REXML::Document.new file 30
31
Accessing Elements doc.elements.each("inventory/section") { |element| puts element.attributes["name"] } 31
32
root = doc.root puts root.attributes["title"] puts root.elements["section/item[@stock='44']"].attrib utes["upc"] 32
33
Google Maps ruby script/plugin install git://github.com/joergbattermann/gmaps_o n_rails.git signup at http://www.google.com/apis/maps/signup. html 33
34
environment.rb localhost:3000 GOOGLE_APPLICATION_ID = "ABQIAAAA3HdfrnxFAPWyY- aiJUxmqRTJQa0g3IQ9GZqIMmInSLzwtG DKaBQ0KYLwBEKSM7F9gCevcsIf6WPuI Q" 34
35
View <% map = GoogleMap.new map.markers << GoogleMapMarker.new( :map => map, :lat => 47.6597, :lng => -122.318, :html => 'My House') %> 35
36
36
37
Google Map V3 37
38
function initialize() { var latLng = new google.maps.LatLng(14, 100); var map = new google.maps.Map(document.getElementById('mapCanv as'), { zoom: 8, center: latLng, mapTypeId: google.maps.MapTypeId.ROADMAP }); 38
39
var marker = new google.maps.Marker({ position: latLng, title: 'Point A', map: map, draggable: true }); } google.maps.event.addDomListener(wind ow, 'load', initialize); 39
40
#mapCanvas { width: 500px; height: 500px; } 40
41
Lab All districts in Nontaburi 41
42
Lab get data from http://www.fedspending.org/apidoc.php display top 10 contractors and amount for state of California 42
43
StatXML 43
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.