我目前有一个使用 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?我不知道从哪里开始这样的事情。