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版
- 作者: Sam Ruby,David Heinemeier Hansson,Dave Thomas,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2009/12/01
- メディア: 単行本
- 購入: 16人 クリック: 316回
- この商品を含むブログ (39件) を見る
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
とか使うのだろうか。