En esta ocasión veremos como crear un web service utilizando una librería en PHP llamada nuSOAP y cual quier editor de texto plano que tengamos a nuestro alcance. Así que empecemos.

Primero descargamos la librería y la descomprimimos en la carpeta de nuestro proyecto y creamos un archivo llamado index.php en el cual escribiremos nuestro código PHP.

El código de nuestro web service de ejemplo es el siguiente:

Explicación

  1. Primero incluimos nuSOAP a nuestro script
  2. Creamos el servidor SOAP
  3. Después lo configuramos indicando el nombre del Web Service y el namespace al que pertenece
  4. Registramos la función Saludar() para que aparezca en nuestro Web Service, es importante recordar que tanto PHP como XML son sensibles a mayúsculas, así que respetemos este criterio tanto en el nombre de las funciones como en los parámetros de ellas.
  5. Indicamos los parámetros de entrada de la función Saludar que en este caso es un string cuyo nombre será $nombre
  6. Indicamos lo que devolverá la función Saludar, que en este caso es un string
  7. Indicamos el namespace al que pertenece la función Saludar (el mismo al que pertenece el Web Service)
  8. Indicamos el soapAction, que seria la acción SOAP, noten el formato:
    <namespace>#<funcion> en realidad pudiera ser cualquier cosa en lugar del nombre de la función, pero recomiendo poner el nombre de la función.
  9. Los dos siguientes parámetros ‘rpc’ y ‘encoded’ los de momento no nos interesan asi que los dejamos así.
  10. Escribimos una pequeña descripción de la función Saludar, esto se mostrará en el Web Service

Tipos de Dato

Como se puede observar para indicar un string se antepone el prefijo xsd, eso es para indicar que este tipo de dato es un tipo base, existen varios tipos de datos base y podemos encontrar más información sobre ellos en la w3Schools:

Arrays con nuSOAP

Además de estos tipos también existen los arrays, que al igual que en cualquier lenguaje de programación pueden ser tanto parámetros de entrada como salida de la función; la forma de expresarlo seria la siguiente:

NOTA: Observen que la primera letra ‘A’ es mayúscula, debemos cuidar esto, ya que de lo contrario tendremos problemas, ya que como mencioné XML y PHP son sensibles a mayúsculas y lo correcto es Array y no array