You are on page 1of 16

RestKit es una biblioteca de gran alcance que simplifica la interaccin con los servicios web para aplicaciones de iOS.

En este artculo, escrito por RestKit creador y dos tostadoras Watters CTO Blake, vamos a echar un rpido recorrido por conjunto de caractersticas RestKit, el familiarizarse con los conceptos bsicos presentados por la biblioteca, y luego explorar algunos ejemplos de cdigo 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 interaccin con servicios web RESTful sencillo, rpido y divertido. Combina un limpio, simple solicitud / respuesta HTTP API con un sistema objeto de asignacin de gran alcance que reduce la cantidad de cdigo necesario para escribir en "conseguir cosas por hacer". Objetivo principal RestKit es permitir al desarrollador a pensar ms en trminos de modelo de su solicitud de datos y se preocupan menos acerca de los detalles de envo de peticiones, el anlisis de las respuestas, y la construccin 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 mtodos tiles para la inspeccin de los tipos MIME y los cdigos de estado. Presentar el formulario de datos es tan simple como proporcionar un diccionario de parmetros y un objeto params nativa se incluye para crear fcilmente presentaciones de varias partes. Soporte simple para la carga de streaming de archivos de gran tamao (por ejemplo, vdeos) tambin se proporciona. Marco de apoyo a nivel de conmutacin de servidores y entornos (por ejemplo, desarrollo, produccin, 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. Interpolacin de cadenas de direcciones URL y la construccin de objetos NSURL es una cosa del pasado. Un sistema de asignacin de objetos. RestKit proporciona una capa de modelado para la asignacin de cargas tiles de procesado de datos en los objetos Cocoa nativos de forma declarativa. De este modo, la parada del programador de la aplicacin de preocuparse por el anlisis y slo le pedimos el marco para recoger de forma asincrnica a un recurso remoto y llamar al delegado con los resultados. Mapeo de objetos se realiza utilizando la codificacin de valores clave, que permite una rpida travesa del grfico de objetos analizados. La reflexin se utiliza en los tipos de propiedad que permite la asignacin de los valores que no tienen representacin directa en el formato de codificacin, tales como la asignacin de JSON marcas de tiempo codificados como una cadena de NSDate objetos. Datos Bsicos de apoyo. La construccin en la parte superior de la capa de mapeo objeto, RestKit proporciona una integracin 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 rpida local o un almacn de datos principal que se sincroniza peridicamente con la nube. RestKit puede rellenar los datos bsicos para que las asociaciones, lo que permite la propiedad natural de acuerdo con el recorrido de su modelo de datos. Tambin proporciona un API bien en la parte superior de las primitivas bsicas de datos que simplifica la configuracin y las consultas de casos de uso.

Base de datos de la siembra. Cuando el almacn de objetos de Datos Bsicos se utiliza, se puede sembrar una base de datos de una coleccin de archivos de datos. Esto le permite enviar sus aplicaciones para la App Store con una base de datos en el paquete de aplicacin que est listo para su uso inmediato. Capa de anlisis enchufable. RestKit actualmente soporta JSON a travs de la SBJSON y analizadores YAJL. Anlisis se lleva a cabo detrs de una sencilla interfaz para permitir que los formatos de datos adicionales que se maneja de forma transparente. Rieles de integracin. RestKit fue diseado originalmente como una respuesta de Objective-C y de recursos activos. 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 aplicacin Rails back-end. Experimental Three20 integracin. RestKit se utiliza a menudo junto con el marco Three20. Un mdulo opcional est incluido en la distribucin que permite RestKit interfaz con Three20 a travs del protocolo TTModel.

Conectarse y empezar a
RestKit est disponible como un paquete binario para descargar, como una instantnea de versiones, o como un submdulo Git si desea seguir el desarrollo de la lnea principal. Para los usuarios de la biblioteca interesados en hacer el desarrollo, se recomienda utilizar los paquetes binarios versionados por la sencillez de instalacin. Si desea instalar un cartucho o construir la biblioteca de ti mismo, por favor consulte la documentacin disponible en Github. Puede instalar RestKit en unos pocos y sencillos pasos: 1. Jefe de restkit.org y descargar la ltima versin (v0.9.0 partir de este escrito). 2. Descomprimir el archivo donde quieras para mantener las bibliotecas (el autor recomienda una biblioteca subdirectorio). 3. Arrastre el archivo RestKit.xcodeproj a su archivo de proyecto de Xcode. Se aade a los Grupos y archivos de seccin en el panel izquierdo del proyecto. Seleccione los objetivos apropiados y haga clic en "Aadir" cuando la hoja aparece.

4. Haga clic en la entrada para RestKit.xcodeproj en su proyecto Grupos y Archivos de la seccin. En el panel derecho, busque las entradas para libRestKitSupport.a , libRestKitObjectMapping.a ,libRestKitNetwork.a y libRestKit JSONParserYAJL.a y haga clic en las casillas de verificacin de la extrema derecha debajo del icono de destino de plata. Esto vincular su proyecto contra la RestKit. Si desea utilizar el soporte de Datos Bsicos, haga clic en la casilla de verificacin junto alibRestKitCoreData.a tambin. Su proyecto debera aparecer algo parecido a la siguiente pantalla:

5. Encuentre el destino para su aplicacin en la Metas seccin de su proyecto. Haga clic derecho en el objetivo de su aplicacin y selecciona "Obtener informacin" en el men para abrir la ventana de destino Informacin inspector.

6. Usted debe estar buscando en el general ficha del inspector de tu objetivo. En la parte superiordependencias directas seccin, haga clic en el botn ms y agregar una dependencia directa de la meta RestKit.

7. Ahora mira a la parte inferior de la general panel etiquetados bibliotecas vinculadas . Haga clic en el botn ms para abrir la hoja de seleccin de los marcos. Buscar y seleccionar los siguientes marcos y haga clic en "Aadir": 1. CFNetwork.framework - Necesario para el soporte de red. 2. SystemConfiguration.framework - Necesario para la deteccin de la disponibilidad de la red. 3. MobileCoreServices.framework - Obligatorio. Proporciona soporte para el tipo MIME de deteccin automtica de los archivos subidos. 4. CoreData.framework - Obligatorio. Se requiere para el uso de los datos bsicos respaldados almacn de objetos persistentes.

8. Cambie a la 'Build' ficha en el inspector de proyecto. Asegrese de que su configuracin en el men emergente lee todas las configuraciones para que los cambios van a funcionar para todas las configuraciones de generacin.

9. Encuentra la bsqueda de cabeceras Caminos ajuste. Haga doble clic y agregar una nueva entrada. Cuando se compila RestKit, copiar todas las cabeceras correspondientes a la ubicacin adecuada en el directorio / directorio de construccin dentro de la caja RestKit. Es necesario aadir una ruta de acceso al / directorio de construccin de RestKit, en relacin con el archivo del proyecto.Por ejemplo, si ha marcado el cartucho hacia el subdirectorio 'bibliotecas' de su proyecto, la ruta de cabecera sera "Bibliotecas / RestKit / Build". Ahora encuentra el vinculador Otros Banderas ajuste. Haga doble clic en l y aadir entradas para-all_load y ObjC- . Su configuracin debe coincidir con la imagen de abajo.

10. Cierre la ventana de inspeccin. Felicitaciones, ahora se hacen aadiendo RestKit en su proyecto!

Ahora slo tendr que aadir includes de las libreras RestKit en los lugares apropiados en su aplicacin.La referencia se incluyen son:
la vista copia al portapapeles de impresin ?

1. 2.

# Import <RestKit/RestKit.h> # Import <RestKit/CoreData/CoreData.h> / / Si est utilizando datos bsicos ...

Genere el proyecto para asegurarse de que todo est funcionando correctamente. Una vez que haya verificado que se han RestKit vinculados en el proyecto de forma correcta, usted est listo para comenzar a usar la biblioteca.

Usando RestKit
RestKit est diseado para hacer tareas comunes tan sencillo y simple como sea posible. En esta seccin se ejecutar a travs de muchas tareas comunes en la biblioteca y se centran en ejemplos de cdigo para ayudarle a empezar a trabajar con la biblioteca.

El envo 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.La responsabilidad principal del nivel de red es la construccin y el envo de peticiones y el procesamiento de las respuestas. En general, usted enviar a todas las solicitudes a travs de la clase RKClient. RKClient es un objeto de cliente web configurado para comunicarse con un servidor web en particular. Se inicia con una URL base y le permite establecer la configuracin que es comn a las peticiones de la aplicacin, como los encabezados HTTP y la informacin de autenticacin. Aunque usted es libre de iniciar tantas instancias de RKClient como es apropiado para su aplicacin, no es una instancia compartida singleton que es disponible a nivel mundial. Esta instancia singleton se configura a menudo en su aplicacin delegado de applicationDidFinishLaunching: withOptions: mtodo:
la vista copia al portapapeles de impresin ?

1. 2. 3.

- ( void ) applicationDidFinishLaunching: (*) UIApplication withOptions de aplicacin: (NSDictionary *) {opciones RKClient * client = [RKClient clientWithBaseURL: @ "http://restkit.org" ]; }

El RKClient primera vez que se inicializa automticamente se configura como la instancia singleton y se hace disponible a travs de la sharedClient mtodo singleton:
la vista copia al portapapeles de impresin ?

1.

NSLog (@ "Yo soy tu RKClient singleton:% @" , [RKClient sharedClient]);

Ahora que tiene configurado un cliente, usted puede enviar y procesar peticiones HTTP a travs del cliente. RestKit hace muy fcil para usted y abstrae los detalles de bajo nivel de NSURLConnection lejos de ti. Al cursar una solicitud a travs del cliente, debe proporcionar la ruta del recurso en el servidor web remoto que desea interactuar. Dado que la accin ms comn en una aplicacin iOS est haciendo una solicitud asincrnica a un servicio Web remoto, RestKit ofrece muy directo mtodos de conveniencia para los verbos HTTP: GET, POST, PUT y DELETE. Slo es necesario declarar que una clase implementa el protocolo RKRequestDelegate y luego proporcionar una implementacin de la solicitud: didLoadResponse: mtodo. Echemos un vistazo a una clase de ejemplo que muestran los aspectos bsicos:
la vista copia al portapapeles de impresin ?

1. 2. 3.

# Import <RestKit/RestKit.h> / / Aqu declaramos que aplicar el protocolo RKRequestDelegate

4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.

/ / Hora de salida RestKit / Red / RKRequest.h de mtodos delegados adicionales / / Que estn disponibles. @ Interface RKRequestExamples: NSObject <RKRequestDelegate> { } @ End @ RKRequestExamples ejecucin - ( void ) {sendRequests / / Realizar un simple HTTP GET y me llaman de vuelta con los resultados [[RKClient sharedClient] obtenemos: @ "/ foo.xml" delegado: auto]; / / Enviar un POST a un recurso remoto. El diccionario ser transparente / / Convierte en una representacin URL codificada y enviada a medida que el cuerpo de la peticin NSDictionary * params = [NSDictionary dictionaryWithObject: @ "RestKit" forKey: @"Remitente" ]; [[RKClient sharedClient] mensaje: @ hace "/" other.json params: delegado params: auto]; / / Eliminar un recurso remoto desde el servidor [[RKClient cliente] delete : @ "/ missing_resource.txt" delegado: auto]; } - ( void ) Solicitud: (RKRequest *) didLoadResponse peticin: (RKResponse *) {respuesta si ([solicitud de isGET]) { / / Manejo de GET / foo.xml si ([respuesta de Isok]) { / / Listo! Echemos un vistazo a los datos NSLog (@ "Obtenido XML:% @" , [la respuesta bodyAsString]); } } otra cosa , si ([solicitud de isPost]) { / / Manejo de POST / other.json si ([respuesta isJSON]) { NSLog (@ "Tengo una copia de la respuesta JSON a partir de nuestro post!" ); } } otra cosa , si ([isDELETE solicitud]) { / / Manejo de DELETE / missing_resource.txt si ([respuesta isNotFound]) { NSLog (@ "'% @' La ruta del recurso no se ha encontrado." , [peticin de resourcePath]); } } } @ End

Como puede ver, el cdigo es muy breve y legible. Hay un nmero de mtodos auxiliares disponibles en RKRequest y RKResponse que hacer inspeccionar su estado peticin muy fcil. Asegrese de leer los encabezados y familiarizarse con lo que est disponible.

Una introduccin a objeto de asignacin de


Envo y recepcin de las peticiones HTTP con tanta facilidad es grande y todo, pero eso es slo la punta del iceberg. Poder real RestKit no proviene de la capa de red, pero a partir de la capa de mapeo objeto que se encuentra en la parte superior de la misma. Mapeo de objetos es la solucin RestKit para simplificar y secar el exceso de flujo de trabajo detallado de: 1. El envo de una solicitud a un servicio Web remoto. 2. Volviendo una respuesta XML o JSON y analizarlo.

3. Tomando la respuesta analizada y la asignacin de los valores dentro de la carga til a los objetos. Por mucho que RKClient es su puerta de entrada a una vida ms sencilla con HTTP, RKObjectManager es su puerta de entrada al mundo de la asignacin de objetos. De hecho, en los proyectos donde se utiliza el mapeo objeto amplio ser el lugar de iniciar RKObjectManager RKClient. Por mucho que RKClient trata de abstraer los detalles ms tcnicos de tramitacin de las solicitudes, RKObjectManager trabaja duro para que te proteja de las complejidades de la transformacin de cargas de datos en 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. Mediante la implementacin del protocolo de RKObjectMappable, que est configurando RestKit a los atributos de mapa dentro de una carga til de recuperar a las propiedades de la clase del modelo. La clave de este proceso es la elementToPropertyMappings mtodo, que define un diccionario de caminos principales y los nombres de propiedad. Las rutas principales son la clave de codificacin de las cadenas de valor compatibles para acceder a datos en un documento analizado. El nombre de propiedad es simplemente el nombre de cadena de una propiedad en la clase para asignar los datos consultados a. Para ilustrar estos puntos, vamos a imaginar que nuestra aplicacin tiene un concepto ligero contacto que contiene un nombre, una direccin de correo electrnico y un nmero identificador. Imaginemos que este disco reside en nuestro servidor remoto / contacts/1234 . El JSON se parece a esto:
la vista copia al portapapeles de impresin ?

1. 2. 3. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

{ "id" : 1234, 'Nombre' : 'Blake Watters , 'Compaa' : 'Dos tostadoras' } @ Interface Contacto: {RKObject NSNumber * _identifier; NSString * _name; NSString * _nosotros; } @ Property (no atmica, retener) NSNumber * identificador; @ Property (no atmica, retener) NSString * nombre; @ Property (no atmica, retener) NSString empresa *; @ End

Vamos a reunir una clase RKObject para contener estos datos:

Ahora slo tenemos que decirle RestKit la forma de asignar los datos de la carga til de nuestras propiedades:
la vista copia al portapapeles de impresin ?

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

@ Contacto aplicacin - (NSDictionary *) elementToPropertyMappings { retorno [dictionaryWithKeysAndObjects NSDictionary: @ "id" , @ "identificador" , @ "nombre" , @ "nombre" , @ "sociedad" , @ "sociedad" , nil]; } @ End

Ahora estamos listo para cargar los datos. Para ello, hemos creado RKObjectManager y ejecutar un GET en el expediente. RKObjectManager va a construir y configurar una solicitud de RKObjectLoader asincrnica para usted y lo enviar al servidor remoto para su procesamiento. En

lugar de aplicar los mtodos de bajo nivel RKRequestDelegate que se ocupan de las solicitudes y respuestas, en lugar de ello poner en prctica el protocolo de RKObjectLoaderDelegate y se volvi a llamar con una coleccin de objetos mapeados o un error. Echemos un vistazo a este cdigo:
la vista copia al portapapeles de impresin ?

1. 2. 3.

4. 5. 6. / / Mtodos RKObjectLoaderDelegate 7. 8. - ( void ) objectLoader: (*) RKObjectLoader didLoadObjects objectLoader: (NSArray *) {objetos 9. * Contacto contacto = [objectAtIndex objetos: 0]; 10. NSLog (@ "Contact ID Loaded #% @ -> Nombre:% @, ubicacin:% @" , contact.id, contact.name, contact.company); 11. } 12. 13. - ( void ) objectLoader: (RKObjectLoader *) didFailWithError objectLoader: (NSError *) error { 14. NSLog (@ "Se ha encontrado un error:% @" , error); 15. }

- ( void ) {loadContact * Administrador de RKObjectManager = [RKObjectManager objectManagerWithBaseURL: @"http://restkit.org" ]; [Gerente de loadObjectsAtResourcePath: @ hace "/ contacts / 1" objectClass: [Contacto de clase ] delegado: auto] }

Como puedes ver, todo el proceso es muy baja la ceremonia y se seque completamente.

Configuracin de las rutas


Carga de objetos es slo la mitad de la historia. Para interactuar realmente con un servicio Web remoto, usted tambin necesita ser capaz de crear, actualizar y eliminar instancias de objetos remotos. Un factor de confusin en estas interacciones a menudo es que el camino de los recursos de que un objeto reside en es especfica para cada caso. Volviendo al ejemplo de los contactos arriba, 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 coleccin 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 cdigo con las convenciones y los caminos de los recursos, RestKit ofrece un sistema de enrutamiento que es capaz de generar caminos de recursos para un objeto. Enrutamiento est diseado para ser un sistema extensible para proporcionar flexibilidad, pero los barcos RestKit con una implementacin muy capaz en la clase RKDynamicRouter. El encaminamiento est habilitado mediante la asignacin de una instancia de un objeto que implementa el protocolo RKRouter a la RKObjectManager y configurar el router correctamente. Echemos un vistazo a un ejemplo de configuracin utilizando RKDynamicRouter y nuestro ejemplo de contacto:
la vista copia al portapapeles de impresin ?

1. 2. 3. 4. 5. 6. 7.

RKDynamicRouter router * = [RKDynamicRouter nueva ]; / / Definicin de una ruta del recurso por defecto para todos los verbos HTTP sin especificar [RouteClass router: [Contacto de clase ] toResourcePath: @ hace "/ contactos / (identificador)" ]; [RouteClass router: [Contacto de clase ] toResourcePath: @ "/ contactos" forMethod: RKRequestMethodPOST]; [RKObjectManager sharedManager] = router de router.;

La pieza notable en la configuracin es el uso de parntesis en la trayectoria de los recursos para la ruta predeterminada. Dentro de los parntesis se puede especificar cualquier mtodo de instancia en

la clase se va a configurar y cuando RestKit genera una ruta de acceso de recursos para ese objeto, el valor devuelto se interpola en la cadena. En nuestro ejemplo anterior, podemos ver que el GET, PUT y DELETE va a generar / contacts/1234, mientras que POST se generan o contactos.

Manipulacin de objetos remotos


Ahora que hemos configurado el enrutamiento, podemos manipular las representaciones de objetos remotos en un nivel muy alto. Echemos un vistazo al cdigo un poco ms y entonces vamos a caminar a travs del proceso:
la vista copia al portapapeles de impresin ?

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.

- ( void ) {createObject * El contacto JoeBlow = [Contacto objeto]; joeBlow.name = @ "Joe Blow" ; joeBlow.company = @ "dos tostadoras" ; / / POST a / contacts [[RKObjectManager sharedManager] postObject: delegado JoeBlow: auto]; } - ( void ) {updateObject * El contacto con Blake = [Contacto objeto]; blake.identifier = [NSNumber numberWithInt: 1]; blake.name = @ "Watters Blake" ; blake.company = @ "RestKit" ; / / Poner a / contacts / 1 [[RKObjectManager sharedManager] putObject: Blake delegado: auto]; } - ( void ) {deleteObject * El contacto con Blake = [Contacto objeto]; blake.identififer = [NSNumber numberWithInt: 1]; / / Eliminar al / contacts / 1 [[RKObjectManager sharedManager] deleteObject: Blake delegado: auto]; }

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. Detrs de las escenas, RestKit ha identificado la ruta adecuada de recursos para su operacin, cre y envi una solicitud asincrnica, y procesada la respuesta para usted.

Revisin de los conceptos clave

. Cliente y el gestor de objetos Hay dos puntos de entrada principales para trabajar con RestKit en su aplicacin: RKClient y RKObjectManager. 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 construccin y el envo de solicitudes. RKObjectManager opera a un nivel ms alto de abstraccin en la capa de mapeo de objetos y se ocupa de la carga y manipulacin de objetos que representan los recursos remotos. Dependiendo de lo que estn tratando de lograr con RestKit, que va a trabajar mucho con uno (o ambos) de estas clases. Base de URL y rutas de acceso de recursos. RestKit utiliza los conceptos de "URL Base" y "Ruta de los recursos" para coordinar el acceso a las representaciones de objetos remotos. La direccin URL base es simplemente la parte comn de toda la URL a la aplicacin remota y se utiliza para inicializar instancias de las clases y RKClient RKObjectManager. Una ruta de acceso de recursos es simplemente el camino (o subruta) parte de la direccin URL completa de un recurso HTTP. Dado

un objeto RKClient inicia con 'http://restkit.org "y una solicitud para obtener el contenido en la ruta de los recursos" / foo / bar.json', RestKit va a crear y enviar una solicitud al 'http://restkit.org / foo / bar.json '. Esto le permite soportar fcilmente el desarrollo, la puesta en escena, y los entornos de produccin en sus aplicaciones mediante la compilacin condicional base de diferentes URL. La mayor parte del tiempo que va a pensar exclusivamente en trminos de trayectorias de los recursos una vez que han ido ms all de la inicializacin de la biblioteca. Ejemplo:
la vista copia al portapapeles de impresin ?

1. 2.

RKClient * client = [RKClient clientWithBaseURL: @ "http:///restkit.org" ]; [Cliente obtiene: @ "/ foo / bar.json" delegado: auto];

Mapeo de objetos. Cuando se utiliza para modelar RestKit recursos remotos en objetos locales, que estn en contacto con la capa de mapeo objeto. Mapeo de objetos es el proceso de tomar un control remoto de JSON (o formato de conexin de otro tipo) de carga til, el anlisis en una grfica de valor de la clave de codificacin compatible NSObject, y la aplicacin de un conjunto de reglas de asignacin para transformar los valores en el interior del grfico de objetos analizado en los atributos de un modelo objeto. RestKit admite la asignacin de avanzada ms all de lo que se obtiene de la simple decodificacin de una capacidad de carga, tales como el anlisis de una cadena que contiene una fecha en una propiedad NSDate y el acceso a datos a travs de claves y valores de codificacin de los operadores. Normas objeto de asignacin se configuran mediante la aplicacin delelementToPropertyMappings mtodo de la RKObjectMappable protocolo: Ejemplo:
la vista copia al portapapeles de impresin ?

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

@ Aplicacin MiObjeto / / Mapa nombre_completo y street_adddress de carga JSON / / Propiedades FullName local y streetAddress + (*) NSDictionary elementToPropertyMappings { retorno [dictionaryWithKeysAndObjects NSDictionary: @ "nombre_completo" , @ "nombre completo" , @ "street_address" , @ "streetAddress" , nil]; } @ End

Enrutamiento. El sistema de enrutamiento es responsable de generar caminos de recursos de instancias de objetos locales. Esto le permite manipular y sincronizar los objetos locales con sus representaciones a distancia sin ver una direccin URL. El sistema de enrutamiento es extensible al proporcionar su propia implementacin del protocolo RKRouter, pero los barcos RestKit con una aplicacin de gran alcance en la clase RKDynamicRouter. El router dinmico le permite codificar los nombres de propiedades en el interior de las cadenas simples para generar las trayectorias complejas de recursos en tiempo de ejecucin. Esto se entiende ms fcilmente a travs de algunos ejemplos: Ejemplo:
la vista copia al portapapeles de impresin ?

1. 2. 3. 4. 5. 6. 7.

* Administrador de RKObjectManager = [RKObjectManager objectManagerWithBaseURL: @"http://restkit.org" ]; RKDynamicRouter router * = [[RKDynamicRouter nueva ] autorelease]; manager.router = router; / / Enviar solicitudes POST para los casos de artculo a artculo '/' [RouteClass router: [Artculo de clase ] toResourcePath: @ "o" artculos de forMethod: RKRequestMethodPOST];

8.

/ / Configuracin de una ruta del recurso por defecto para los artculos. Enviar GET, PUT y DELETE peticiones a '/ articles / XXXX " 9. / / ArticleID es una propiedad de la clase de artculo 10. [RouteClass router: [Artculo de clase ] toResourcePath: @ hace "/ articles / (articleID)" ]; 11. 12. / / Configurar Comentarios sobre el artculo. Enviar mensaje de los objetos Comentario a '/ articles/1234/comments' 13. / / Donde la observacin tiene una relacin con un artculo. 14. [RouteClass router: [Comentario de clase ] toResourcePath: @ "/ articles / (article.articleID) y comentarios" forMethod: RKRequestMethodPOST]; 15. 16. / / Vamos a crear un artculo 17. * El artculo article = [objeto del artculo]; 18. articulo.titulo = @ "Foo" ; 19. article.body = @ "Este es el cuerpo" ; 20. 21. / / Enva un mensaje para los artculos o la creacin de la instancia remota 22. [[RKObjectManager sharedManager] postObject: delegado del artculo: auto]; 23. 24. / / Ahora vamos a crear un comentario sobre el artculo 25. Comment * = [objeto Comment]; 26. comment.article = artculo; 27. comment.body = @ "Este es el comentario" ; 28. 29. / / Teniendo en cuenta el artculo tiene un identificador de 1234, enviar una peticin POST a / articles/1234/comments para crear el comentario 30. [[RKObjectManager sharedManager] postObject: delegado comentario: auto]; 31. 32. / / Eliminar el artculo. SUPR para / articles/1234 33. [[RKObjectManager sharedManager] deleteObject: delegado comentario: auto];

Conclusin
En este artculo se ha explorado los fundamentos del trabajo con RestKit. Ahora debe tener un firme entendimiento de los conceptos bsicos y se sienten bien preparados para empezar a construir su prxima aplicacin REST iOS. Como mencionamos en la seccin introductoria, RestKit tambin incluye algunas caractersticas avanzadas que no fueron exploradas en este artculo. Estamos totalmente a explorar las partes avanzadas de la biblioteca, incluyendo los datos bsicos en nuestro prximo tutorial avanzado.Hasta entonces, usted puede aprender ms a travs del cdigo de ejemplo se incluye con la biblioteca y mediante la exploracin de los recursos a continuacin.

You might also like