RestKit es una biblioteca de gran alcance que simplifica la interacción con los servicios web para aplicaciones de iOS

. En este artículo, escrito por RestKit creador y dos tostadoras Watters CTO Blake, vamos a echar un rápido recorrido por conjunto de características RestKit, el familiarizarse con los conceptos básicos presentados por la biblioteca, y luego explorar algunos ejemplos de código para tener una idea de lo que trabajo con RestKit es en realidad.

¿Qué es RestKit?
RestKit es un marco de Objective-C para iOS que tiene como objetivo hacer la interacción con servicios web RESTful sencillo, rápido y divertido. Combina un limpio, simple solicitud / respuesta HTTP API con un sistema objeto de asignación de gran alcance que reduce la cantidad de código necesario para escribir en "conseguir cosas por hacer". Objetivo principal RestKit es permitir al desarrollador a pensar más en términos de modelo de su solicitud de datos y se preocupan menos acerca de los detalles de envío de peticiones, el análisis de las respuestas, y la construcción de las representaciones de los recursos remotos.

¿Qué RestKit ofrecer?

Un simple y de alto nivel de solicitud HTTP / sistema de respuesta. Barcos RestKit con un cliente HTTP integrado en la parte superior de la NSURLConnection y proporciona una biblioteca de métodos útiles para la inspección de los tipos MIME y los códigos de estado. Presentar el formulario de datos es tan simple como proporcionar un diccionario de parámetros y un objeto params nativa se incluye para crear fácilmente presentaciones de varias partes. Soporte simple para la carga de streaming de archivos de gran tamaño (por ejemplo, vídeos) también se proporciona. Marco de apoyo a nivel de conmutación de servidores y entornos (por ejemplo, desarrollo, producción, puesta en escena). RestKit utiliza un URL de base y las rutas de los recursos en lugar de URL completa es que permiten cambiar los servidores de destino con rapidez. Interpolación de cadenas de direcciones URL y la construcción de objetos NSURL es una cosa del pasado. Un sistema de asignación de objetos. RestKit proporciona una capa de modelado para la asignación de cargas útiles de procesado de datos en los objetos Cocoa nativos de forma declarativa. De este modo, la parada del programador de la aplicación de preocuparse por el análisis y sólo le pedimos el marco para recoger de forma asincrónica a un recurso remoto y llamar al delegado con los resultados. Mapeo de objetos se realiza utilizando la codificación de valores clave, que permite una rápida travesía del gráfico de objetos analizados. La reflexión se utiliza en los tipos de propiedad que permite la asignación de los valores que no tienen representación directa en el formato de codificación, tales como la asignación de JSON marcas de tiempo codificados como una cadena de NSDate objetos. Datos Básicos de apoyo. La construcción en la parte superior de la capa de mapeo objeto, RestKit proporciona una integración con el sistema central de Apple el marco de Datos. Este soporte permite RestKit de persistir objetos a distancia cargados directamente de vuelta a una tienda local, ya sea como una memoria caché rápida local o un almacén de datos principal que se sincroniza periódicamente con la nube. RestKit puede rellenar los datos básicos para que las asociaciones, lo que permite la propiedad natural de acuerdo con el recorrido de su modelo de datos. También proporciona un API bien en la parte superior de las primitivas básicas de datos que simplifica la configuración y las consultas de casos de uso.

