Foros del Web » Programando para Internet » PHP »

Esto se considera un webservice / api?

Estas en el tema de Esto se considera un webservice / api? en el foro de PHP en Foros del Web. Buenas, He leído en muchos sitios lo que son los webservice, los diferentes tipos que hay, etc... pero la idea general es la misma. Tu ...
  #1 (permalink)  
Antiguo 20/05/2010, 00:00
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Esto se considera un webservice / api?

Buenas,

He leído en muchos sitios lo que son los webservice, los diferentes tipos que hay, etc... pero la idea general es la misma. Tu como cliente solicitas al servidor una serie de datos y este te los devuelve.

El problema es que después de ver ejemplos de api como flickr, twitter o facebook, no me acabo de aclarar y no hablemos de SOAP, que por mas que leído, no he conseguido entender su mecánica. ¿Es posible que la librería nusoap no haga falta en php5 porque este ya la implementa?

¿El siguiente código que he fabricado, se consideraría un webservice?

Código PHP:
Ver original
  1. <?
  2. /* Requisitos de la API */
  3. if(isset($_GET['user']) && intval($_GET['user']) && isset($_GET['apikey'])) {
  4.  
  5.     //Comprobacion de seguridad, saber si el usuario esta validando a la API con la clave correcta
  6.    
  7.     if ($_GET['apikey']!=12345){
  8.         echo "API Incorrecta";
  9.     }
  10.    
  11.     // Validacion correcta
  12.     else{
  13.         $user_id = intval($_GET['user']);
  14.         // A partir del $user_id extraigo el nombre del usuario. Ej.
  15.         $username="neodani";
  16.    
  17.         header('Content-type: text/xml');
  18.         echo '<usuario>';
  19.             echo '<idusuario>';
  20.                 echo $user_id;
  21.             echo '</idusuario>';
  22.             echo '<username>';
  23.                 echo $username;
  24.             echo '</username>';
  25.         echo '</usuario>';
  26.     }
  27. }
  28.  
  29. // Ejemplo de llamada
  30. // http://dominio.com/webservice.php?user=5&apikey=12345
  31. ?>

Respuesta
Código:
<usuario>
<idusuario>5</idusuario>
<username>neodani</username>
</usuario>
Espero vuestros comentarios y sugerencias

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 20/05/2010, 04:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 67
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Esto se considera un webservice / api?

Utilizan REST http://es.wikipedia.org/wiki/Represe...State_Transfer , por eso la diferencia.

Además REST es más fácil de implementar y de usar.
  #3 (permalink)  
Antiguo 20/05/2010, 04:50
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Esto se considera un webservice / api?

Cita:
Iniciado por eFreelance Ver Mensaje
Utilizan REST http://es.wikipedia.org/wiki/Represe...State_Transfer , por eso la diferencia.

Además REST es más fácil de implementar y de usar.
Así que es más recomendable usar REST en lugar de SOAP, y en lugar de mi intento de API, no? :P
  #4 (permalink)  
Antiguo 20/05/2010, 06:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 67
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Esto se considera un webservice / api?

Mas recomendable no, pero más fácil sí. (aunque con sus limitaciones).

Perdón , no ví tu código, me cegué solo con la pregunta sobre 'flickr, twitter o facebook,etc' y omití el resto por apuro.

Tu código se consideraría más un API que un webservice.

saludos
  #5 (permalink)  
Antiguo 20/05/2010, 08:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Esto se considera un webservice / api?

La ventaja de usar SOAP, es que puedes tratar los datos de forma nativa y transparente desde el cliente, y no es necesario estar interprentando el XML ni parseandolo, eso ya lo hace la librería SOAP por ti y te entrega un tipo de dato nativo.

Saludos.
  #6 (permalink)  
Antiguo 20/05/2010, 12:56
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Esto se considera un webservice / api?

Cita:
Iniciado por GatorV Ver Mensaje
La ventaja de usar SOAP, es que puedes tratar los datos de forma nativa y transparente desde el cliente, y no es necesario estar interprentando el XML ni parseandolo, eso ya lo hace la librería SOAP por ti y te entrega un tipo de dato nativo.

