ソーシャルアプリの開発/本番環境の外部サーバ接続先を自動で切り替える
今作っているソーシャルアプリは、絶対パスで外部サーバのURLを指定している。
外部サーバはGoogle App Engineなので、開発環境と本番環境が用意されている。
絶対パスなので、普通にやるとアプリのデプロイ前に接続先のURLを書き換えないといけないので面倒。
そこで、OSDE上でアプリを実行する場合はGAEの開発サーバに接続するけど、本番ソーシャルアプリコンテナ上では本番サーバに接続する、というようなことをする方法について調べた。
jsではdocument.location.hostでjsのダウンロードホストがわかるので、それに応じた外部サーバのホスト名を返せば、とりあえずいいみたい。
var MyApp = { host: (function(){ var host = document.location.host; if(host !== "localhost:8123") { return "http://******.appspot.com/"; } else { return "http://localhost:8888/"; } })() };
(jsの定義即実行ってこういうときに使うのであってるでしょうか。)
あとは$.post(MyApp.host + "hoge/delete")みたいにしたら、OSDE実行時と本番環境で外部サーバ接続先を切り替えられた。
アプリ用のファイルはAptana pluginで直接FTPアップロードしてるので、Eclipse上でのソーシャルアプリ開発サイクルが快適になりました。