Para los usuarios de la biblioteca interesados en hacer el desarrollo. Experimental Three20 integración. Rails se ha utilizado como el back-end para una serie de aplicaciones iOS RestKit potencia y llave en mano se presta apoyo para interactuar con una aplicación Rails back-end. Arrastre el archivo RestKit. Puede instalar RestKit en unos pocos y sencillos pasos: 1. como una instantánea de versiones. Análisis se lleva a cabo detrás de una sencilla interfaz para permitir que los formatos de datos adicionales que se maneja de forma transparente. Descomprimir el archivo donde quieras para mantener las bibliotecas (el autor recomienda una biblioteca subdirectorio).0 partir de este escrito). RestKit se utiliza a menudo junto con el marco Three20. RestKit fue diseñado originalmente como una respuesta de Objective-C y de recursos activos.9. Esto le permite enviar sus aplicaciones para la App Store con una base de datos en el paquete de aplicación que está listo para su uso inmediato.xcodeproj a su archivo de proyecto de Xcode. se puede sembrar una base de datos de una colección de archivos de datos. 3. Seleccione los objetivos apropiados y haga clic en "Añadir" cuando la hoja aparece. Rieles de integración. Un módulo opcional está incluido en la distribución que permite RestKit interfaz con Three20 a través del protocolo TTModel.    Conectarse y empezar a RestKit está disponible como un paquete binario para descargar. se recomienda utilizar los paquetes binarios versionados por la sencillez de instalación. RestKit actualmente soporta JSON a través de la SBJSON y analizadores YAJL. 2. por favor consulte la documentación disponible en Github. . o como un submódulo Git si desea seguir el desarrollo de la línea principal. Se añade a los Grupos y archivos de sección en el panel izquierdo del proyecto. Capa de análisis enchufable.org y descargar la última versión (v0. Cuando el almacén de objetos de Datos Básicos se utiliza. Base de datos de la siembra. Si desea instalar un cartucho o construir la biblioteca de ti mismo. Jefe de restkit.

haga clic en la casilla de verificación junto alibRestKitCoreData.a . busque las entradas para libRestKitSupport. En el panel derecho.xcodeproj en su proyecto Grupos y Archivos de la sección.a .4. Esto vincular su proyecto contra la RestKit.a también.a y libRestKit JSONParserYAJL.libRestKitNetwork.a y haga clic en las casillas de verificación de la extrema derecha debajo del icono de destino de plata. Si desea utilizar el soporte de Datos Básicos. Su proyecto debería aparecer algo parecido a la siguiente pantalla: . Haga clic en la entrada para RestKit. libRestKitObjectMapping.

.5. Encuentre el destino para su aplicación en la Metas sección de su proyecto. Haga clic derecho en el objetivo de su aplicación y selecciona "Obtener información" en el menú para abrir la ventana de destino Información inspector.

Usted debe estar buscando en el general ficha del inspector de tu objetivo.6. . haga clic en el botón más y agregar una dependencia directa de la meta RestKit. En la parte superiordependencias directas sección.

7. Se requiere para el uso de los datos básicos respaldados almacén de objetos persistentes.Obligatorio. CoreData.Necesario para el soporte de red.framework . . 3. SystemConfiguration.Obligatorio. Haga clic en el botón más para abrir la hoja de selección de los marcos. CFNetwork. 4. Proporciona soporte para el tipo MIME de detección automática de los archivos subidos.framework . 2.framework .framework . Ahora mira a la parte inferior de la general panel etiquetados bibliotecas vinculadas .Necesario para la detección de la disponibilidad de la red. Buscar y seleccionar los siguientes marcos y haga clic en "Añadir": 1. MobileCoreServices.

8. Cambie a la 'Build' ficha en el inspector de proyecto. Asegúrese de que su configuración en el menú emergente lee todas las configuraciones para que los cambios van a funcionar para todas las configuraciones de generación. .

Su configuración debe coincidir con la imagen de abajo. Es necesario añadir una ruta de acceso al / directorio de construcción de RestKit. copiará todas las cabeceras correspondientes a la ubicación adecuada en el directorio / directorio de construcción dentro de la caja RestKit. Haga doble clic y agregar una nueva entrada.. Haga doble clic en él y añadir entradas para-all_load y ObjC.Por ejemplo. Encuentra la búsqueda de cabeceras Caminos ajuste. . Ahora encuentra el vinculador Otros Banderas ajuste. en relación con el archivo del proyecto. Cuando se compila RestKit. la ruta de cabecera sería "Bibliotecas / RestKit / Build". si ha marcado el cartucho hacia el subdirectorio 'bibliotecas' de su proyecto.9.

10. Felicitaciones. ahora se hacen añadiendo RestKit en su proyecto! . Cierre la ventana de inspección.

3. NSLog (@ "Yo soy tu RKClient singleton:% @" . Aunque usted es libre de iniciar tantas instancias de RKClient como es apropiado para su aplicación. RestKit hace muy fácil para usted y abstrae los detalles de bajo nivel de NSURLConnection lejos de ti. usted puede enviar y procesar peticiones HTTP a través del cliente. Esta instancia singleton se configura a menudo en su aplicación delegado de applicationDidFinishLaunching: withOptions: método: la vista copia al portapapeles de impresión ? 1. [RKClient sharedClient]). Se inicia con una URL base y le permite establecer la configuración que es común a las peticiones de la aplicación.La referencia se incluyen son: la vista copia al portapapeles de impresión ? 1. Al cursar una solicitud a través del cliente. 2. Echemos un vistazo a una clase de ejemplo que muestran los aspectos básicos: la vista copia al portapapeles de impresión ? 1. Dado que la acción más común en una aplicación iOS está haciendo una solicitud asincrónica a un servicio Web remoto.h> # Import <RestKit/CoreData/CoreData. PUT y DELETE. 2. usted está listo para comenzar a usar la biblioteca.( void ) applicationDidFinishLaunching: (*) UIApplication withOptions de aplicación: (NSDictionary *) {opciones RKClient * client = [RKClient clientWithBaseURL: @ "http://restkit. RKClient es un objeto de cliente web configurado para comunicarse con un servidor web en particular. Genere el proyecto para asegurarse de que todo está funcionando correctamente. no es una instancia compartida singleton que es disponible a nivel mundial. RestKit ofrece muy directo métodos de conveniencia para los verbos HTTP: GET. . En general.h> / / Si está utilizando datos básicos .La responsabilidad principal del nivel de red es la construcción y el envío de peticiones y el procesamiento de las respuestas. Usando RestKit RestKit está diseñado para hacer tareas comunes tan sencillo y simple como sea posible. POST. } El RKClient primera vez que se inicializa automáticamente se configura como la instancia singleton y se hace disponible a través de la sharedClient método singleton: la vista copia al portapapeles de impresión ? 1.h> / / Aquí declaramos que aplicar el protocolo RKRequestDelegate . Sólo es necesario declarar que una clase implementa el protocolo RKRequestDelegate y luego proporcionar una implementación de la solicitud: didLoadResponse: método.Ahora sólo tendrá que añadir includes de las librerías RestKit en los lugares apropiados en su aplicación. Una vez que haya verificado que se han RestKit vinculados en el proyecto de forma correcta. # Import <RestKit/RestKit.org" ]. Ahora que tiene configurado un cliente. 3. 2. En esta sección se ejecutará a través de muchas tareas comunes en la biblioteca y se centran en ejemplos de código para ayudarle a empezar a trabajar con la biblioteca... usted enviará a todas las solicitudes a través de la clase RKClient. El envío de peticiones y respuestas de procesamiento Todas las funcionalidades de RestKit de nivel superior se construye en la parte superior de la capa de red. debe proporcionar la ruta del recurso en el servidor web remoto que desea interactuar. como los encabezados HTTP y la información de autenticación. # Import <RestKit/RestKit.

41. } } otra cosa . pero a partir de la capa de mapeo objeto que se encuentra en la parte superior de la misma. si ([isDELETE solicitud]) { / / Manejo de DELETE / missing_resource. 36. Hay un número de métodos auxiliares disponibles en RKRequest y RKResponse que hacer inspeccionar su estado petición muy fácil. 26. 2. El envío de una solicitud a un servicio Web remoto. 29. [[RKClient sharedClient] mensaje: @ hace "/" other. / / Eliminar un recurso remoto desde el servidor [[RKClient cliente] delete : @ "/ missing_resource. [petición de resourcePath]). Poder real RestKit no proviene de la capa de red. Una introducción a objeto de asignación de Envío y recepción de las peticiones HTTP con tanta facilidad es grande y todo. 42. [la respuesta bodyAsString]).4. 49. 20.txt" delegado: auto]. 37. 30. 23. 12. 24.xml si ([respuesta de Isok]) { / / ¡Listo! Echemos un vistazo a los datos NSLog (@ "Obtenido XML:% @" . 33. 5.xml" delegado: auto]. Asegúrese de leer los encabezados y familiarizarse con lo que está disponible. Volviendo una respuesta XML o JSON y analizarlo. 6. 39. @ Interface RKRequestExamples: NSObject <RKRequestDelegate> { } @ End @ RKRequestExamples ejecución . El diccionario será transparente / / Convierte en una representación URL codificada y enviada a medida que el cuerpo de la petición NSDictionary * params = [NSDictionary dictionaryWithObject: @ "RestKit" forKey: @"Remitente" ]. 27.json si ([respuesta isJSON]) { NSLog (@ "Tengo una copia de la respuesta JSON a partir de nuestro post!" ). 10. 9. 22. 14.( void ) {sendRequests / / Realizar un simple HTTP GET y me llaman de vuelta con los resultados [[RKClient sharedClient] obtenemos: @ "/ foo. 43. } } otra cosa .( void ) Solicitud: (RKRequest *) didLoadResponse petición: (RKResponse *) {respuesta si ([solicitud de isGET]) { / / Manejo de GET / foo. 16.json params: delegado params: auto]. 50. 35. 38.txt si ([respuesta isNotFound]) { NSLog (@ "'% @' La ruta del recurso no se ha encontrado. . 51. 25. 31.h de métodos delegados adicionales / / Que están disponibles. 44. 45. Mapeo de objetos es la solución RestKit para simplificar y secar el exceso de flujo de trabajo detallado de: 1. 15. 48. 11. 19. pero eso es sólo la punta del iceberg. 47. } . 34. 8. 7. 13. 40. 46. el código es muy breve y legible. 18. / / Hora de salida RestKit / Red / RKRequest. 21. 17. si ([solicitud de isPost]) { / / Manejo de POST / other. 32. / / Enviar un POST a un recurso remoto." . 28. } } } @ End Como puede ver.

2. hemos creado RKObjectManager y ejecutar un GET en el expediente. retener) NSString * nombre. 7. Las rutas principales son la clave de codificación de las cadenas de valor compatibles para acceder a datos en un documento analizado. 11. @ "identificador" .(NSDictionary *) elementToPropertyMappings { retorno [dictionaryWithKeysAndObjects NSDictionary: @ "id" . 3. @ Property (no atómica. @ Property (no atómica. } @ Property (no atómica. nil]. @ "sociedad" . El nombre de propiedad es simplemente el nombre de cadena de una propiedad en la clase para asignar los datos consultados a. 4. 11. La clave de este proceso es la elementToPropertyMappings método. 3. RKObjectManager va a construir y configurar una solicitud de RKObjectLoader asincrónica para usted y lo enviará al servidor remoto para su procesamiento. en los proyectos donde se utiliza el mapeo objeto amplio será el lugar de iniciar RKObjectManager RKClient. 2. 5. retener) NSString empresa *. que está configurando RestKit a los atributos de mapa dentro de una carga útil de recuperar a las propiedades de la clase del modelo. retener) NSNumber * identificador. Imaginemos que este disco reside en nuestro servidor remoto / contacts/1234 . 'Nombre' : 'Blake Watters . RKObjectManager es su puerta de entrada al mundo de la asignación de objetos. Modelado y Carga de objetos remotos Mapeo de objetos requiere que se proporcione una clase de modelo de datos para representar los objetos remotos.3. @ End Vamos a reunir una clase RKObject para contener estos datos: Ahora sólo tenemos que decirle RestKit la forma de asignar los datos de la carga útil de nuestras propiedades: la vista copia al portapapeles de impresión ? 1. 3. una dirección de correo electrónico y un número identificador. 4. 6. @ "nombre" . 10. 1. vamos a imaginar que nuestra aplicación tiene un concepto ligero contacto que contiene un nombre. NSString * _nosotros. 10. 2. Tomando la respuesta analizada y la asignación de los valores dentro de la carga útil a los objetos. El JSON se parece a esto: la vista copia al portapapeles de impresión ? 1. 8. 'Compañía' : 'Dos tostadoras' } @ Interface Contacto: {RKObject NSNumber * _identifier. @ Contacto aplicación . Por mucho que RKClient es su puerta de entrada a una vida más sencilla con HTTP. 6. @ "sociedad" . Por mucho que RKClient trata de abstraer los detalles más técnicos de tramitación de las solicitudes. que define un diccionario de caminos principales y los nombres de propiedad. Para ilustrar estos puntos. { "id" : 1234. 9. 9. RKObjectManager trabaja duro para que te proteja de las complejidades de la transformación de cargas de datos en objetos. 8. } @ End Ahora estamos listo para cargar los datos. Mediante la implementación del protocolo de RKObjectMappable. En . 7. De hecho. NSString * _name. @ "nombre" . Para ello. 5.

10. 8.( void ) objectLoader: (*) RKObjectLoader didLoadObjects objectLoader: (NSArray *) {objetos 9. . imagino que todo el mundo de los contactos es representado por los siguientes pares de verbos HTTP y caminos de recursos: GET / contactos devuelve todos los contactos como una colección Publicad contactos crea un nuevo contacto GET / contacts / <id> vuelve a los datos de contacto particulares PUT / contacts / <id> actualizaciones de un Datos de contacto existentes DELETE / contacts / <id> elimina un contacto existente Para evitar ensuciar el código con las convenciones y los caminos de los recursos. contact.name. 11. 2. Echemos un vistazo a este código: la vista copia al portapapeles de impresión ? 1. 3. Volviendo al ejemplo de los contactos arriba. 4. NSLog (@ "Contact ID Loaded #% @ -> Nombre:% @. 3. NSLog (@ "Se ha encontrado un error:% @" . . Para interactuar realmente con un servicio Web remoto. ubicación:% @" .( void ) {loadContact * Administrador de RKObjectManager = [RKObjectManager objectManagerWithBaseURL: @"http://restkit. 13.. Un factor de confusión en estas interacciones a menudo es que el camino de los recursos de que un objeto reside en es específica para cada caso. El encaminamiento está habilitado mediante la asignación de una instancia de un objeto que implementa el protocolo RKRouter a la RKObjectManager y configurar el router correctamente. 7. 5.company). 2. La pieza notable en la configuración es el uso de paréntesis en la trayectoria de los recursos para la ruta predeterminada. [RouteClass router: [Contacto de clase ] toResourcePath: @ "/ contactos" forMethod: RKRequestMethodPOST]. contact. 4. 6.id. Enrutamiento está diseñado para ser un sistema extensible para proporcionar flexibilidad. en lugar de ello poner en práctica el protocolo de RKObjectLoaderDelegate y se volvió a llamar con una colección de objetos mapeados o un error. } . / / Definición de una ruta del recurso por defecto para todos los verbos HTTP sin especificar [RouteClass router: [Contacto de clase ] toResourcePath: @ hace "/ contactos / (identificador)" ]. [Gerente de loadObjectsAtResourcePath: @ hace "/ contacts / 1" objectClass: [Contacto de clase ] delegado: auto] } Como puedes ver.lugar de aplicar los métodos de bajo nivel RKRequestDelegate que se ocupan de las solicitudes y respuestas. Echemos un vistazo a un ejemplo de configuración utilizando RKDynamicRouter y nuestro ejemplo de contacto: la vista copia al portapapeles de impresión ?      1. todo el proceso es muy baja la ceremonia y se seque completamente. pero los barcos RestKit con una implementación muy capaz en la clase RKDynamicRouter. usted también necesita ser capaz de crear. 15.( void ) objectLoader: (RKObjectLoader *) didFailWithError objectLoader: (NSError *) error { 14. RKDynamicRouter router * = [RKDynamicRouter nueva ]. 5. RestKit ofrece un sistema de enrutamiento que es capaz de generar caminos de recursos para un objeto. / / Métodos RKObjectLoaderDelegate 7. } 12. error).org" ]. Configuración de las rutas Carga de objetos es sólo la mitad de la historia. 6. * Contacto contacto = [objectAtIndex objetos: 0]. Dentro de los paréntesis se puede especificar cualquier método de instancia en . contact. [RKObjectManager sharedManager] = router de router. actualizar y eliminar instancias de objetos remotos.

Una ruta de acceso de recursos es simplemente el camino (o subruta) parte de la dirección URL completa de un recurso HTTP. 10.( void ) {deleteObject * El contacto con Blake = [Contacto objeto]. Echemos un vistazo al código un poco más y entonces vamos a caminar a través del proceso: la vista copia al portapapeles de impresión ? 1. 26. La dirección URL base es simplemente la parte común de toda la URL a la aplicación remota y se utiliza para inicializar instancias de las clases y RKClient RKObjectManager. / / Poner a / contacts / 1 [[RKObjectManager sharedManager] putObject: Blake delegado: auto]. PUT y DELETE va a generar / contacts/1234.company = @ "RestKit" . Detrás de las escenas. 5. mientras que POST se generan o contactos. Dado . 23. y procesada la respuesta para usted. 17.company = @ "dos tostadoras" . . joeBlow. 8. RestKit ha identificado la ruta adecuada de recursos para su operación. blake. 12. RKClient es el principal punto de entrada cuando se trabaja con la capa de red de RestKit y se ocupa de los detalles de bajo nivel de la construcción y el envío de solicitudes. 20. 15. } . Base de URL y rutas de acceso de recursos. 11. } . / / Eliminar al / contacts / 1 [[RKObjectManager sharedManager] deleteObject: Blake delegado: auto]. Dependiendo de lo que están tratando de lograr con RestKit. blake. 2. 19. Cliente y el gestor de objetos Hay dos puntos de entrada principales para trabajar con RestKit en su aplicación: RKClient y RKObjectManager.name = @ "Watters Blake" . el valor devuelto se interpola en la cadena. creó y envió una solicitud asincrónica.identifier = [NSNumber numberWithInt: 1].( void ) {updateObject * El contacto con Blake = [Contacto objeto]. 24. podemos manipular las representaciones de objetos remotos en un nivel muy alto. joeBlow.name = @ "Joe Blow" . 21. 25. 6. 16. RestKit utiliza los conceptos de "URL Base" y "Ruta de los recursos" para coordinar el acceso a las representaciones de objetos remotos. 9. blake. 18.( void ) {createObject * El contacto JoeBlow = [Contacto objeto]. 3. 7. que va a trabajar mucho con uno (o ambos) de estas clases. podemos ver que el GET. RKObjectManager opera a un nivel más alto de abstracción en la capa de mapeo de objetos y se ocupa de la carga y manipulación de objetos que representan los recursos remotos. / / POST a / contacts [[RKObjectManager sharedManager] postObject: delegado JoeBlow: auto]. 14.la clase se va a configurar y cuando RestKit genera una ruta de acceso de recursos para ese objeto. } Lo que hemos hecho aquí se utiliza el poder combinado de mapeo de objetos y enrutamiento para llevar a cabo manipulaciones de muy alto nivel en los objetos locales y remotos. En nuestro ejemplo anterior. 4. Revisión de los conceptos clave   . Manipulación de objetos remotos Ahora que hemos configurado el enrutamiento. blake.identififer = [NSNumber numberWithInt: 1]. 22. 13.

[Cliente obtiene: @ "/ foo / bar. Ejemplo: la vista copia al portapapeles de impresión ? 1. manager.  Mapeo de objetos. Mapeo de objetos es el proceso de tomar un control remoto de JSON (o formato de conexión de otro tipo) de carga útil.un objeto RKClient inicia con 'http://restkit.org / foo / bar. y la aplicación de un conjunto de reglas de asignación para transformar los valores en el interior del gráfico de objetos analizado en los atributos de un modelo objeto. Cuando se utiliza para modelar RestKit recursos remotos en objetos locales. 7. 4. 10. nil].router = router. 9. RKClient * client = [RKClient clientWithBaseURL: @ "http:///restkit. el análisis en una gráfica de valor de la clave de codificación compatible NSObject.json" delegado: auto]. Esto le permite soportar fácilmente el desarrollo. Esto se entiende más fácilmente a través de algunos ejemplos: Ejemplo: la vista copia al portapapeles de impresión ? 1. 7. tales como el análisis de una cadena que contiene una fecha en una propiedad NSDate y el acceso a datos a través de claves y valores de codificación de los operadores. El sistema de enrutamiento es responsable de generar caminos de recursos de instancias de objetos locales. 2.json '. Normas objeto de asignación se configuran mediante la aplicación delelementToPropertyMappings método de la RKObjectMappable protocolo: Ejemplo: la vista copia al portapapeles de impresión ? 1. RestKit va a crear y enviar una solicitud al 'http://restkit. RestKit admite la asignación de avanzada más allá de lo que se obtiene de la simple decodificación de una capacidad de carga. la puesta en escena. 2. 11. y los entornos de producción en sus aplicaciones mediante la compilación condicional base de diferentes URL. El router dinámico le permite codificar los nombres de propiedades en el interior de las cadenas simples para generar las trayectorias complejas de recursos en tiempo de ejecución. La mayor parte del tiempo que va a pensar exclusivamente en términos de trayectorias de los recursos una vez que han ido más allá de la inicialización de la biblioteca. @ Aplicación MiObjeto / / Mapa nombre_completo y street_adddress de carga JSON / / Propiedades FullName local y streetAddress + (*) NSDictionary elementToPropertyMappings { retorno [dictionaryWithKeysAndObjects NSDictionary: @ "nombre_completo" .org" ]. 5. 6. } @ End  Enrutamiento. pero los barcos RestKit con una aplicación de gran alcance en la clase RKDynamicRouter. . @ "streetAddress" . 3.org "y una solicitud para obtener el contenido en la ruta de los recursos" / foo / bar. 5. 3. que estén en contacto con la capa de mapeo objeto. 8. 4. / / Enviar solicitudes POST para los casos de artículo a artículo '/' [RouteClass router: [Artículo de clase ] toResourcePath: @ "o" artículos de forMethod: RKRequestMethodPOST].org" ].json'. @ "nombre completo" . * Administrador de RKObjectManager = [RKObjectManager objectManagerWithBaseURL: @"http://restkit. El sistema de enrutamiento es extensible al proporcionar su propia implementación del protocolo RKRouter. RKDynamicRouter router * = [[RKDynamicRouter nueva ] autorelease]. 6. 12. 2. Esto le permite manipular y sincronizar los objetos locales con sus representaciones a distancia sin ver una dirección URL. @ "street_address" .

/ / Teniendo en cuenta el artículo tiene un identificador de 1234. 26. 32. 15. / / Vamos a crear un artículo 17. 29. / / Configuración de una ruta del recurso por defecto para los artículos. Ahora debe tener un firme entendimiento de los conceptos básicos y se sienten bien preparados para empezar a construir su próxima aplicación REST iOS. [RouteClass router: [Artículo de clase ] toResourcePath: @ hace "/ articles / (articleID)" ]. Enviará GET.8.body = @ "Este es el comentario" . 23. enviará una petición POST a / articles/1234/comments para crear el comentario 30. usted puede aprender más a través del código de ejemplo se incluye con la biblioteca y mediante la exploración de los recursos a continuación. 28.body = @ "Este es el cuerpo" . 11. / / Ahora vamos a crear un comentario sobre el artículo 25. / / Configurar Comentarios sobre el artículo. RestKit también incluye algunas características avanzadas que no fueron exploradas en este artículo. / / Donde la observación tiene una relación con un artículo. 21. SUPR para / articles/1234 33. incluyendo los datos básicos en nuestro próximo tutorial avanzado. 12. Comment * = [objeto Comment]. 27.article = artículo. [[RKObjectManager sharedManager] postObject: delegado del artículo: auto]. comment. 16. / / ArticleID es una propiedad de la clase de artículo 10. 31. 20. Enviar mensaje de los objetos Comentario a '/ articles/1234/comments' 13. [[RKObjectManager sharedManager] deleteObject: delegado comentario: auto]. / / Envía un mensaje para los artículos o la creación de la instancia remota 22.titulo = @ "Foo" . 18.Hasta entonces. Conclusión En este artículo se ha explorado los fundamentos del trabajo con RestKit. Como mencionamos en la sección introductoria. Estamos totalmente a explorar las partes avanzadas de la biblioteca. * El artículo article = [objeto del artículo]. article.articleID) y comentarios" forMethod: RKRequestMethodPOST]. [RouteClass router: [Comentario de clase ] toResourcePath: @ "/ articles / (article. 19. comment. articulo. [[RKObjectManager sharedManager] postObject: delegado comentario: auto]. PUT y DELETE peticiones a '/ articles / XXXX " 9. 24. . / / Eliminar el artículo. 14.

Sign up to vote on this title
UsefulNot useful