¿Qué es un WebService?
Ya en el artículo sobre cliente REST di una pequeña definición de un WebService, por si no lo leíste te lo cuento:
Un WebService es una pequeña aplicación web diseñada para interactuar con otras aplicaciones (en lugar de hacerlo con personas).
Las dos aplicaciones que se comunican toman el rol de:
- Servidor: quien expone el servicio
- Cliente: quien lo consume
¿Qué es REST?
REST es un protocolo de intercambio de información basado en HTTP.
¿Cómo se implementa en PHP?
Los servicios web basados en REST suelen ser mucho más fáciles de crear (y consumir) que los basados en SOAP.
De hecho, cualquier aplicación PHP que hayas hecho podría ser un WebService REST! (Bueno… tal vez no uno muy útil, pero eso es otro tema :)).
Te muestro un ejemplo super simple:
<?php echo json_encode( [ 'Hola' ] );
No está mal, ¿cierto?
En este caso lo que vemos es una aplicación que, al ser invocada usando curl http://localhost:8080/rest_server.php
(Asumiendo que está montada sobre el servidor local) nos dará esta salida:
["Hola"]
El cliente que haya realizado dicha invocación deberá saber qué tipo de contenido le estamos enviando (¡y actuar en consecuencia!).
Podés probarlo iniciando el servidor de esta forma:
php -S localhost:8080 &
(El &
para que el proceso se ejecute en background y puedas seguir).
En caso de que se hubiese producido un error (Por ejemplo, que el recurso buscado no se encontrara disponible), deberíamos usar la función http_response_code
para enviar un aviso al cliente:
http_response_code( 404 );
Por último, una buena práctica es también hacer explícito el tipo de contenido que vamos a enviar al cliente:
header('Content-type: application/json');
De esta forma el cliente tiene algo más de información y puede tomar mejores decisiones.
En definitiva, si podés elegir, te recomiendo usar siempre servicios web basados en REST. Otro consejo es que tengas a mano los códigos de error HTTP (No es necesario saberlos todos de memoria, pero ayuda :)).
¿Qué ejemplos se te ocurren ahora que sabés armar servicios REST?
- Cómo enviarencabezados SOAP desde PHP - 09/12/2024
- Por qué PHP 8 no satisface el requisito ^7.3 de composer - 09/12/2024
- Cómo usar PHPUnit - 03/12/2024
gracias estimado ha servidor esto, pero como hago que un servidor IIS & PHP solicite autenticacion basica al consumir los webservices????
Hola Jorge:
Lo que necesitas es activar la autenticación http básica en tu IIS. Aquí te dejo un enlace donde puedes consultar la configuración.
Saludos
gracias !!
Hola,
Se tiene una aplicación comercial la cual ofrece una dll para por medio de librería y funciones realizar por ejemplo facturas y pedidos, así que hay que desarrollar una capa intermedia la cual conecte con esa dll y mi aplicación, luego quiero acceder a mi desarrollo remotamente, aquí es dónde interviene php y por eso la pregunta, para hacer esto lo más apegado a seguridad a coño desarrollar esa API entre mi aplicación y PHP qué debo utilizar?, que tipo de documentación debo buscar en la red?.
Saludos,
Javier