API REST para iphone
La disponibilidad del API está creciendo de manera exponencial. Vemos esta tendencia como un artefacto de dos pilotos principal industria, el crecimiento de las aplicaciones móviles y la apertura de SaaS y aplicaciones empresariales on-premise.
API Web proporcionan una forma fácil, independiente de la plataforma, manera de permitir que las aplicaciones móviles para consumir datos y presentarlos al usuario en un teléfono inteligente o tableta experiencia optimizada.
En este tutorial se camina por el consumo de una API REST en iOS. En este tutorial, vamos a utilizar el servicio de correo electrónico Verificación Plus Higiene de StrikeIron. Este tutorial asume que son competentes en Objective-C y ha escrito las aplicaciones básicas del iPhone. Si desea más información sobre cualquiera, Apple tiene una excelente introducción de Objective-C y una Guía de inicio de iPhone desarrollador tutorial .
1) Creación de la aplicación
Esta solicitud constará de una sola vista para que el usuario introduzca una dirección de correo electrónico y haga clic en el botón enviar. Cuando el usuario hace clic en el botón de envío, vamos a mostrar un mensaje que indica si la dirección de correo electrónico es válida o no válida. En una aplicación real, si la dirección de correo electrónico es válida, lo más probable sería proceder a la aplicación o una página de agradecimiento.
En primer lugar vamos a crear una aplicación única vista llamada WebAPITutorial. En XCode, seleccione Archivo | Nuevo | Proyecto. Seleccione "Single View Aplicación" y haga clic en Siguiente.
En el paso de opciones, introduzca la siguiente información y haga clic en Siguiente:
Nombre del producto: WebAPITutorial
Nombre de la Organización: <Su Organización>
Identificador de la empresa: Empresa <Su identifier>
Clase Prefijo: WebAPITutorial
Dispositivos: iPhone
Use Storyboards: <Checked>
Utilice automático de recuento de referencia: <Checked>
Incluya pruebas unitarias: <Unchecked>
Nombre de la Organización: <Su Organización>
Identificador de la empresa: Empresa <Su identifier>
Clase Prefijo: WebAPITutorial
Dispositivos: iPhone
Use Storyboards: <Checked>
Utilice automático de recuento de referencia: <Checked>
Incluya pruebas unitarias: <Unchecked>
Seleccione la ruta en la que desea que su proyecto y haga clic en Crear.
2) Configuración de la interfaz del usuario y el código estructural:
Agregue los controles para la aplicación de vista individual. En la vista del proyecto izquierdo, haga clic en el elemento MainStoryboard.storyboard.
Ahora debe ver un controlador de vista en blanco en el panel central. Vamos a añadir cuatro controles de interfaz de usuario de este punto de vista: dos etiquetas, una caja de texto y un botón. En la esquina inferior derecha de XCode, haga clic en los objetos desplegable y seleccione Cocoa Touch Storyboard | Controles. (Nota: Si no ve la lista de objetos, asegúrese de que la Utilidades View se muestra al hacer clic en el botón en la esquina superior derecha de XCode que se parece a
)
En la lista de los controles en la esquina inferior derecha de XCode, arrastre las dos etiquetas (una Campo de texto y un botón redondeado Rect) a la lona controlador de vista como se ve a continuación.
Nota: Asegúrese de estirar las etiquetas a lo ancho del campo de texto.
A continuación, vamos a definir los atributos para cada elemento. En primer lugar, asegúrese de que la vista de atributos está abierto, haga clic en el inspector de atributos (en el menú Ver en la parte superior de XCode).
Ajuste los siguientes atributos de cada elemento:
El Top etiquetas:
Texto: Introduzca la dirección de correo electrónico
El campo de texto:
Marcador de posición: email@domain.com
Teclado: Dirección de correo electrónico
Volver Clave: Done
Texto: Introduzca la dirección de correo electrónico
El campo de texto:
Marcador de posición: email@domain.com
Teclado: Dirección de correo electrónico
Volver Clave: Done
La etiqueta bajo el campo de texto:
Texto: (en blanco)
Alineación: Centrado
El Botón redondeado Rect: Texto: (en blanco)
Alineación: Centrado
Texto: Enviar
Ahora vamos a conectar los componentes de interfaz de usuario al controlador. Primero haga clic en el botón Editor de Asistencia que está en la parte superior derecha de XCode y parece
(Sugerencia: Es posible que desee apagar las Utilidades ver si la ventana XCode es demasiado desordenada)
Haga clic en el botón redondeado Rect. Mientras mantiene pulsada la tecla Control, arrastrar a la línea de bajo "@ interface WebAPITutorial View Controler ..." Usted debe ahora tener un cuadro emergente. Cambie la conexión a la acción y entrar en "verifyEmail" como el nombre, como se ve a continuación. Haga clic en Conectar.
Cree la salida para el campo de texto mediante Control-Arrastrando el campo de texto como lo hizo anteriormente. En la ventana emergente, introduzca "emailAddress" como nombre.
Crear la salida para la etiqueta bajo el cuadro de texto que usaremos para mostrar el valor de retorno de la llamada a la API a la API de verificación de correo electrónico. Tenga en cuenta que hemos eliminado el texto predeterminado de la etiqueta para el control del ratón bajo el cuadro de texto para captar la etiqueta. Escriba "verificationResults" como nombre:
Por último, vamos a crear el delegado de manejar cuando el usuario pulsa el botón Listo en el teclado después de entrar en su correo electrónico. Control-arrastre desde el campo de texto al círculo amarillo bajo el lienzo de vista.Seleccione Outlets | delegado del cuadro emergente.
A continuación vamos a añadir el código estructural. Abra el archivo WebAPITutorialViewControl.h.
Actualización de la línea de declaración de interfaz para implementar el protocolo UITextFieldDelegate. Ahora debe decir:
1 |
|
Crear la propiedad que contendrá la dirección de correo electrónico que el usuario introduce. Justo antes de la declaración @ end, añada la siguiente propiedad.
1 |
|
Abra el archivo WebAPITutorialViewController.m y directamente debajo de la línea @ WebAPITutorialViewController aplicación, agregue lo siguiente:
1 |
|
Por último, agregue el siguiente método delegado para que el teclado para despedir correctamente en el archivo WebAPITutorialViewController.m.
123456 |
|
Su interfaz de usuario de aplicación y estructura ahora se llevan a cabo. Usted debe ser capaz de ejecutar la aplicación y escriba una dirección de correo electrónico, pero eso es todo. En las siguientes secciones, vamos a añadir la llamada al servicio web REST y mostrar el resultado al usuario.
3) La invocación de la API de llamada:
Vamos a llamar a la operación VerifyEmail en el correo electrónico de verificación Plus Higiene API Web . La llamada REST tiene el siguiente aspecto:
ID> & LicenseInfo.RegisteredUser.Password = <StrikeIron Password> y VerifyEmail.Email = <email direcciones Para Verify> y VerifyEmail.Timeout = <Tiempo <Salida y VerifyEmail.OptionalSourceId = <optional etiqueta de identificación que se pasa through>
Vamos a hacer la llamada a la API de forma asincrónica, lo cual es siempre una buena práctica, ya que la interfaz de usuario no se bloqueará mientras se realiza la llamada. Esto es especialmente importante en los dispositivos móviles que puedan soltar las conexiones de red. Vamos a implementar el protocolo delegado para la clase NSURLConnection.
Queremos añadir una variable de la propiedad y la instancia a la definición WebAPITutorialViewController, así como la declaración NSURLConnectionDelegate. Abra el archivo WebAPITutorialViewController.h y agregue el NSURLConnectionDelegate a la declaración de interfaz y la propiedad apiReturnXMLData:
12345678910 |
|
Abra el archivo WebAPITutorialViewController.m y vaya al método verifyEmail (recuerde, este método se llama cuando el usuario toca el botón Enviar).
En primer lugar, vamos a almacenar la dirección de correo electrónico que el usuario ha introducido con la siguiente línea
12 |
|
A continuación, asegúrese de que la etiqueta que se mostrará el resultado de la llamada a la API está en blanco con la siguiente línea:
12 |
|
Vamos a declarar una variable con la llamada a la API REST, pero en primer lugar, usted tendrá que declarar dos constantes en la parte superior del archivo justo por encima de los "WebAPITutorialViewControllers @ interface" para su StrikeIron ID de Usuario y Contraseña (si usted no tiene uno , firmar para arriba para un ensayo de verificación de correo electrónico gratuito ).
12 |
|
Ahora, de vuelta en el método verifyEmail, añada la siguiente línea para crear una cadena con la petición de la API REST incluyendo la ID de usuario, contraseña y dirección de correo electrónico para comprobar llenado pulg
12 |
|
Crear e inicializar los objetos NSURL y NSURLRequest que se requieren para ensamblar la llamada a la API.
123 |
|
Ya que vamos a llamar a la API REST de forma asíncrona, es necesario asegurarse de que si ya tenemos una llamada a la API excepcional, nos cancelarla. Esto ocurrirá si el usuario pulsa el botón Enviar varias veces en una fila antes de que la API ha regresado. La conexión se almacena en la variable "currentConnection."
1234567 |
|
Ahora estamos listos para iniciar la llamada a la API mediante la creación de un objeto NSURLConnection e inicializar con la llamada a la API REST. También inicializamos el apiReturnXMLData para recibir los datos que devuelve la llamada a la API.
1234 |
|
Su método verifyEmail ahora debería tener este aspecto:
123456789101112131415161718192021222324252627 |
|
Aviso establecemos la clase WebAPITutorialViewController como delegado para el objeto NSURLConnection.Estaremos necesitamos implementar cuatro métodos delegados, didReceiveResponse, didReceiveData, didFailWithError y connectionDidFinishLoading.
didReceiveResponse se llama cuando hay datos de retorno. Se le puede llamar varias veces para una conexión y se debe restablecer los datos en caso de que lo es.
123 |
|
didReceiveData se llama cuando algunos o todos los datos de la llamada a la API se devuelve. Vamos a añadir los datos a la variable de instancia apiReturnXMLData.
123 |
|
didFailWithError se llama cuando hay un error de terminal. No habrá otras llamadas a métodos en esta conexión si se recibe. En este caso, nos vamos a registrar el error.
1234 |
|
Finalmente, el método connectionDidFinishLoading se llama cuando la llamada se ha completado y todos los datos se ha recibido. Vamos a analizar los datos devueltos por este método. Por ahora, basta con crear el método vacío.
123 |
|
Hemos completado la llamada a la API y la respuesta. Como se puede ver, es muy sencillo de hacer llamadas a la API de iOS. En la siguiente sección, vamos a analizar y mostrar los resultados.
4) Análisis de los resultados:
Ahora que hemos completado la llamada a la API y tener la respuesta almacenada en una variable de instancia, podemos analizar los resultados. Afortunadamente, el SDK de iOS incluye varias opciones para analizar XML. El analizador que se utilizará es NSXMLParser.
Al igual que con la llamada a la API y el regreso, debemos poner en práctica varios métodos de delegado. Abra el archivo WebAPITutorialViewController.h. Agregue el siguiente NSXMLParserDelegate a la declaración de interfaz:
1 |
|
También vamos a declarar las variables de instancia para el analizador XML y los valores de retorno que vamos a utilizar para contener la información que se va a analizar. La declaración de clase debe ahora parece.
123456789101112131415 |
|
A continuación vamos a aplicar cuatro métodos delegados para el analizador. didStartElement se llama cada vez que se encuentra una etiqueta de elemento. Una vez en un elemento, los charaters se pasan al método foundCharaters.didEndElement se llama cuando el código de elemento está cerrado. Por último vamos a implementar el parserDidEndDocument que se llama cuando se haya completado el análisis del documento.
Para didStartElement, primero comprobar y ver si hay un error. Si es así, nos limitaremos a imprimir un mensaje y dejar que el usuario continúe con el proceso. A continuación, se comprueba si el elemento es StatusNbr o HygieneResult. Si es así, vamos a establecer una variable de instancia para mantener el estado entre los métodos de llamadas. Se indicará al método foundCharacters que elemento estamos actualmente pulg
La fuente método es a continuación.
123456789101112131415 |
|
A continuación vamos a implementar el método foundCharacters. Veremos si estamos dentro de los dos elementos que nos interesan. Si es así, vamos a establecer la variable de instancia apropiada y restablezca la variable de instancia currentElement.
12345678910111213 |
|
En este caso, nosotros no vamos a utilizar la didEndElement en este caso, a fin de mantener este método vacío.
123 |
|
Implemente el método parserDidEndDocument. Aquí vamos a añadir la lógica para determinar si el correo electrónico es válida, no válida, o una trampa. A continuación vamos a mostrar los resultados en la etiqueta que está en blanco.
123456789101112131415161718 |
|
Por último, vamos agregar el código para crear una instancia del parser, cargarlo con el XML que se devuelve desde la llamada a la API, establezca el delegado, y ponerlo en marcha. Regresa hasta el método connectionDidFinishLoading en blanco y agregue el siguiente código.
12345678910111213 |
|