Ciclo I-2014 GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish) (000Webhost Php- Para desarrollar en casa) Objetivo: Crear servicios web utilizando la arquitectura REST, para obtener información desde un servidor web gratuito. Requerimientos previos: Hacer una cuenta en el hosting gratuito(000webhost), de preferencia siguiendo los pasos que se indican en la guía proporcionada por la catedra. Tener la cuenta activa. Hacer la guía para suprimir código analitics del WebHosting gratuito.
Contenido Objetivo:... 1 Requerimientos previos:... 1 Entrar a la cuenta en 000webhost... 1 Crear servicio web (primera modalidad).... 4 Otra forma de crear un Servicio Web a partir de un archivo pre elaborado... 6 Probar el servicio web... 8 En JsonLint... 8 En Browser... 9 Servicio web que convierte un número a letras.... 10
Entrar a la cuenta en 000webhost Dado por hecho que se tiene la cuenta creada en 000Webhost, procedemos a crear dos servicios web sobre esta plataforma, con el lenguaje de programación PHP(soportado por el hosting). a) Al entrar, observe los cambios dentro de la opción de dominios: b) Ingrese en la opción Go to panel para iniciar la administración de nuestro host gratuito. Aquí veremos una ventana al lado derecho que contendrá la información más relevante de nuestro sitio y cuenta. 1
Si hemos realizado correctamente los pasos el dominio creado anteriormente aparece en la lista. c) Entramos al file manager Presionamos continue Si nos sale una página como esta, presionamos el botón de regresar a la página anterior del browser 2
Posiblemente nos salga UNIVERSIDAD DE EL SALVADOR Al reintentar, luego reenviar Nos saldrá una ventana como la siguiente 3
En esta se establece que no es permitido subir archivos directamente, solo dentro de la carpeta public, por lo que presionamos clic en ella para hacer el servicio, Crear servicio web (primera modalidad). Presionamos clic en New File para crear nuestro servicio En esa ventana introducimos el codigo(ver debajo de imagen) donde se indica(izquierda), digitamos en nombre del servicio(ws_suma.php) y presionamos el disquette para guardar. <?php $numero1=$_get['numero1']; $numero2=$_get['numero2']; $resultado=array('resultado'=>$numero1+$numero2); echo json_encode($resultado);?> 4
Al final quedara como se muestra: Después de guardar presionamos clic en la flecha. Al finalizar veremos nuestro servicio web en la parte inferior de la carpeta public_html. Este servicio web suma2 números y el resultado es devuelto en formato JSON. 1 Explicación del código. Cualquier script de PHP debe de iniciar con la etiqueta <?php y es opcional que termine o no con la etiqueta?> Las variables en PHP inician con el signo de dollar ($), como por ejemplo: $numero, $nombre. 5
UNIVERSIDAD DE EL SALVADOR $_GET[<nombre_variable>], es un vector asociativo que contiene los parámetros que enviamos al script, si usamos el método GET esto indica que podemos enviar parámetros a través de la URL. 1 JSON (Javascript Object Notation) es un formato para la transferencia de datos independiente de la plataforma. Si desea saber más sobre JSON le recomendamos visitar el siguiente tutorial: http://www.w3schools.com/json/default.asp Respecto a las otras líneas de codigo: $resultado=array('resultado'=>$numero1+$numero2); En la línea anterior creamos un vector asociativo llamado resultado al cual le crearemos un índice llamada resultado al cual le asignaremos la suma de los 2 números. Usted podrá preguntarse Por qué utilizar un arreglo si solo estamos guardando una variable? La respuesta a esta interrogante puede saberse conociendo como funciona la función json_encode que transforma un vector asociativo a formato json. echo json_encode($resultado); Esta última línea traduce el vector asociativo a formato JSON. Para el script si mandamos como valores para numero1 el número 9 y para el numero2 el número 10, el script nos devolverá la siguiente respuesta: { } "resultado": 19 Otra forma de crear un Servicio Web a partir de un archivo pre elaborado (segunda modalidad. opcional) Subir un archivo php Hacemos el archivo ws_suma.php enel block de notas u otro editor, Luego entramos en el File manager 6
Pero utilizaremos la opción upload Seleccionamos la opción del chequeo color verde. 7
Aparecerá una ventana como la siguiente UNIVERSIDAD DE EL SALVADOR De no ser así, mejor vuélvalo a hacer con la primera modalidad (haciéndolo dentro del hosting). En JsonLint Probar el servicio web Para probar el servicio web de cualquier forma que lo hayamos subido, vamos a dirigirnos a la siguiente URL http://jsonlint.com/ Pegamos el siguiente código en la ventana del JSONLint http://carnetpdm115.site40.net/ws_suma.php?numero1=10&numero2=19 8
Para su caso debería de ser: http://<dominio_registrado>/ws.php?numero1=10&numero2=19 Hacemos click en Validate, se mostrara la siguiente pantalla: Veremos: En Browser Luego si queremos podríamos probar el link en el browser No nos validara el JSON pero mostrara el valor de respuesta. 9
Servicio web que convierte un número a letras. A continuación se desarrollara un servicio que recibe como parámetro un numero digito y lo convierte a letras. Por ejemplo se envía como parámetro un 1 el servicio como respuesta devolverá uno. <?php $numero=$_request['numero']; switch($numero){ case 0: $numeroletras="cero"; case 1: $numeroletras="uno"; case 2: $numeroletras="dos"; case 3: $numeroletras="tres"; case 4: $numeroletras="cuatro"; case 5: $numeroletras="cinco"; 10
case 6: UNIVERSIDAD DE EL SALVADOR $numeroletras="seis"; case 7: $numeroletras="siete"; case 8: $numeroletras="ocho"; case 9: $numeroletras="nueve"; default: $numeroletras="no es un digito"; } $numerostring=array('numero'=>$numeroletras); echo json_encode($numerostring);?> Realice el mismo procedimiento para la creación desde servicio (NumeroEnLetras.php), ya sea desde un editor de texto o subiendo el archivo directamente en el hosting. Posteriormente pruébelo con la herramienta de JSON Lint. Este servicio será consumido desde un dispositivo posteriormente. Para verlo en el Browser de una forma similar a esta: http://carnetpdm115.site40.net/numeroenletras.php?numero=4 Cuando finalice la práctica solo envié los link hacia el texto en línea respectivo de practica 9b 11