Instituto Tecnológico de Tehuacán
Ingeniería en Sistemas Computacionales
PROGRAMACION WEB
SERVICIOS WEB EN: JAVA, PHP, PERL
Lista de Servicios Web de Google
Alumna:
Marcos Solís Fabiola
SERVICIOS WEB EN JAVA
Creación del Servicio Web
En NetBeans basta seleccionar el nombre del proyecto (Holaste en este caso) y
poner Archivo Nuevo. Ahi también hay una opción llamada Web Service.
Y le damos un nombre, por ejemplo, ServicioWeb.
Añadir operaciones
Para añadir operaciones hay que sólo posicionarse sobre el Servicio Web y
poner Add Operation...
De otra forma, en el modo Design existe el botón Add Operation....
Se le agrega un nombre, se puede añadir parámetros y elegir algun
tipo String, boolean, int, etc.
ServicioWeb.java
Con eso se generará automáticamente el código esqueleto que puedo modificar
para que me retorne "Hola, " + nombre;. Así:
package hola;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
*
* @author ooscarr
*/
@WebService()
public class ServicioWeb {
/**
* Web service operation
*/
@WebMethod(operationName = "diHola")
public String diHola(@WebParam(name = "nombre")
String nombre) {
//TODO write your implementation code here:
return "Hola, " + nombre;
}
}
Consumo
hay que armar el proyecto con el menú contextual del proyecto, opción Deploy.
GENERACIÓN CORRECTA (tiempo total: 7 segundos)
Y probar el servicio web, seleccionando el Servicio web, opción Test Web Service.
INFO: Dynamically creating request wrapper Class hola.jaxws.DiHola
INFO: Dynamically creating response wrapper bean Class
hola.jaxws.DiHolaResponse
INFO: parsing WSDL...
INFO: generating code...
INFO:
compiling code...
INFO: Invoking wsimport with
http://localhost:8080/Holaste/ServicioWebService?WSDL
INFO: wsimport successful
INFO: parsing WSDL...
INFO: generating code...
INFO:
compiling code...
INFO: Invoking wsimport with
http://localhost:8080/Holaste/ServicioWebService?WSDL
INFO: wsimport successful
Si todo está bien instalado, se debería abrir una ventana del navegador más o
menos así.
SERVICIOS WEB EN PHP
NuSOAP, un toolkit para el desarrollo de servicios web con SOAP en PHP, que nos
proveerá de diversas clases para trabajar con este protocolo.
Con NuSOAP instalado toca crear un servidor SOAP en nuestra aplicación. Para el
ejemplo crearemos un servidor, lo llamaremos producto.php, que si recibe una
petición donde se le pida una lista de libros devuelva tres títulos.
1
2
3
4
5
6
7
8
9
10
11
<?php
require_once "nusoap.php";
function getProd($categoria) {
if ($categoria == "libros") {
return join(",", array(
"El señor de los anillos",
"Los límites de la Fundación",
"The Rails Way"));
}
else {
return "No hay productos de esta categoria";
}
12
13
14
15
16
17
18
19
}
$server = new soap_server();
$server->register("getProd");
$server->service($HTTP_RAW_POST_DATA);
?>
Ahora necesita un cliente, que llamaremos cliente.php. En el constructor, el cliente
recibirá el url del servidor y para acceder al método que nos devuelve los libros
recurriremos al método call(), al cual le pasaremos el nombre del método del servidor
al que queremos acceder y los parámetros en forma de array. Además, también
controlaremos que no haya errores en la comunicación.
<?php
require_once "nusoap.php";
$cliente = new nusoap_client("http://localhost/producto.php");
$error = $cliente->getError();
if ($error) {
echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
}
$result = $cliente->call("getProd", array("categoria" => "libros"));
if ($cliente->fault) {
echo "<h2>Fault</h2><pre>";
print_r($result);
echo "</pre>";
}
else {
$error = $cliente->getError();
if ($error) {
echo "<h2>Error</h2><pre>" . $error . "</pre>";
}
else {
echo "<h2>Libros</h2><pre>";
echo $result;
echo "</pre>";
}
}
?>
En este punto, si se ejecuta en el navegador el anterior archivo y se hace clic
sobre WSDL, se ve toda la estructura XML del archivo. Si se hace clic en uno de los
métodos, se muestra en el navegador una página como la siguiente:
Consumo del web service
Con las pocas líneas de código anteriores queda construido el web service en PHP
con nusoap. Pero solo puede ser útil si se consume desde alguna página o
aplicación, así que se crea en este caso una página que actúa como cliente de lo
anterior. Se trata simplemente de una página web en PHP en la que se escriben
textos en cada campo (cliente.php).
- Si se hace clic en el botón Validar, se compara cada texto con las palabras
“usuario” para el nombre y “claveUsuario” para la clave. Si las dos corresponden se
muestra un mensaje “Válido” en color azul, de lo contrario u mensaje en color rojo
de “no es válido”.
- Si se hace clic en el botón Encriptar, un mensaje muestra las cadenas de texto
escritas en cada campo, encriptadas con md5.
SERVICIO WEB EN PERL
SOAP::Lite es un conjunto de módulos de Perl que proveen una interfaz simple y
liviana para el protocolo SOAP, tanto en el lado cliente como en el del servidor.
SOAP::Lite es actualmente el kit de desarrollo de web services para Perl más
difundido y utilizado. Su página en SourceForge ha registrado más de 10,700
descargas en casi 2 años.
Código del archivo Cafetera.pm <perl>
#!/usr/bin/perl -w
# Servicio web de ejemplo
package Cafetera;
use strict;
# Este es el constructor
sub new{
my $proto = shift;
my $class = ref($proto) || $proto;
my $tasas = 0;
bless($tasas,$class);
}
sub prepararCafe{
shift;
my $tasas = shift;
print STDERR "Llamado con el parámetro $tasas";
return "Se prepararon ".$tasas." tasas";
}
1;
</perl> A continuación se muestra el uso del módulo SOAP::Lite para exponer el
módulo Cafetera como un servicio web, usando el servidor tipo
SOAP::Transport::HTTP::Daemon:
Código del archivo servidor.pl <perl>
#!/usr/bin/perl -w
# Servidor SOAP
use SOAP::Transport::HTTP;
use Cafetera;
#En el parámetro dispatch_to se especifica la ruta a los módulos
disponibles
my $daemonio = SOAP::Transport::HTTP::Daemon
-> new(LocalAddr => 'localhost', LocalPort => 8070)
-> dispatch_to('/home/tesis/thewala/preparacion/P.5-
IP/productos/servicio-en-perl','Cafetera')
;
print "La url del daemonio es:".$daemonio->url()." ";
$daemonio->handle();
</perl> Desde éste momento, cualquier aplicación puede empezar a consumir el
servicio web, si sabe cómo invocarlo. A continuación se muestra un cliente del
servicio hecho en Perl con SOAP::Lite:
Código del archivo cliente.pl <perl>
#!/usr/bin/perl -w
use strict;
use SOAP::Lite;
my $soap = SOAP::Lite
->uri('http://localhost:8070/Cafetera')
->proxy('http://localhost:8070/')
;
my $resultado= $soap->prepararCafe(5)->result;
print "Preparando cafe: ".$resultado." ";
SERVICIOS WEB DE GOOGLE
Link de los servicios web:
https://developers.google.com/maps/documentation/webservices/?hl=es
Listado de servicios
Android – http://code.google.com/intl/es/android/
APIs de datos de Google – http://code.google.com/intl/es/apis/gdata/
API de datos de Blogger - http://code.google.com/intl/es/apis/blogger/
APIs de FeedBurner – http://code.google.com/intl/es/apis/feedburner/
Feeds Atom de Gmail -
http://gmail.google.com/support/bin/answer.py?answer=13465
Autenticación de cuentas de Google –
http://code.google.com/intl/es/apis/accounts/
API de Google AdSense – http://code.google.com/intl/es/apis/adsense/
API de Google AdWords - http://www.google.com/apis/adwords/
APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/
API AJAX de Google para feeds –
http://code.google.com/intl/es/apis/ajaxfeeds/
API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/
Google Analytics – http://code.google.com/intl/es/apis/analytics/
APIs de Google Apps – http://code.google.com/intl/es/apis/apps/
Herramientas y APIs de Google Calendar –
http://code.google.com/intl/es/apis/calendar/
API de Google Chart – http://code.google.com/intl/es/apis/chart/
API de Google Checkout – http://code.google.com/intl/es/apis/checkout/
Google Code Search – http://www.google.com/codesearch
API de datos de Google Code Search –
http://code.google.com/intl/es/apis/codesearch/
Feeds de vales descuento de Google –
http://code.google.com/intl/es/apis/coupons/
APIs de búsqueda de Google Desktop –
http://code.google.com/intl/es/apis/desktop/
API de datos para la lista de Google Docs –
http://code.google.com/intl/es/apis/documents/
API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/
Google Gears – http://code.google.com/intl/es/apis/gears/
KML de Google – http://code.google.com/intl/es/apis/kml/.
Mapplets de Google –
http://code.google.com/intl/es/apis/maps/documentation/mapplets/
Google Mashup Editor – http://code.google.com/intl/es/gme/
API de datos del Bloc de notas de Google -
http://code.google.com/intl/es/apis/notebook/
Feeds de Google Noticias –
http://news.google.com/intl/en_us/news_feed_terms.html
APIs de navegación segura de Google -
http://code.google.com/intl/es/apis/safebrowsing/
Feeds del Historial de búsquedas de Google –
http://www.google.com/support/accounts/bin/answer.py?answer=54464
Especificación de feeds de Google Transit –
http://code.google.com/intl/es/transit/spec/transit_feed_specification.htm
Google Web Toolkit - http://code.google.com/intl/es/webtoolkit/
API de los Álbumes web de Picasa –
http://code.google.com/intl/es/apis/picasaweb/
API de datos de YouTube – http://code.google.com/intl/es/apis/youtube/

Servicios web en php, perl, java

  • 1.
    Instituto Tecnológico deTehuacán Ingeniería en Sistemas Computacionales PROGRAMACION WEB SERVICIOS WEB EN: JAVA, PHP, PERL Lista de Servicios Web de Google Alumna: Marcos Solís Fabiola
  • 2.
    SERVICIOS WEB ENJAVA Creación del Servicio Web En NetBeans basta seleccionar el nombre del proyecto (Holaste en este caso) y poner Archivo Nuevo. Ahi también hay una opción llamada Web Service. Y le damos un nombre, por ejemplo, ServicioWeb. Añadir operaciones Para añadir operaciones hay que sólo posicionarse sobre el Servicio Web y poner Add Operation...
  • 3.
    De otra forma,en el modo Design existe el botón Add Operation.... Se le agrega un nombre, se puede añadir parámetros y elegir algun tipo String, boolean, int, etc.
  • 4.
    ServicioWeb.java Con eso segenerará automáticamente el código esqueleto que puedo modificar para que me retorne "Hola, " + nombre;. Así: package hola; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; /** * * @author ooscarr */ @WebService() public class ServicioWeb { /** * Web service operation */ @WebMethod(operationName = "diHola") public String diHola(@WebParam(name = "nombre") String nombre) { //TODO write your implementation code here: return "Hola, " + nombre; } } Consumo hay que armar el proyecto con el menú contextual del proyecto, opción Deploy. GENERACIÓN CORRECTA (tiempo total: 7 segundos) Y probar el servicio web, seleccionando el Servicio web, opción Test Web Service. INFO: Dynamically creating request wrapper Class hola.jaxws.DiHola INFO: Dynamically creating response wrapper bean Class hola.jaxws.DiHolaResponse INFO: parsing WSDL... INFO: generating code... INFO: compiling code... INFO: Invoking wsimport with http://localhost:8080/Holaste/ServicioWebService?WSDL INFO: wsimport successful INFO: parsing WSDL... INFO: generating code... INFO: compiling code...
  • 5.
    INFO: Invoking wsimportwith http://localhost:8080/Holaste/ServicioWebService?WSDL INFO: wsimport successful Si todo está bien instalado, se debería abrir una ventana del navegador más o menos así. SERVICIOS WEB EN PHP NuSOAP, un toolkit para el desarrollo de servicios web con SOAP en PHP, que nos proveerá de diversas clases para trabajar con este protocolo. Con NuSOAP instalado toca crear un servidor SOAP en nuestra aplicación. Para el ejemplo crearemos un servidor, lo llamaremos producto.php, que si recibe una petición donde se le pida una lista de libros devuelva tres títulos. 1 2 3 4 5 6 7 8 9 10 11 <?php require_once "nusoap.php"; function getProd($categoria) { if ($categoria == "libros") { return join(",", array( "El señor de los anillos", "Los límites de la Fundación", "The Rails Way")); } else { return "No hay productos de esta categoria"; }
  • 6.
    12 13 14 15 16 17 18 19 } $server = newsoap_server(); $server->register("getProd"); $server->service($HTTP_RAW_POST_DATA); ?> Ahora necesita un cliente, que llamaremos cliente.php. En el constructor, el cliente recibirá el url del servidor y para acceder al método que nos devuelve los libros recurriremos al método call(), al cual le pasaremos el nombre del método del servidor al que queremos acceder y los parámetros en forma de array. Además, también controlaremos que no haya errores en la comunicación. <?php require_once "nusoap.php"; $cliente = new nusoap_client("http://localhost/producto.php"); $error = $cliente->getError(); if ($error) { echo "<h2>Constructor error</h2><pre>" . $error . "</pre>"; } $result = $cliente->call("getProd", array("categoria" => "libros")); if ($cliente->fault) { echo "<h2>Fault</h2><pre>"; print_r($result); echo "</pre>"; } else { $error = $cliente->getError(); if ($error) { echo "<h2>Error</h2><pre>" . $error . "</pre>"; } else { echo "<h2>Libros</h2><pre>"; echo $result; echo "</pre>"; } } ?> En este punto, si se ejecuta en el navegador el anterior archivo y se hace clic sobre WSDL, se ve toda la estructura XML del archivo. Si se hace clic en uno de los métodos, se muestra en el navegador una página como la siguiente:
  • 7.
    Consumo del webservice Con las pocas líneas de código anteriores queda construido el web service en PHP con nusoap. Pero solo puede ser útil si se consume desde alguna página o aplicación, así que se crea en este caso una página que actúa como cliente de lo anterior. Se trata simplemente de una página web en PHP en la que se escriben textos en cada campo (cliente.php). - Si se hace clic en el botón Validar, se compara cada texto con las palabras “usuario” para el nombre y “claveUsuario” para la clave. Si las dos corresponden se muestra un mensaje “Válido” en color azul, de lo contrario u mensaje en color rojo de “no es válido”. - Si se hace clic en el botón Encriptar, un mensaje muestra las cadenas de texto escritas en cada campo, encriptadas con md5.
  • 8.
    SERVICIO WEB ENPERL SOAP::Lite es un conjunto de módulos de Perl que proveen una interfaz simple y liviana para el protocolo SOAP, tanto en el lado cliente como en el del servidor. SOAP::Lite es actualmente el kit de desarrollo de web services para Perl más difundido y utilizado. Su página en SourceForge ha registrado más de 10,700 descargas en casi 2 años. Código del archivo Cafetera.pm <perl> #!/usr/bin/perl -w # Servicio web de ejemplo package Cafetera; use strict; # Este es el constructor sub new{ my $proto = shift; my $class = ref($proto) || $proto; my $tasas = 0; bless($tasas,$class); } sub prepararCafe{ shift; my $tasas = shift; print STDERR "Llamado con el parámetro $tasas"; return "Se prepararon ".$tasas." tasas"; } 1; </perl> A continuación se muestra el uso del módulo SOAP::Lite para exponer el módulo Cafetera como un servicio web, usando el servidor tipo SOAP::Transport::HTTP::Daemon: Código del archivo servidor.pl <perl> #!/usr/bin/perl -w # Servidor SOAP use SOAP::Transport::HTTP; use Cafetera; #En el parámetro dispatch_to se especifica la ruta a los módulos disponibles my $daemonio = SOAP::Transport::HTTP::Daemon -> new(LocalAddr => 'localhost', LocalPort => 8070) -> dispatch_to('/home/tesis/thewala/preparacion/P.5- IP/productos/servicio-en-perl','Cafetera')
  • 9.
    ; print "La urldel daemonio es:".$daemonio->url()." "; $daemonio->handle(); </perl> Desde éste momento, cualquier aplicación puede empezar a consumir el servicio web, si sabe cómo invocarlo. A continuación se muestra un cliente del servicio hecho en Perl con SOAP::Lite: Código del archivo cliente.pl <perl> #!/usr/bin/perl -w use strict; use SOAP::Lite; my $soap = SOAP::Lite ->uri('http://localhost:8070/Cafetera') ->proxy('http://localhost:8070/') ; my $resultado= $soap->prepararCafe(5)->result; print "Preparando cafe: ".$resultado." "; SERVICIOS WEB DE GOOGLE Link de los servicios web: https://developers.google.com/maps/documentation/webservices/?hl=es Listado de servicios Android – http://code.google.com/intl/es/android/ APIs de datos de Google – http://code.google.com/intl/es/apis/gdata/ API de datos de Blogger - http://code.google.com/intl/es/apis/blogger/ APIs de FeedBurner – http://code.google.com/intl/es/apis/feedburner/ Feeds Atom de Gmail - http://gmail.google.com/support/bin/answer.py?answer=13465 Autenticación de cuentas de Google – http://code.google.com/intl/es/apis/accounts/
  • 10.
    API de GoogleAdSense – http://code.google.com/intl/es/apis/adsense/ API de Google AdWords - http://www.google.com/apis/adwords/ APIs AJAX de Google – http://code.google.com/intl/es/apis/ajax/ API AJAX de Google para feeds – http://code.google.com/intl/es/apis/ajaxfeeds/ API AJAX de Google Search – http://code.google.com/intl/es/apis/ajaxsearch/ Google Analytics – http://code.google.com/intl/es/apis/analytics/ APIs de Google Apps – http://code.google.com/intl/es/apis/apps/ Herramientas y APIs de Google Calendar – http://code.google.com/intl/es/apis/calendar/ API de Google Chart – http://code.google.com/intl/es/apis/chart/ API de Google Checkout – http://code.google.com/intl/es/apis/checkout/ Google Code Search – http://www.google.com/codesearch API de datos de Google Code Search – http://code.google.com/intl/es/apis/codesearch/ Feeds de vales descuento de Google – http://code.google.com/intl/es/apis/coupons/ APIs de búsqueda de Google Desktop – http://code.google.com/intl/es/apis/desktop/ API de datos para la lista de Google Docs – http://code.google.com/intl/es/apis/documents/ API de gadgets de Google – http://code.google.com/intl/es/apis/gadgets/ Google Gears – http://code.google.com/intl/es/apis/gears/ KML de Google – http://code.google.com/intl/es/apis/kml/. Mapplets de Google – http://code.google.com/intl/es/apis/maps/documentation/mapplets/
  • 11.
    Google Mashup Editor– http://code.google.com/intl/es/gme/ API de datos del Bloc de notas de Google - http://code.google.com/intl/es/apis/notebook/ Feeds de Google Noticias – http://news.google.com/intl/en_us/news_feed_terms.html APIs de navegación segura de Google - http://code.google.com/intl/es/apis/safebrowsing/ Feeds del Historial de búsquedas de Google – http://www.google.com/support/accounts/bin/answer.py?answer=54464 Especificación de feeds de Google Transit – http://code.google.com/intl/es/transit/spec/transit_feed_specification.htm Google Web Toolkit - http://code.google.com/intl/es/webtoolkit/ API de los Álbumes web de Picasa – http://code.google.com/intl/es/apis/picasaweb/ API de datos de YouTube – http://code.google.com/intl/es/apis/youtube/