proxy的動作をrailsで作りたい。

1.あるURLからのresponseをstring変数に保持
2.string.replaceで置き換え
3.表示

みたいなことをさっくりやりたい。
DB無しでいいと思う。

意外とrailsはよくわからずscaffoldばっかり使ってたが、単純にgenerate controllerだけでいけば大丈夫な気がする。

参照サイト

http://www.slideshare.net/matsuda/apirails
http://japan.internet.com/column/developer/20090501/26.html
(acceptはデフォルトはstringでいいんだろうか?)
http://rick-brain.sblo.jp/article/37388962.html

たぶん
1.generate controller
2.controllerのアクション内で他サイトにhttp request
http://www.ruby-lang.org/ja/man/html/net_http.html
http://d.hatena.ne.jp/snaka72/20090629/1246296161

require 'net/http'

require 'rubygems'
require 'sinatra'

get '/:name' do
  content_type 'application/rss+xml', :charset => 'utf-8'

  Net::HTTP.version_1_2
  res = Net::HTTP.start('twitter.com') {|http|
    http.get "/statuses/user_timeline/#{params[:name]}.rss"
  }
  res.body
end

rest clientというのもあるらしい。便利ぽい。
http://adam.heroku.com/past/2008/3/9/rest_client/


3.response内容をreplaceした後にrender:text

くらいでいける気がする。
ローカルファイル(jsとか)の場合は1をファイル読み込みで
http://d.hatena.ne.jp/challengeRoR/20100421/1271822652
あたりでもいいか。
RAILS_ROOTでアプリケーションルート (=プロジェクトルート)がとれるらしい。
あとはherokuでファイル系の禁止があった気がするのでこれも確認。書き出しがNGなだけだろうか。

まあこんなかんじか。文字コードは要注意かも。

filename="test.js"
file = open(filename)
text = file.read
print text
file.close

ActiveResource
http://b.ruyaka.com/2010/02/09/rails-on-rakuten-web-service-%E6%A5%BD%E5%A4%A9/




これがあるので参照しつつ。

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

hello worldをさらりとやった後、同じ形式でざっくりcontroller-view連携して終了、のはず。
デフォルトはhtmlが吐かれるはずなので、生データを吐くようにしとく。

p.416
renderの引数あたりか??

p.453
javascript生成用のテンプレートもあるらしい。(RJS)
これを使うべきな気も。でも少しAjaxよりで高機能すぎるのか??

シンプルにp.419 send_dataをcontroller内で呼べばいいような気がしてきた。
あるいはrender :text? render :json?

JSPを使わないServlet的な。
chapter22読めばだいたい行けそうな。

本格的にwebserviceを扱うなら
ActiveResource
とか使うのだろうか。