RESTful iPhone客户端和模型层次结构
我很好奇你们中的大多数人都在采用什么策略来构建基于模型层次结构的可靠的RESTful iPhone客户端。我所说的模型层次结构的意思是,我有一个REST服务器,其中几个资源相互关联。例如,假设我有一个REST服务器,它可以输出一所学校的信息。如果我想抓取某个特定班级的所有学生,我首先需要查询REST服务器以获取有关学校的信息,然后我需要查询服务器以获取该学校必须提供的所有班级的信息,然后是对某个特定班级的所有学生的后续请求。最后,客户机将引入3个独特的XML树。在这一点上,你们中的大多数人是否编写了自己的算法,以便构建最终成为数据源的树?您是否在这方面不聚合XML树,而是使用不同的方法 您希望如何在服务器上获取大量相关资源,并将它们放在一棵树中,而这棵树在客户端上是有意义的RESTful iPhone客户端和模型层次结构,iphone,cocoa,cocoa-touch,web-services,rest,Iphone,Cocoa,Cocoa Touch,Web Services,Rest,我很好奇你们中的大多数人都在采用什么策略来构建基于模型层次结构的可靠的RESTful iPhone客户端。我所说的模型层次结构的意思是,我有一个REST服务器,其中几个资源相互关联。例如,假设我有一个REST服务器,它可以输出一所学校的信息。如果我想抓取某个特定班级的所有学生,我首先需要查询REST服务器以获取有关学校的信息,然后我需要查询服务器以获取该学校必须提供的所有班级的信息,然后是对某个特定班级的所有学生的后续请求。最后,客户机将引入3个独特的XML树。在这一点上,你们中的大多数人是否编
感谢您的见解。您选择如何在iPhone上存储和管理模型数据,这可能取决于您处理的XML数据可能会有多大的变化,以及它可能会变得多臃肿 如果这是一个不太可能改变的简单XML模型,并且不携带太多冗余信息,那么最好只使用您描述的XML树 但对于稍微复杂一点的内容,我更喜欢将XML表示转换为最容易由Objective-C代码操纵的格式。例如,考虑应用程序扩展一天以支持提供类似数据的其他基于Web的服务的可能性,但作为JSON或SOAP格式化数据的可能性。现在,您开始遇到在应用程序中维护3种不同类型模型的难题,而最好只维护一种 我将基于XML的REST资源视为“外来数据”,需要将其转换为本地可操作的格式。如果您采用本地格式,以最大限度地简化特定于应用程序的操作,那么您可以调整来自任何其他外来格式的输入,并根据需要转换回外来格式以进行上载/编辑/其他操作
Daniel您选择如何在iPhone上存储和管理模型数据,这可能取决于您处理的XML数据可能会有多大的变化,以及它可能会变得多臃肿 如果这是一个不太可能改变的简单XML模型,并且不携带太多冗余信息,那么最好只使用您描述的XML树 但对于稍微复杂一点的内容,我更喜欢将XML表示转换为最容易由Objective-C代码操纵的格式。例如,考虑应用程序扩展一天以支持提供类似数据的其他基于Web的服务的可能性,但作为JSON或SOAP格式化数据的可能性。现在,您开始遇到在应用程序中维护3种不同类型模型的难题,而最好只维护一种 我将基于XML的REST资源视为“外来数据”,需要将其转换为本地可操作的格式。如果您采用本地格式,以最大限度地简化特定于应用程序的操作,那么您可以调整来自任何其他外来格式的输入,并根据需要转换回外来格式以进行上载/编辑/其他操作
Daniel我目前正在进行一个项目来解决这个问题,我们将在代码达到稳定点后发布代码 如果没有一个标准化的系统来序列化从服务器返回的所有对象,这将是一个非常棘手的问题。幸运的是,在这个项目中,我们确实有一个通用的序列化机制,因此我们构建了一个抽象的SAX解析器,我们从中继承并使用它来弥补Objective-C和XML之间的差距。你可以自己做一个类似的概念
在这个项目之前,我只是构建/重用了几个类来处理和工作,但是我没有使用类型内省,而是使用了。我目前正在处理一个项目来解决这个问题,我们将在代码达到稳定点时发布代码 如果没有一个标准化的系统来序列化从服务器返回的所有对象,这将是一个非常棘手的问题。幸运的是,在这个项目中,我们确实有一个通用的序列化机制,因此我们构建了一个抽象的SAX解析器,我们从中继承并使用它来弥补Objective-C和XML之间的差距。你可以自己做一个类似的概念
在这个项目之前,我只是构建/重用了几个类来处理和工作,但是我没有使用类型内省,而是使用了。在我自己的例子中,我一直在使用包装器来构建RESTful查询。我一直在处理结果,直接解析为模型对象,呈现到用户界面中
我不确定我是否为您提供了一个catchall解决方案,但我认为,将功能分离为不同的、可重用的方法会让您受益匪浅。这样,您就不必担心返回的XML树的数量。您只需对现有的任何对象发出查询,以填充您的界面。在我自己的情况下,我一直在使用包装器构建RESTful查询。我一直在处理结果,直接解析为模型对象,呈现到用户界面中 我不确定我是否为您提供了一个catchall解决方案,但我认为,将功能分离为不同的、可重用的方法会让您受益匪浅。这样,您就不必担心返回的XML树的数量。您只需对现有的任何内容发出查询,以填充您的界面。有一个名为的项目,其中