Web Service menggunakan rails


Web service menggunakan java & .NET sudah biasa..tp bagaimana jika menggunakan rails ? Rail ? Jangan menganggap enteng rails, meskipun ruby (bahasanya rails) merupakan scripting language kemampuan rails dalam mengakses aplikasi web service tidak kalah dengan java dan .NET. Ruby & rails bisa digunakan sebagai web service client ataupun web service server. Kali ini kita akan menjadikan rails sebagai web service client. Tutorial ini didasarkan pada buku Web Services on Rails yang ditulis oleh Kevin Marshall (diterbitkan oleh o’reilly: maret 2006).

Target tutorial ini minimal anda sudah pernah mencoba membuat aplikasi menggunakan rails. Jika anda belum mengetahui apa itu ruby atau rails bisa melihat postingan sebelumnya dalam blog di sini serta di sini atau langsung ke situs ruby dan rails . Aplikasi yang akan di buat ini web services rails client yang menggunakan arsitektur REST. Web service yang memakai model REST , hanya melakukan query/request melalui URL. Hasil dari request pada umumnya berupa data dalam format xml. Kali ini kita akan menggunakan web services yang disediakan oleh Yahoo search service API (gratis). Untuk menggunakan Yahoo API kita memerlukan Yahoo Developer API Key (gratis juga🙂 ) yang bisa diperoleh di sini.

Yang kita perlukan adalah membuat controller (kita sebut saja sesuai dengan tutorial yang ada dibukunya sebagai code_controller.rb). Selanjutnya membuat controller method untuk mengakses web service dari yahoo sebut saja methodnya adalah yahoo seperti yang ditunjukan pada potongan code di atas.


class CodeController < ApplicationController
  def yahoo
    query = CGI.escape "germany 2006"
    yahookey = "yahookeymilikmu"
    url = "http://api.search.yahoo.com/" + # The URL to the Yahoo!
      "WebSearchService/V1/webSearch?" +   # Search service
      "appid=#{yahookey}&query=#{query}" +
        "&results=100&start=1"
    #make actual request
    result = Net::HTTP.get(URI(url))
    #turn result to REXML document
    @doc = REXML::Document.new result
  end
end

Ada 3 library yang kita perlukan yaitu CGI, NET, REXML. CGI.escape digunakan untuk melakukan url encode dari keyword, sedangkankan Net::HTTP.get digunakan untuk mengirimkan GET request query ke yahoo search. Hasil query selanjutnya di konversi kedalam format REXML document. REXML adalah xml toolkit yang ditulis dengan menggunakan ruby. Class Document pada REXML memiliki method new yang digunakan untuk membuat xml document.

Selanjutnya untuk menampilkan hasol query pada folder app/views/code kita buat file rhtml dengan nama yahoo.rhtml, dengan menambahkan potongan kode seperti dibawah ini:


<%@doc.root.each_element do |rest| %>
  Title:  <%=rest[0].text.to_s%>
  Summary:  <%=rest[1].text.to_s%>
  Link:  <%=rest[2].text.to_s%>
<%end%>

Selanjutnya kita tinggal melakukan ujicoba, buka url http://127.0.0.1:3000/code/yahooo, sebelumnya pastikan dulu klo komputer sudah bisa tersambung dengan internet. Contoh output yang dihasilkan bila kita melakukan query dengan keyword “germany 2006” adalah seperti yang ditunjukan di sini (sengaja tidak ditampilkan di sini karena gambarnya terlalu besar untuk ditampilakan pada layout wordpress).

technorati tags:, , , ,

Diposting menggunakan Flock

Foto diambil dari sun microsystem

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s