使用REST api后端开发iOS应用程序(数据库支持)

时间:2012-10-24 12:16:00

标签: iphone objective-c ios django ipad

我正在开发一个iPad应用程序,它连接到后端的Django服务器。服务器主要只是一个数据库之上的REST API(这是用TastyPi完成的,用于记录)。

我正在努力了解开发这个的最佳方法,因为我是iOS的新手。

所以有一些相关的问题:

  1. 是否有一个库可以简化在代码中制作“模型”的工作,以反映服务器上的模型?
  2. 我会想象像Django的ORM,它允许你在Objective C中定义对象,它们以1对1的方式映射到REST Api为你提供的对象。

    该库可以抽象所有缓存和本地对象与服务器上对象之间的转换。

    1. 如果这种类型的库不存在,那么这类项目是否有一套最佳实践?例如,应该我甚至有反映数据库的本地对象?我应该有一个类来处理所有处理API的代码,还是应该在API的许多不同对象中编写请求?
    2. 简而言之,在哪里可以学习“REST”方式来编写由REST Api公开数据库支持的iOS应用程序?最好是教程,而不是查看现有项目的代码。

4 个答案:

答案 0 :(得分:4)

1)对于ORM,iOS具有核心数据,可以让您构建实体并使用对象而不是SELECT语句,LEFT JOIN等SQL语句。

不了解别人,但这就是我通常做的事情:

1)App使用ASIHttpRequest库等库向Web Service发出HTTP POST请求。 (注意,对于后端,我使用Symfony Web框架编写了我的Web服务)

2)应用程序发回JSON响应。

e.g。

{     数据     {         名字:鲍勃         年龄:20岁     } }

3)使用JSONKit或ASIHttpRequest提供的JSON解析器解析JSON,并将JSON服务器响应转换为NSDictionary。

NSDictionary * data = [[request responseString] objectFromJSONString];

4)现在是否将数据存储在应用程序上取决于应用程序的性质。如果应用程序要搜索当地餐馆,那么您可能不希望保留返回结果的本地副本,因为该应用程序的性质是搜索餐馆。

但是,如果你有一个从他们的帐户下载用户家庭作业的登录系统,那么你可能会在本地将这些数据存储在设备上。

这是Core Data的用武之地,您可以构建复制服务器模型的模型,并在服务器和客户端模型之间进行简单的1对1映射。

希望有所帮助。

答案 1 :(得分:2)

查看Rest kit

  

RestKit是iOS的Objective-C框架,旨在实现   与RESTful Web服务交互简单,快速和有趣。它   结合了干净,简单的HTTP请求/响应API和强大的功能   对象映射系统,可减少您需要的代码量   写信来完成工作。

它还支持将远程加载的对象直接保存回本地存储

答案 2 :(得分:2)

Parse.com api是RESTful,它负责为数据库构建数小时的样板代码。我不为他们工作,但我确实喜欢这项服务。

答案 3 :(得分:1)

对于#1,helios.io可以解决问题。来自github的docs

  

为了使您的数据模型和REST Web服务保持同步,您可以将其链接到您的helios应用程序:

     

$ helios link path / to / DataModel.xcdatamodel

     

这会在Xcode和Helios项目中的数据模型文件之间创建一个硬链接 - 对这两个文件所做的任何更改都会影响这两者。下次启动服务器时,Helios将自动迁移数据库以创建表并插入列以容纳任何新实体或属性