RubyでCGIにチャレンジ
これまで、作ったアプリケーションはどこか物足りなかった。
そこは、動作がインタラクティブでなかったからだと思います。
Webサイトでユーザとインタラクティブなやり取りをするためには、やはりCGIでしょうか?
今日は、いままで、やっていそうでやっていなかったRubyでCGIを作るということに挑戦してみました。
CGIを作るには、次の作業をおこないます。
(1)FORMをつくります
(2)FORMの入力を変数に代入して、その入力を処理するプログラムにおくります
(3)処理プログラムで入力に受け取って、処理(検索など)をします
(4)処理した結果を表示します(HTMLを生成するなど)
作業が一定なので、コードも一度作ってしまえば、ほとんどの部分が再利用できます。
簡単なコードを示しておきます。
簡単にご理解いただけるとおもいます。
手抜きに見えますが、要点はこれだけだと思います。
(1)FORMをつくります
(2)FORMの入力を変数に代入して、その入力を処理するプログラムにおくります
<center>
<form action="form.cgi" method="POST">
<input type="text" name="keywords" style="width:210px;">
<input type="submit" value="Search">
</form>
</center>
(3)処理プログラムで入力に受け取って、処理(検索など)をします
(4)処理した結果を表示します(HTMLを生成するなど)
require "cgi"
cgi = CGI.new
params = cgi["paramName"].to_s
result = doSomething( params)
html = createHTML( result)
puts html
早速、「Ajaxデモのショーケース 「MiniAjax.com」」というエントリーで紹介した、Amazonの商品(いまのところ本だけです)を一覧表示するプログラムに、CGIを利用して検索機能をつけてみました。
できたのがこちらのアプリケーションです。
やはり、インタラクティブだとぜんぜんおもしろいですね。
これで、RubyでのCGIの作り方の基本がつかめました。
これまでに作ったアプリケーションもWeb上でインタラクティブに利用できるように形へ修正していきたいと思います。
(参考)
○「RubyでCGIを作ろう」
○「Rubyリファレンスマニュアル CGI」