2. Hello NSCoder I
Creación y Acceso a Web Services
miércoles 25 de mayo de 2011
3. NSCoder
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
4. NSCoder
• Creación del Web Service
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
5. NSCoder
• Creación del Web Service
• Preparación del Entorno
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
6. NSCoder
• Creación del Web Service
• Preparación del Entorno
• Desarrollo del Web Service
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
7. NSCoder
• Creación del Web Service
• Preparación del Entorno
• Desarrollo del Web Service
• Creación del Cliente de Web Service
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
8. Creación del Web
Service
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
9. Creación del Web
Service
• Creación de Datos en MySQL
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
10. Creación del Web
Service
• Creación de Datos en MySQL
• Librería de Acceso a Datos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
11. Creación del Web
Service
• Creación de Datos en MySQL
• Librería de Acceso a Datos
• Librería NuSoap
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
12. Creación del Web
Service
• Creación de Datos en MySQL
• Librería de Acceso a Datos
• Librería NuSoap
• Desarrollo del Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
13. Creación de Datos en
MySQL
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
14. Creación de Datos en
MySQL
• Creación de la B.DD
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
15. Creación de Datos en
MySQL
• Creación de la B.DD
• Inserción de Datos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
16. Creación de Datos en
MySQL
• Creación de la B.DD
• Inserción de Datos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
17. Creación de la B.DD
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
18. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
19. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
• Creación del usuario nsuser.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
20. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
• Creación del usuario nsuser.
• Gestión de permisos de la B.DD.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
21. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
• Creación del usuario nsuser.
• Gestión de permisos de la B.DD.
• Creación de la tabla Events.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
22. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
• Creación del usuario nsuser.
• Gestión de permisos de la B.DD.
• Creación de la tabla Events.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
23. Creación de la B.DD
• Creación de la B.DD con phpMyAdmin.
• Creación del usuario nsuser.
• Gestión de permisos de la B.DD.
• Creación de la tabla Events.
CREATE TABLE IF NOT EXISTS `eventos` (
`latitude` float NOT NULL COMMENT 'latitude of event localization ',
`longitude` float NOT NULL COMMENT 'longitude of event localization',
`name` varchar(144) COLLATE utf8_spanish_ci NOT NULL COMMENT 'envent''s name with twitt
max length',
`description` text COLLATE utf8_spanish_ci NOT NULL COMMENT 'detailed event description',
PRIMARY KEY (`latitude`,`longitude`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci COMMENT='NSCoder events
table';
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
24. Inserción de Datos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
25. Librería de Accso a
Datos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
26. Librería de Accso a
Datos
• Librería php dbConnector
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
27. Librería de Accso a
Datos
• Librería php dbConnector
• Funciones
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
28. Librería de Accso a
Datos
• Librería php dbConnector
• Funciones
• Constructor dbConnector()
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
29. Librería de Accso a
Datos
• Librería php dbConnector
• Funciones
• Constructor dbConnector()
• Ejecución de Query query($query)
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
30. Librería de Accso a
Datos
• Librería php dbConnector
• Funciones
• Constructor dbConnector()
• Ejecución de Query query($query)
• Número de filas getNumRows($result)
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
31. Librería de Accso a
Datos
• Librería php dbConnector
• Funciones
• Constructor dbConnector()
• Ejecución de Query query($query)
• Número de filas getNumRows($result)
• Obtención de filas fetchArray($result)
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
32. Librería NuSoap
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
33. Librería NuSoap
• Librería Open Source.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
34. Librería NuSoap
• Librería Open Source.
• http://sourceforge.ne/projects/nusoap/
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
35. Librería NuSoap
• Librería Open Source.
• http://sourceforge.ne/projects/nusoap/
• Uso de la librería NuSoap desde php.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
36. Librería NuSoap
• Librería Open Source.
• http://sourceforge.ne/projects/nusoap/
• Uso de la librería NuSoap desde php.
• Documentación y ejemplos en la Web.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
37. Creación del Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
38. Creación del Cliente
del Web Service
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
39. Creación del Cliente
del Web Service
• Creación de la conexión al servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
40. Creación del Cliente
del Web Service
• Creación de la conexión al servicio
• Creación del parser de la respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
41. Creación del Cliente
del Web Service
• Creación de la conexión al servicio
• Creación del parser de la respuesta
• Liberación de las variables utilizadas
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
42. Creación de la
Conexión al Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
43. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
44. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
• Establecimiento de parámetros
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
45. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
• Establecimiento de parámetros
• Llamada estableciendo el delegado
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
46. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
• Establecimiento de parámetros
• Llamada estableciendo el delegado
• Gestión de la respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
47. Creación de la
Conexión al Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
48. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
49. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
El mensaje SOAP es el contenido de la
petición que haremos siguiendo el estándar
marcado incluyendo los parámetros que
hemos establecido en la llamada.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
50. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
El mensaje SOAP es el contenido de la
petición que haremos siguiendo el estándar
marcado incluyendo los parámetros que
hemos establecido en la llamada.
Para simplificar el ejemplo, los parámetros
serán fijos.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
51. Creación de la
Conexión al Servicio
• Obtención del mensaje SOAP
El mensaje SOAP es el contenido de la
petición que haremos siguiendo el estándar
marcado incluyendo los parámetros que
hemos establecido en la llamada.
Para simplificar el ejemplo, los parámetros
serán fijos.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
52. Creación de la
Conexión al Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
53. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
54. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
• Content-Type
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
55. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
• Content-Type
• SOAPAction
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
56. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
• Content-Type
• SOAPAction
• Content-Length
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
57. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
• Content-Type
• SOAPAction
• Content-Length
• Método de llamada.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
58. Creación de la
Conexión al Servicio
• Establecimiento de parámetros.
• Content-Type
• SOAPAction
• Content-Length
• Método de llamada.
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
59. Creación de la
Conexión al Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
60. Creación de la
Conexión al Servicio
• Llamada estableciendo el delegado
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
61. Creación de la
Conexión al Servicio
• Llamada estableciendo el delegado
NSURLConnection *theConnection =
[[NSURLConnection alloc]
initWithRequest:theRequest delegate:self];
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
62. Creación de la
Conexión al Servicio
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
63. Creación de la
Conexión al Servicio
• Gestión de la respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
64. Creación de la
Conexión al Servicio
• Gestión de la respuesta
• -(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
65. Creación de la
Conexión al Servicio
• Gestión de la respuesta
• -(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
• -(void)connection:(NSURLConnection *)connection didReceiveData:
(NSData *)data
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
66. Creación de la
Conexión al Servicio
• Gestión de la respuesta
• -(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
• -(void)connection:(NSURLConnection *)connection didReceiveData:
(NSData *)data
• -(void)connection:(NSURLConnection *)connection didFailWithError:
(NSError *)error
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
67. Creación de la
Conexión al Servicio
• Gestión de la respuesta
• -(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
• -(void)connection:(NSURLConnection *)connection didReceiveData:
(NSData *)data
• -(void)connection:(NSURLConnection *)connection didFailWithError:
(NSError *)error
• -(void)connectionDidFinishLoading:(NSURLConnection *)connection
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
68. Creación del Parser de
la Respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
69. Creación del Parser de
la Respuesta
• Gestión de los elementos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
70. Creación del Parser de
la Respuesta
• Gestión de los elementos
• Gestión de las propiedades
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
71. Creación del Parser de
la Respuesta
• Gestión de los elementos
• Gestión de las propiedades
• Llamada al delegado de la Clase
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
72. Creación del Parser de
la Respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
73. Creación del Parser de
la Respuesta
• Gestión de los elementos
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
74. Creación del Parser de
la Respuesta
• Gestión de los elementos
• -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
75. Creación del Parser de
la Respuesta
• Gestión de los elementos
• -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
• -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)
string
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
76. Creación del Parser de
la Respuesta
• Gestión de los elementos
• -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
• -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)
string
• -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
77. Creación del Parser de
la Respuesta
• Gestión de los elementos
• -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
• -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)
string
• -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)
elementName namespaceURI:(NSString *)namespaceURI qualifiedName:
(NSString *)qualifiedName
• - (void)parserDidEndDocument:(NSXMLParser *)parser
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
78. Creación del Parser de
la Respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
79. Creación del Parser de
la Respuesta
• Gestión de las propiedades
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
80. Creación del Parser de
la Respuesta
• Gestión de las propiedades
if ([cePropName isEqualToString:@"location"]){
if ([currentElement.location length] == 0)
[currentElement setLocation:string];
else
[currentElement setLocation:
[currentElement.location
stringByAppendingString:string]];
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
81. Creación del Parser de
la Respuesta
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
82. Creación del Parser de
la Respuesta
• Llamada al delegado de la Clase
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
83. Creación del Parser de
la Respuesta
• Llamada al delegado de la Clase
[delegate didFinishUpdatingData:eventList];
[eventList release];
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011
84. Creación del Cliente
[NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
miércoles 25 de mayo de 2011