現在、Devise を使用した Rails アプリを使用しており、ブラウザからログインできます。この Rails アプリをバックエンドとして使用するネイティブ iPhone アプリケーションを作成したいと考えています。私が欲しいもの:
- ユーザーが初めて iOS アプリを開くと、ログイン画面が表示されます。
- 情報を入力すると、アプリはログインを試みます。成功すると、Rails アプリのユーザーが一覧表示されます (今のところ)。そうしないと、不正なログインと表示されます。
- 次に、ユーザーがユーザーの名前をクリックすると、ユーザーのプロファイルなどが表示されます。アプリは、サイト自体にあるかのように、すべての CRUD 操作を実行できる必要があります。
現在、iPhoneアプリにはDeviseとRestKitを使用しています。Rails アプリで http_auth を有効にすると、ユーザー名/パスワードを設定し、/users ページ (JSON でユーザーを一覧表示) から応答を返すことができます。
レール:
class UsersController < ApplicationController
before_filter :authenticate_user!
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
end
iPhone (Restkit を使用):
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
RKClient *client = [RKClient clientWithBaseURL:@"http://192.168.1.105:3000" username:@"xxxx" password:@"xxxx"];
[[RKClient sharedClient] get:@"/users.json" delegate:self];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)request:(RKRequest*)request didFailLoadWithError:(NSError *)error {
NSLog(@"error");
}
- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
NSLog(response.bodyAsString);
}
ここから何をすべきか、どのようにアプローチするかはわかりません。
- ログイン画面の処理方法を教えてください。わかりました、http 基本認証を使用して 'http://localhost:3000' GET を実行し、ユーザー リストを取得できますが、ユーザーの資格情報が正しく入力されているかどうかをテストする方法はありますか? ログインに対して OK または NOT OK の応答を返す方法はありますか?
- Railsアプリとやり取りするための最良の方法は何ですか? RestKit を使用して GET /users/2 などを実行しても問題ありませんか? それとも、ある種の API を構築する必要がありますか? このようなことをどこから始めればよいかわかりません。