Saludos.
Y para trabajar con SOAP, solo hace falta descomentar de estas dos lineas la de php_soap.dll, no?

;extension=php_xmlrpc.dll
extension=php_soap.dll

¿Es necesario usar la libreria nusoap.php o php ya trae algo para tratarlo?

También comentar que he estado leyendo tutoriales como los siguiente:
http://es.wiki.locaweb.com/es/Utilizando_SOAP_con_PHP
http://www.malditainternet.com/servicios-web-con-php
http://php.net/manual/en/book.soap.php

Y la verdad es que lo veo bastante complicado!!
  #7 (permalink)  
Antiguo 20/05/2010, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Esto se considera un webservice / api?

No es necesario nusoap.php, ya que con la extensión ya tienes los objetos nativos.

En el Manual de Certificación de Zend vienen buenos ejemplos y son de los más claros que he visto de como usar SOAP o REST.

Saludos.
  #8 (permalink)  
Antiguo 20/05/2010, 14:41
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Esto se considera un webservice / api?

Cita:
Iniciado por GatorV Ver Mensaje
No es necesario nusoap.php, ya que con la extensión ya tienes los objetos nativos.

En el Manual de Certificación de Zend vienen buenos ejemplos y son de los más claros que he visto de como usar SOAP o REST.

Saludos.
Uhm he estado leyendo el PDF y pensaba encontrar mas ejemplos! solo aparece uno de REST

Código PHP:
Ver original
  1. $u = &#8217;username’;
  2. $p = &#8217;password’;
  3. $fooTag = "https://{$u}:{$p}@api.del.icio.us/v1/posts/all?tag=foo";
  4. $bookmarks = new SimpleXMLElement($fooTag, NULL, true);
  5. foreach ($bookmarks->post as $bookmark)
  6. {
  7. echo &#8217;<a href="’ . htmlentities($bookmark[’href’]) . ’">’;
  8. echo htmlentities($bookmark[&#8217;description’]);
  9. echo "</a><br />\n";
  10. }

Y un par de SOAP

Código PHP:
Ver original
  1. try
  2. {
  3. $client = new SoapClient(&#8217;http://api.google.com/GoogleSearch.wsdl’);
  4. $results = $client->doGoogleSearch($key, $query, 0, 10, FALSE, &#8217;’,
  5. FALSE, &#8217;’, ’’, ’’);
  6. foreach ($results->resultElements as $result)
  7. {
  8. echo &#8217;<a href="’ . htmlentities($result->URL) . ’">’;
  9. echo htmlentities($result->title, ENT_COMPAT, &#8217;UTF-8’);
  10. echo &#8217;</a><br/>’;
  11. }
  12. }
  13. catch (SoapFault $e)
  14. {
  15. echo $e->getMessage();
  16. }

Y en ese ejemplo utiliza el WSDL de google, entiendo que si se trata de crear un webservice con SOAP, hace falta crear tu el WSDL, en cambio con REST no se utiliza ningun WSDL, correcto?

Muchas gracias de antemano!
  #9 (permalink)  
Antiguo 20/05/2010, 19:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Esto se considera un webservice / api?

Así es, el WSDL digamos es necesario para que el servico SOAP pueda mapear los datos que vienen por el webservice a datos nativos, digamos es un formato de estructura, aunque no es necesario usarlo.

Saludos.
  #10 (permalink)  
Antiguo 21/05/2010, 08:59
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Esto se considera un webservice / api?

Buenas,

He estado mirando mas a fondo la API REST y no consigo ver ninguna diferencia con el ejemplo que puse en mi primer post

¿Podéis indicarme las diferencias, a parte de la sintaxis de la llamada, la cual entiendo que debería utilizar algo similar? a:

http://midominio.com/services/get/me...ariablesextras
http://midominio.com/services/post/m...ariablesextras
http://midominio.com/services/put/me...ariablesextras
http://midominio.com/services/delete...ariablesextras

Muchas gracias de antemano!

Etiquetas: api, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.