我目前正在开发一个由 rails 支持的 iOS 应用程序。对于 iOS 和 rails 之间的通信,我使用 RESTkit 框架,因为它占用了很多工作!
当代码开始增长时,我对如何管理代码有一些疑问!当您使用 RESTKit 时,您如何设计您的应用程序?您为控制器提供什么样的数据层来执行不同的操作?
谢谢
我目前正在开发一个由 rails 支持的 iOS 应用程序。对于 iOS 和 rails 之间的通信,我使用 RESTkit 框架,因为它占用了很多工作!
当代码开始增长时,我对如何管理代码有一些疑问!当您使用 RESTKit 时,您如何设计您的应用程序?您为控制器提供什么样的数据层来执行不同的操作?
谢谢
我不知道您对构建应用程序的目标是什么。但首先我建议您创建自己的自定义类(例如:单击此链接,它确实接受请求(可能是 POST/GET/ PUT)您的制作并以json格式向您展示详细信息。
在服务器端,创建 REST api(我更喜欢 php)桥,以便您能够访问服务器数据库。
首先使用 POST 方法进行登录身份验证测试(我更喜欢这个,因为它更安全)。
登录页面后,我假设您要显示与铁路相关的数据列表,然后使用 UITableView/UICollectionView/Custom GridView。这取决于您的要求。并使用异步方法发送请求,但下面我没有使用那样 ;-)
示例:用于登录验证
NSString *post =[[NSString alloc] initWithFormat:@"userName=user&password=pwd"];
NSURL *url=[NSURL URLWithString:@"Your URL/authenticate"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];**
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody:postData];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if( theConnection )
{
receivedData = [NSMutableData data];
}
else
{
NSLog(@"theConnection is NULL");
}
注意:始终尝试以 json 格式返回响应。
问:为什么使用 JSON 的 REST-API?为什么不使用肥皂?
==> 许多企业正在为其内部员工、客户或两者创建移动应用程序。这些应用程序需要访问数据、业务规则和业务流程。出于架构和安全原因,这些应用程序通常用于访问提供用户所需数据和功能的远程服务。这就是为什么所有 Yahoo 的网络服务都使用 REST。
-更快:REST 几乎总是会更快。
-LOW BANDWIDTH:REST 更轻量级。对于移动设备,即使是低带宽和网络,Restful 服务也适用于移动设备。
- 低内存消耗:移动设备中重要/必须的事情是我们在运行应用程序时如何处理内存。REST 总是使用更少的内存而没有任何不需要的 xml 字符串。
关于 REST 或 SOAP,最后一个对于移动平台来说确实很重,而且不太容易实现。SOAP 也需要 XML,不能与 JSON 一起使用。而使用 REST,您可以使用 JSON 或 XML,并通过 RESTKit ( http://restkit.org/ ) 在手机上轻松实现它,为了安全起见,我们可以使用带有 HTTPS 和签名证书的 SSL 连接。
资料来源:http ://en.wikipedia.org/wiki/Representational_state_transfer
我相信我上面提供的信息还不够,你需要谷歌一下。(http://www.restapitutorial.com)
我通常更喜欢创建一个单例数据控制器,它根据模型对象和正在执行的人类可理解的操作(getPost、addCommentToPost、createPost……)提供 API。这为控制器提供了一个获取数据的地方,这意味着我不需要传递数据控制器。这也意味着所有映射都在一个地方并且与其余代码隔离(因此当服务器更改时,我不需要更改控制器中的任何代码,只需映射到模型对象的代码) .