En aquest tema, explorarem com PHP pot interactuar amb serveis web, incloent-hi la creació i consum de serveis web RESTful i SOAP. Els serveis web permeten que diferents aplicacions es comuniquin entre si a través de la xarxa, utilitzant protocols estàndard com HTTP.

Continguts

Introducció als Serveis Web

Els serveis web són mètodes que permeten la comunicació entre diferents aplicacions a través d'una xarxa. Els dos tipus principals de serveis web són:

  • RESTful: Utilitza HTTP i està basat en recursos.
  • SOAP: Protocol basat en XML per a l'intercanvi de missatges.

Serveis Web RESTful

Característiques de RESTful

  • Utilitza HTTP: GET, POST, PUT, DELETE.
  • Basat en Recursos: Cada recurs té un URI únic.
  • Sense Estat: Cada petició és independent.

Exemple de RESTful

GET /api/users/1

Aquest exemple recupera la informació de l'usuari amb ID 1.

Serveis Web SOAP

Característiques de SOAP

  • Protocol Basat en XML: Utilitza XML per a l'intercanvi de missatges.
  • Altament Estàndard: Suporta WS-Security, WS-Addressing, etc.
  • Independent del Protocol de Transport: Pot utilitzar HTTP, SMTP, etc.

Exemple de SOAP

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header/>
  <soap:Body>
    <m:GetUser xmlns:m="http://www.example.org/user">
      <m:UserId>1</m:UserId>
    </m:GetUser>
  </soap:Body>
</soap:Envelope>

Aquest exemple recupera la informació de l'usuari amb ID 1.

Consumint Serveis Web amb PHP

Consumint un Servei Web RESTful

<?php
$url = "https://api.example.com/users/1";
$response = file_get_contents($url);
$data = json_decode($response, true);
print_r($data);
?>

Consumint un Servei Web SOAP

<?php
$client = new SoapClient("https://www.example.com/soap?wsdl");
$params = array("UserId" => 1);
$response = $client->__soapCall("GetUser", array($params));
print_r($response);
?>

Creant un Servei Web RESTful amb PHP

Exemple de Servei Web RESTful

<?php
header("Content-Type: application/json");

$method = $_SERVER['REQUEST_METHOD'];

switch ($method) {
    case 'GET':
        getUser();
        break;
    case 'POST':
        createUser();
        break;
    case 'PUT':
        updateUser();
        break;
    case 'DELETE':
        deleteUser();
        break;
    default:
        echo json_encode(["message" => "Method not allowed"]);
        break;
}

function getUser() {
    // Lògica per obtenir un usuari
    echo json_encode(["id" => 1, "name" => "John Doe"]);
}

function createUser() {
    // Lògica per crear un usuari
    echo json_encode(["message" => "User created"]);
}

function updateUser() {
    // Lògica per actualitzar un usuari
    echo json_encode(["message" => "User updated"]);
}

function deleteUser() {
    // Lògica per eliminar un usuari
    echo json_encode(["message" => "User deleted"]);
}
?>

Creant un Servei Web SOAP amb PHP

Exemple de Servei Web SOAP

<?php
class UserService {
    public function getUser($params) {
        $userId = $params->UserId;
        return ["id" => $userId, "name" => "John Doe"];
    }
}

$options = array('uri' => 'http://localhost/');
$server = new SoapServer(null, $options);
$server->setClass('UserService');
$server->handle();
?>

Exercicis Pràctics

  1. Consumir un Servei Web RESTful: Escriu un script PHP que consumeixi un servei web RESTful públic i mostri la informació obtinguda.
  2. Crear un Servei Web RESTful: Implementa un servei web RESTful que permeti crear, llegir, actualitzar i eliminar usuaris.
  3. Consumir un Servei Web SOAP: Escriu un script PHP que consumeixi un servei web SOAP públic i mostri la informació obtinguda.
  4. Crear un Servei Web SOAP: Implementa un servei web SOAP que permeti obtenir informació d'usuaris.

Conclusió

En aquest tema, hem après què són els serveis web i com podem utilitzar PHP per crear i consumir serveis web RESTful i SOAP. Els serveis web són una eina poderosa per permetre la comunicació entre diferents aplicacions, i PHP proporciona les eines necessàries per treballar amb aquests serveis de manera eficient.

Curs de Programació PHP

Mòdul 1: Introducció a PHP

Mòdul 2: Estructures de Control

Mòdul 3: Funcions

Mòdul 4: Arrays

Mòdul 5: Treballant amb Formularis

Mòdul 6: Treballant amb Fitxers

Mòdul 7: Programació Orientada a Objectes (OOP)

Mòdul 8: Treballant amb Bases de Dades

Mòdul 9: Tècniques Avançades de PHP

Mòdul 10: Frameworks PHP i Millors Pràctiques

Mòdul 11: Projecte: Construint una Aplicació Web

© Copyright 2024. Tots els drets reservats